Контейнерный сервис Amazons EC2 (ECS) с поддержкой Docker (часть 1)

Опубликовано: 7 Марта, 2023
Контейнерный сервис Amazons EC2 (ECS) с поддержкой Docker (часть 1)

Цель этой статьи, состоящей из двух частей, — дать обзор службы контейнеров AWS EC2 (ECS) и того, что это означает для пользователей Docker по мере того, как мы переходим от использования виртуальных машин к подходу, ориентированному на контейнеры.

Введение

Технология Application Ship Container (то, как это делает Docker) — это новая область инноваций в вычислительной технике. Способы наших вычислений продолжают развиваться, а виртуализация и облачные технологии позволили нам использовать множество ресурсов и услуг для значительного повышения эффективности повседневных бизнес-задач. Широкое использование облачных вычислений также означает, что программное обеспечение теперь может проходить через большое количество компьютеров и сред, и, следовательно, приложения должны быть совместимы с различными возможностями выполнения.

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

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

Для достижения столь необходимой масштабируемости и повышения производительности необходимо сосредоточить внимание на том, как управляется служба, а не только на отдельном контейнере и его инфраструктуре.

Контейнерная техника

Контейнерную технологию часто сравнивают с виртуальной машиной (ВМ), но они существенно различаются. В контейнерной технологии подход намного проще и не привязан к среде, связанной с виртуальной машиной, которая использует всю ОС. Это больше похоже на песочницу приложений, чтобы они могли работать независимо от ОС и вне среды хоста, чтобы они могли быть более переносимыми.

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

Хотя контейнеры предлагают более простую структуру, их быстрее и легче развертывать, а также они намного портативнее по сравнению с виртуальными машинами, проблемы с безопасностью возникают при использовании контейнеров отдельно от виртуальных машин по сравнению с использованием виртуальных машин.

Ниже представлен сравнительный анализ контейнерной технологии и виртуальных машин.

Контейнер

Виртуальная машина

Позволяет выполнять простое развертывание, на которое не влияет место развертывания. Более сложная для развертывания и зависящая от среды
Возможность использования микросервисов, вычислительные ресурсы могут быть легко и эффективно разделены по мере необходимости. 
Улучшенная доступность, возможность быстрой загрузки Доступность менее быстрая
Упрощает разработку и ускоряет разработку за счет возможности запуска нескольких контейнеров на машине. Не такой быстрый подход или простой
Более экономичный Дороже в эксплуатации и обслуживании
Менее безопасен при самостоятельном использовании Более безопасный
Легче масштабировать в разных средах Сложнее масштабировать
Возможность отделить приложение от инфраструктуры
Облачные приложения реального времени Более сложное и трудоемкое использование виртуальной машины

Контейнерная технология Docker может:

  • Позволяет нескольким приложениям работать на одном оборудовании
  • Упрощает процесс разработки, позволяя быстро создавать готовые к запуску приложения в контейнере.
  • Упрощает развертывание

Докер и Амазон

Совместно Amazon и Docker предоставляют расширенный скоординированный сервис для пользователей/разработчиков. Контейнеры, такие как Docker, облегчили разработчикам развертывание приложений способом, который был более запутанным для достижения до технологии, и поставщики облачных вычислений поддерживают технологию, что ясно видно по более активным инициативам по ее поддержке и поощрению ее использования (не только Amazon, но также Google и Microsoft).

Docker — это платформа, которая позволяет разработчикам создавать и переносить приложения таким образом, который поддерживает множество форматов и сред, и позволяет разработчикам направить большую часть своего внимания на функциональность и дизайн приложений. В отличие от других контейнеров, это стандартизированное решение с открытым исходным кодом, которое может использовать любой пользователь (крупный или малый объект), чрезвычайно портативное, позволяющее перемещать приложение между средами и в облако с небольшими изменениями, что снижает вероятность сбоя приложений при реализации в среды, отличные от тестовой среды (это большой плюс для разработчиков). Этот стандартизированный подход к контейнеризации предлагает простоту использования и, таким образом, широко используется, а теперь поддерживается и поощряется крупными организациями.

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

Именно здесь вступает в игру сервис контейнеров Amazon EC2 (ECS). Управление контейнерами Amazons предоставляет помощь там, где это необходимо, планирование упрощается, назначение ресурсов контейнерам управляется эффективно, а при использовании функций контейнерных сервисов Amazon, наконец, откат также становится менее сложным.

Контейнерный сервис Amazon AWS EC2 (ECS) направлен на поддержку и улучшение удобства за счет повышения производительности, масштабируемости и доступности. ECS эффективно управляет, поддерживает и организует контейнеры Docker и превращает их в еще один уровень платформы AWS, эквивалентный EC2 и S3.

Вывод

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

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

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

Во второй части этой серии мы более подробно рассмотрим службу контейнеров Amazon EC2 для управления приложениями с поддержкой Docker. Ждите следующей статьи из этой серии, в которой будут рассмотрены некоторые дополнительные компоненты кластеризации приложений и управления задачами.