LXC vs Docker

Контейнеры Linux (LXC) - это технология виртуализации на уровне операционной системы, которая позволяет создавать и запускать несколько операционных систем (ОС) Linux одновременно на одном компьютере Linux (хосте LXC). LXC предоставляет набор инструментов для управления вашим контейнером, а также шаблоны для создания виртуальной среды наиболее распространенных ОС Linux. Docker - это технология контейнеризации, которая фокусируется на запуске одного приложения в изолированной среде.

Основные концепции предметно-ориентированного проектирования

Мы рассмотрим доменные модели, которые лежат в основе системной разработки в стиле DDD. Доменные модели закладывают недвусмысленный, строгий фундамент описания функций системы. При моделировании и реализации моделей в коде полезно иметь под рукой ка- кие-нибудь составные элементы. Доменные модели обычно основаны на объектах- значениях и сущностях. Более крупные структуры, как правило, представлены в виде агрегатов. Использование этих элементов сделает ваш код более строгим и менее склонным к появлению уязвимостей. В системной разработке слово «модель» может означать много разных вещей: диа- граммы потоков в UML, способ хранения информации в таблицах базы данных и т. д. В DDD модель описывает основные бизнес-аспекты, с которыми вы имеете дело, в виде определенного набора концепций. Зачем нам нужны такие модели и как они должны выглядеть?

Проектирование системы - процесс создания виски

Мы берем разные пакеты и код, который сам по себе ничего не стоит и не работает и создаем систему, убирая всё лишнее. Люди, практикующие DDD, иногда используют выражение «дистилляция модели». Сравним себя на минуту с производителями виски. Если немного упростить, производство виски начинается с большого количества ферментированного сусла, непригодного для питья. Сусло нагревают и собирают испарения. Начальный продукт, содержащий ацетон, выливают. Средняя часть в основном содержит алкоголь и немного воды с натуральным привкусом. Ее оставляют. В последней части немного алкоголя и большое количество воды, ее привкус не самый приятный. Ее тоже выбрасывают. Все, что осталось, мы называем виски. Ваше отношение к этому напитку и предпочтения могут разниться, но основная идея должна быть понятна. В процессе дистилляции мы сознательно сохраняем некоторые части и отбрасываем те, которые нам не нужны. Точно так же, дистиллируя модель, вы избавляетесь от одних аспек- тов реальности и оставляете другие. Важно здесь то, что дистилляцию можно проводить по-разному. У нас есть выбор. Мы сознательно оставляем среднюю часть, так как наша задача — получить крепкий напиток со специфическим привкусом. Мы пытаемся дистиллировать нечто, что будет приятно употреблять. Цель определяет способ дистилляции.

Концепции программирования, способствующие безопасности

### Неизменяемость Проблемная область - Проблемы, связанные с целостностью и доступностью данных Проектируя объект, вы должны определиться с тем, каким он должен быть: из- меняемым или неизменяемым. В первом случае его состояние может меняться, а во втором — нет. Это может показаться несущественным, но с точки зрения безопасности этот аспект очень важен. Неизменяемые объекты можно безопасно разделять между потоками выполнения, с их помощью данные можно сделать высокодоступными, что очень значимо для защиты системы от DoS-атак (denial of service — «отказ в обслуживании»). А вот изменяемые объекты рассчитаны на обновление, что может привести к внесению несанкционированных изменений. Поддержка изменяемости зачастую привносится в систему из-за того, что ее тре- буют фреймворки, или потому, что на первый взгляд она делает код проще. Но это опасный подход, за который, возможно, придется дорого заплатить. Чтобы это проиллюстрировать, рассмотрим пример того, как использование изменяемости в архитектуре веб-магазина вызывает проблемы с безопасностью, которые можно легко решить за счет неизменяемости.

Ленивая перестройка (lazy rebuilding)

Это разновидность глобальной перестройки {global rebuilding} ## Порционная перестройка Во многих структурах данных соблюдаются инварианты баланса, благодаря