Контейнерный сервис 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. Ждите следующей статьи из этой серии, в которой будут рассмотрены некоторые дополнительные компоненты кластеризации приложений и управления задачами.