Сравнение приложений-контейнеров с другими вариантами контейнеров Azure
Существует множество вариантов создания и развертывания облачных и контейнерных приложений в Azure, которые могут использовать команды разработчиков. В этой статье показано, какие сценарии и варианты использования лучше всего подходят для приложений контейнеров Azure и как они сравниваются с другими вариантами контейнеров в Azure, включая:
- Приложения контейнеров Azure
- Служба приложений Azure
- Экземпляры контейнеров Azure
- Служба Azure Kubernetes
- Функции Azure
- Azure Spring Apps
- Azure Red Hat OpenShift
Нет идеального решения для каждого варианта использования и каждой команды разработчиков. Ниже в качестве отправной точки приведены общее руководство и рекомендации, которые помогут найти оптимальное решение для вашей команды, которое соответствует вашим требованиям.
Сравнение вариантов контейнеров
Приложения-контейнеры Azure
Приложения контейнеров Azure позволяют создавать бессерверные микрослужбы и задания на основе контейнеров. Отличительные возможности приложений-контейнеров:
- Оптимизировано для запуска контейнеров общего назначения, особенно для приложений, охватывающих множество микрослужб, развернутых в контейнерах.
- основаны на платформе Kubernetes и технологиях с открытым кодом, таких как Dapr, KEDA и envoy;
- поддерживают приложения и микрослужбы в стиле Kubernetes с такими функциями, как обнаружение служб и разделение трафика;
- обеспечивают управляемую событиями архитектуру приложений за счет поддержки масштабирования на основе трафика и извлечения данных из источников событий, таких как очереди, включая масштабирование до нуля;
- Поддерживает выполнение заданий по запросу, запланированных и управляемых событиями заданий.
Приложения-контейнеры Azure не предоставляют прямой доступ к базовым API Kubernetes. Если требуется доступ к интерфейсам API и уровню управления Kubernetes, то следует использовать Службу Azure Kubernetes. Однако если вы хотите создавать приложения в стиле Kubernetes и вам не требуется прямой доступ ко всем собственным интерфейсам API Kubernetes и управлению кластером, то приложения-контейнеры предоставят полностью управляемый интерфейс на основе рекомендаций. По этим причинам многие команды предпочитают создавать микрослужбы контейнеров с помощью приложений контейнеров Azure.
Чтобы приступить к созданию приложения-контейнера, воспользуйтесь этим кратким руководством.
Служба приложений Azure
служба приложение Azure предоставляет полностью управляемое размещение для веб-приложений, включая веб-сайты и веб-API. Эти веб-приложения можно развернуть с помощью кода или контейнеров. Служба приложений Azure оптимизирована для веб-приложений. Служба приложений Azure интегрируется с другими службами Azure, включая приложения-контейнеры Azure и Функции Azure. Служба приложений Azure — это идеальное решение для создания веб-приложений.
Экземпляры контейнеров Azure
Экземпляры контейнеров Azure (ACI) предоставляет единый модуль изолированных контейнеров Hyper-V по запросу. Его можно рассматривать как "стандартный блок" более низкого уровня по сравнению с приложениями-контейнерами. Такие понятия, как масштабирование, балансировка нагрузки и сертификаты, не предоставляются контейнерами ACI. Например, чтобы масштабировать инфраструктуру до пяти экземпляров контейнера, следует создать пять отдельных экземпляров контейнера. Приложения-контейнеры Azure предоставляют множество возможностей контейнеров, включая сертификаты, редакции, масштабирование и среды. Пользователи часто взаимодействуют с Экземплярами контейнеров Azure через другие службы. Например, Служба Azure Kubernetes может выполнять оркестрацию уровней и масштабировать их поверх ACI с помощью виртуальных узлов. Если вам нужен менее консервативный стандартный блок, который не соответствует сценариям, для которых оптимизированы приложения-контейнеры Azure, то вам идеально подойдут Экземпляры контейнеров Azure.
Служба Azure Kubernetes
Служба Azure Kubernetes (AKS) предоставляет полностью управляемый параметр Kubernetes в Azure. Он поддерживает прямой доступ к API Kubernetes и выполняет любую рабочую нагрузку Kubernetes. Весь кластер размещается в вашей подписке, включая конфигурации и операции кластера, находящиеся в пределах вашего контроля и ответственности. Служба Azure Kubernetes является идеальным вариантом для команд, которым требуется полностью управляемая версия Kubernetes в Azure.
Функции Azure
Функции Azure — это бессерверное решение "Функции как услуга" (FaaS). Оно оптимизировано для выполнения приложений, управляемых событиями, с помощью модели программирования функций. Они во многом схожи с приложениями-контейнерами Azure с точки зрения масштабирования и интеграции, но оптимизированы для временных функций, развернутых в виде кода или контейнеров. Модель программирования Функций Azure обеспечивает преимущества производительности для команд разработчиков, которым требуется активация выполнения функций по событиям и привязка к другим источникам данных. Для создания функций в стиле FaaS идеальным вариантом являются Функции Azure. Модель программирования Функций Azure доступна в виде базового образа контейнера. Это дает возможность перенести ее на другие платформы вычислений на основе контейнеров, позволяя командам многократно использовать код при изменении требований к среде.
Azure Spring Apps
Azure Spring Apps — это полностью управляемая служба для разработчиков Spring. Если вы хотите запустить Spring Boot, Spring Cloud или любые другие приложения Spring в Azure, Azure Spring Apps является идеальным вариантом. Эта служба управляет инфраструктурой приложений Spring, благодаря чему разработчики могут сосредоточиться на коде. Azure Spring Apps обеспечивает управление жизненным циклом за счет комплексного мониторинга и диагностики, управления конфигурацией, обнаружения служб, интеграции CI/CD, выполнения сине-зеленых развертываний и прочего.
Azure Red Hat OpenShift
Azure Red Hat OpenShift — это интегрированный продукт с Red Hat и Корпорацией Майкрософт, совместно разработанный, управляемый и поддерживаемый. Эта совместная работа предоставляет интегрированный продукт и поддержку для запуска Kubernetes с поддержкой OpenShift. С помощью Azure Red Hat OpenShift команды могут выбирать собственный реестр, сеть, хранилище и решения CI/CD. Кроме того, они могут использовать встроенные решения для автоматизированного управления исходным кодом, сборок контейнеров и приложений, развертываний, масштабирования, управления работоспособностью и многое другое из OpenShift. Если ваша команда или организация использует OpenShift, Azure Red Hat OpenShift станет оптимальным вариантом.