Сравнение приложений-контейнеров с другими вариантами контейнеров Azure

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

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

Сравнение вариантов контейнеров

Приложения-контейнеры 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 станет оптимальным вариантом.

Следующие шаги