Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подсказка
Это фрагмент из электронной книги «Архитектура микрослужб .NET для контейнеризованных приложений .NET», доступной в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно прочитать в автономном режиме.
Контейнеризация — это подход к разработке программного обеспечения, при котором приложение или служба, их зависимости и конфигурация (абстрактные файлы манифеста развертывания) упаковываются вместе в образ контейнера. Контейнерное приложение можно протестировать как единицу и развернуть в качестве экземпляра образа контейнера в операционной системе узла (ОС).
Так же, как контейнеры доставки позволяют перевозить товары по кораблю, поезду или грузовику независимо от грузов внутри, контейнеры программного обеспечения служат стандартной единицей развертывания программного обеспечения, которая может содержать разные коды и зависимости. Таким образом, контейнеризация программного обеспечения позволяет разработчикам и ИТ-специалистам развертывать их в средах без изменений.
Контейнеры также изолируют приложения друг от друга в общей ОС. Контейнерные приложения выполняются поверх узла контейнера, который в свою очередь запускается в ОС (Linux или Windows). Поэтому контейнеры имеют значительно меньше места, чем образы виртуальных машин.
Каждый контейнер может запускать целое веб-приложение или службу, как показано на рис. 2-1. В этом примере узел Docker — это узел контейнера, а App1, App2, Svc 1 и Svc 2 являются контейнерными приложениями или службами.
Рис. 2-1. Несколько контейнеров, работающих на хосте контейнеров
Еще одним преимуществом контейнеризации является масштабируемость. Вы можете быстро масштабироваться, создавая новые контейнеры для краткосрочных задач. С точки зрения приложения создание экземпляра образа (создание контейнера) аналогично созданию процесса, например службы или веб-приложения. Однако для надежности при запуске нескольких экземпляров одного образа на нескольких серверах узлов обычно требуется, чтобы каждый контейнер (экземпляр образа) выполнялся на другом сервере узла или виртуальной машине в разных доменах сбоя.
Короче говоря, контейнеры предлагают преимущества изоляции, переносимости, гибкости, масштабируемости и управления в течение всего рабочего процесса жизненного цикла приложения. Наиболее важным преимуществом является изоляция среды, обеспечиваемая разделением между разработкой и эксплуатацией.