Контейнеры – это способ виртуализации операционной системы, позволяющий запускать приложение и его зависимости в виде процессов с изолированными ресурсами. Контейнеры позволяют с без труда упаковывать код приложений, их настройки и зависимости в удобные компоновочные блоки, обеспечивающие единообразие среды, эффективность выполнения операций, продуктивную разработку и возможность контроля версий. Контейнеры обеспечивают быстрое, надежное и единообразное развертывание приложений вне зависимости от среды развертывания. Кроме того, контейнеры предоставляют возможность более точного управления ресурсами, что, в свою очередь, повышает эффективность инфраструктуры. Использование контейнеров в облаке AWS позволяет создавать надежные масштабируемые приложения и сервисы, задействуя такие преимущества облака AWS, как эластичность, доступность, безопасность и экономия за счет масштаба. При этом вы платите только за те ресурсы, которые используете.

monolith_2-VM-vs-Containers

Amazon Elastic Container Service

Начало работы

EkoSystem Day. Разработка современных приложений с использованием сервисов контейнеров AWS

Зарегистрироваться
Site-Merch_PAC_Fargate

Вебинары по партнерским решениям для контейнеров на AWS

Подробнее
Containers_Benefit_EnvironmentConsistency

Контейнеры позволяют без труда переносить приложения и устраняют часть организационных и технических трудностей на протяжении цикла разработки, тестирования и эксплуатации приложения. Контейнеры объединяют в себе все необходимые файлы приложения и зависимое ПО в виде компоновочного блока, развертывание которого можно выполнить на любом вычислительном ресурсе, независимо от ПО, операционной системы или аппаратной конфигурации (например, можно запускать один и тот же контейнер на ноутбуке под управлением Ubuntu и на рабочих серверах Red Hat Enterprise Linux). Все, что было упаковано в виде контейнера локально, будет развертываться и работать одинаково как в тестовой, так и в рабочей среде. Это большое преимущество, позволяющее надежно и единообразно развертывать приложения вне зависимости от среды. Устраняется необходимость настройки каждого сервера вручную по отдельности и появляется возможность быстрее выпускать новые версии ПО.

Containers_Benefit_OperationalEfficiency

Контейнеры способствуют более эффективному использованию вычислительных ресурсов, так как позволяют без труда запускать несколько приложений на одном и том же инстансе. Можно указать точный объем памяти, дискового пространства и ресурсов ЦПУ, которые будут использоваться контейнером на инстансе. Контейнеры быстро загружаются, потому что каждый контейнер является только процессом в операционной системе, обеспечивающим работу приложения и его зависимых компонентов. Такое пониженное потребление ресурсов позволяет быстро запускать и завершать приложения или задачи, объединенные в контейнере, что обеспечивает быстрое масштабирование приложений в любую сторону. Для выпуска новых версий приложения можно использовать сине‑зеленые (динамические) схемы развертывания (например, с помощью Amazon Elastic Container Service), так как все приложение и его зависимые компоненты содержатся в одном образе. Контейнеры также обеспечивают изоляцию процессов, что позволяет помещать каждое приложение и его зависимые компоненты в отдельный контейнер и запускать их в одном и том же инстансе. Поскольку каждый контейнер изолирован от других, отсутствуют проблемы совместимости и совместно используемые зависимые компоненты. Например, можно запустить два контейнера, использующих разные версии библиотек, в одном и том же инстансе Amazon EC2.

Можно также создать образ контейнера, служащий основой для других образов. Отделы эксплуатации могут создавать базовые образы, состоящие из операционной системы, конфигураций и различных утилит. Отделы разработки могут создавать свои приложения на основе базового образа. Такая система позволяет избежать сложностей настройки сервера.

Containers_Benefit_DeveloperProductivity

Применение контейнеров увеличивает производительность разработки благодаря устранению случаев совместного использования зависимых компонентов и связанных с этим конфликтов. Каждый компонент приложения можно разбить на несколько отдельных контейнеров, в которых работают разные микросервисы. Контейнеры изолированы друг от друга, поэтому не надо беспокоиться о синхронизации библиотек или зависимых компонентов между сервисами. Разработчики могут независимо выполнять обновление каждого сервиса, поскольку конфликты библиотек исключены.

Containers_Benefit_VersionControl

Контейнеры позволяют отслеживать версии кода приложения и зависимых компонентов. Образы контейнеров Docker содержат файл манифеста (Dockerfile), который позволяет без труда обслуживать и отслеживать версии контейнера, проверять различия между версиями и выполнять откаты до предыдущих версий.