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

Amazon Elastic Container Service

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

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

Подробнее
Containers_ProductDetail_Banner
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), который позволяет легко обслуживать и отслеживать версии контейнера, проверять различия между версиями и выполнять откаты до предыдущей версии.