Выбор службы вычислений Azure

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

Architecture

Используйте следующую блок-схему, чтобы выбрать вычислительную службу-кандидат.

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

На изображении показана блок-схема для выбора соответствующей службы Azure на основе того, переносит ли пользователь существующую рабочую нагрузку или создает новую рабочую нагрузку. Блок-схема начинается с начального узла и разбивается на две первичные ветви, помеченные как миграция и построить новый. Ветвь миграции включает точки принятия решений, которые оценивают, оптимизировано ли приложение для облака и может ли оно быть отменено и смещено. В зависимости от ответов поток приводит к таким службам, как Служба приложений Azure, решение Azure VMware или виртуальные машины Azure. Новая ветвь сборки включает точки принятия решений, которые оценивают необходимость полного контроля, высокопроизводительных вычислений (HPC), рабочих нагрузок, основанных на событиях, управляемого веб-хостинга и требований оркестрации. Эти решения помогут пользователю использовать такие службы, как виртуальные машины, пакетная служба Azure, Функции Azure, Служба приложений, Экземпляры контейнеров Azure, Azure Red Hat OpenShift, Служба Azure Kubernetes (AKS) или приложения контейнеров Azure. Раздел ветвления для собственной реализации оркестрации на виртуальных машинах включает Kubernetes на виртуальных машинах и OpenShift на виртуальных машинах. В нижней части изображения в двух полях перечислены службы, исключающие контейнеры, и службы, совместимые с контейнерами. В разделе, посвященном исключительно контейнерам, содержатся Экземпляры контейнеров (Container Instances), Azure Red Hat OpenShift, Kubernetes на виртуальных машинах и OpenShift на виртуальных машинах. В разделе, совместимом с контейнерами, входят служба пакетной обработки Azure, функции Azure и служба приложений Azure.

Скачайте файл Visio для этой архитектуры.

На предыдущей схеме приведены две стратегии миграции:

  • Лифт и смена: Стратегия миграции рабочей нагрузки в облако без изменения приложения или внесения изменений в код. Это также называется rehosting (повторное размещение). Мы рекомендуем группам рабочих нагрузок, выполняющим миграцию, использовать подобный подход и отложить оптимизацию, если их временная шкала и бюджетная поддержка не перепроектированы для облачных функций. Дополнительные сведения см. в статье "Миграция рабочих нагрузок в Azure" с других облачных платформ.

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

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

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

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

Общие сведения о основных функциях

Если вы не знакомы со службой Azure, выбранной в предыдущем разделе, ознакомьтесь со следующей обзорной документацией:

  • Виртуальные машины Azure — это служба, которую можно использовать для развертывания виртуальных машин и управления ими в виртуальной сети Azure.

  • Служба приложений Azure — это управляемая служба для размещения веб-приложений, внутренних приложений мобильных приложений, API RESTful или автоматизированных бизнес-процессов.

  • Функции Azure — это служба, которая предоставляет управляемые функции, которые выполняются на основе различных типов триггеров для приложений, управляемых событиями.

  • Служба Azure Kubernetes (AKS) — это управляемая служба Kubernetes для запуска контейнерных приложений. Он предоставляет прямой доступ к API Kubernetes и плоскости управления.

  • Приложения контейнеров Azure — это управляемая служба, основанная на Kubernetes, которая упрощает развертывание контейнерных приложений в бессерверной среде. Он не предоставляет прямой доступ к базовым API Kubernetes. Используйте AKS, если требуется доступ к API Kubernetes и плоскости управления.

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

  • Azure Red Hat OpenShift — это полностью управляемый кластер OpenShift для запуска контейнеров в рабочей среде с Kubernetes.

  • Пакетная служба Azure — это управляемая служба для выполнения крупномасштабных параллельных и высокопроизводительных вычислений (HPC).

  • Решение Azure VMware — это управляемая служба для запуска рабочих нагрузок VMware в Azure.

Общие сведения о моделях размещения

Для моделей размещения облачные службы делятся на три категории:

  • Инфраструктура как услуга (IaaS) позволяет подготавливать виртуальные машины вместе с связанными сетевыми компонентами и компонентами хранилища. Затем вы можете развернуть любое программное обеспечение и приложения на этих виртуальных машинах. Эта модель наиболее похожа на традиционную локальную среду. Корпорация Майкрософт управляет инфраструктурой и управляет виртуальными машинами.

  • Платформа как услуга (PaaS) предоставляет управляемую среду размещения, в которой можно развернуть приложение без необходимости управлять виртуальными машинами. Служба приложений и приложения контейнеров — это службы PaaS.

  • Функции как услуга (FaaS) позволяют развертывать код в службе, которая автоматически запускает его. Функции Azure — это служба FaaS.

    Замечание

    Функции Azure — это бессерверное предложение вычислений Azure. Чтобы узнать, как эта служба сравнивается с другими бессерверными предложениями Azure, такими как Azure Logic Apps для бессерверных рабочих процессов, см. статью "Выбор правильных служб интеграции и автоматизации" в Azure.

Облачные вычислительные службы варьируются от IaaS до полностью управляемого FaaS. Например, виртуальные машины Azure могут автоматически масштабироваться с помощью масштабируемых наборов виртуальных машин. Возможности автоматического масштабирования часто связаны с PaaS или FaaS, но возможности зависят от службы, а не по категории вычислений.

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

Услуга Композиция приложения Плотность Минимальное количество узлов Управление состоянием Размещение веб-сайта
Virtual Machines Агностик Агностик 1 1 Без состояния или с состоянием Агностик
App Service Приложения, контейнеры Несколько приложений на экземпляр, используя план службы приложений 1 Бессостояние Built-in
Azure Functions Функции, контейнеры Бессерверные 2 Бессерверные 2 Без состояния или с состоянием 3 Неприменимо
AKS Containers Несколько контейнеров для каждого узла 6 4 Без состояния или с состоянием Агностик
Container Apps Containers Serverless Serverless Без состояния или с состоянием Агностик
Container Instances Containers Нет выделенных экземпляров Нет выделенных узлов Бессостояние Агностик
Azure Red Hat OpenShift Containers Несколько контейнеров для каждого узла 6 5 Без состояния или с состоянием Агностик
Batch Запланированные задания Несколько приложений для каждой виртуальной машины 1 6 Бессостояние нет
Решение Azure VMware Агностик Агностик 3 7 Без состояния или с состоянием Агностик

Примечания:

1Более высокое соглашение об уровне обслуживания (SLA) с двумя или более экземплярами.

2Для функций Azure планы потребления и потребления Flex бессерверны. Для плана службы приложений функции выполняются на виртуальных машинах, выделенных для этого плана. Выберите правильный план обслуживания для функций Azure.

3При использовании устойчивых функций.

4Рекомендуется для рабочих сред. Три в пуле системных узлов и три для каждого пула узлов пользователей.

5три основных узла и три рабочих узла.

6Может уменьшиться до нуля после завершения задания.

7см. хосты.

Дополнительные сведения см. в статье "Выбор службы контейнеров Azure".

Нетворкинг

Скорее всего, платформа приложений должна работать с сетями как сервером для приложений, так и в качестве клиента. Например, он может функционировать как клиент для получения обновлений операционной системы (ОС). Необходимо выбрать платформу, которая поддерживает как требования к трафику на востоке, так и на северо-юге.

Услуга Интеграция виртуальной сети Гибридное подключение
Virtual Machines Поддерживается Поддерживается
App Service Поддерживается 1 Поддерживается 2
Azure Functions Поддерживается 1 Поддерживается 3
AKS Supported Поддерживается
Container Apps Поддерживается Поддерживается
Container Instances Supported Supported
Azure Red Hat OpenShift Supported Поддерживается
Batch Поддерживается Поддерживается
Решение Azure VMware Supported Supported

Примечания:

1Требуется базовый или более высокий уровень или среда службы приложений. См. интеграцию с виртуальной сетью.

2. Используйте гибридные подключения службы приложений.

3. Требуется план службы приложений, план Функций Azure Premium или план потребления Функций Azure Flex.

DevOps

Услуга Локальная отладка Удаленная отладка Модель программирования Обновление приложения
Virtual Machines Агностик Удаленные инструменты для Visual Studio Агностик Встроенная поддержка не поддерживается
App Service IIS Express, другие 1 Ограниченная поддержка Веб-приложения и приложения API, веб-задания для фоновых задач Слоты развертывания
Azure Functions Visual Studio или Azure Functions Core Tools Не поддерживается Бессерверные, управляемые событиями Слоты развертывания
AKS Minikube, Docker, другие Средства, отличные от Майкрософт 2 Агностик Поэтапное обновление
Container Apps Локальная среда выполнения контейнера Консоль отладки Агностик Управление редакциями
Container Instances Локальная среда выполнения контейнера Не поддерживается Агностик Неприменимо
Azure Red Hat OpenShift Minikube, Docker, другие Средства, отличные от Майкрософт 2 Агностик Поэтапное обновление
Batch Не поддерживается Неприменимо Приложение командной строки Неприменимо
Решение Azure VMware Агностик Удаленные инструменты для Visual Studio Агностик Встроенная поддержка не поддерживается

Примечания:

1Варианты включают IIS Express, Visual Studio Code и другие стандартные средства разработки на основе стека приложений.

2Используйте инструменты, не принадлежащие Microsoft, такие как Telepresence или mirrord, для отладки с локального на кластер.

Навыки команды и операционные издержки

Услуга Обязательные навыки Операционные издержки Лучше всего подходит для команд, имеющих эти характеристики
Virtual Machines Администрирование ОС, сеть, исправление безопасности Высокий уровень: полное управление инфраструктурой Традиционный опыт ИТ-операций
App Service Веб-разработка, развертывание приложений Низкий: платформа обрабатывает инфраструктуру Разработчики приложений сосредоточены на коде
Azure Functions Программирование на основе событий, бессерверные шаблоны Очень низкое: бессерверное управление Разработчики, создающие решения на основе событий
AKS Администрирование Kubernetes, оркестрация контейнеров Высокий уровень: управление кластерами, обновления, безопасность Команды DevOps с опытом работы с Kubernetes
Container Apps Основы контейнеров, шаблоны на основе облака Низкий уровень: абстрагированное управление Kubernetes Команды, которые хотят современных шаблонов без сложности Kubernetes
Container Instances Основы контейнера Очень низкий уровень: нет оркестровки Команды, которым требуется простой запуск контейнеров
Azure Red Hat OpenShift Администрирование OpenShift или Kubernetes Высокий уровень: управление кластерами Команды с инвестициями в OpenShift
Batch Планирование заданий, параллельная обработка Средний: управление заданиями и пулами Команды, которые запускают рабочие нагрузки HPC или пакетные задачи
Решение Azure VMware Администрирование VMware Средний: инфраструктура, управляемая VMware Команды, у которых есть требования к платформе VMware

Масштабируемость

Услуга Autoscaling Подсистема балансировки нагрузки Предел масштабирования
Virtual Machines Масштабируемые наборы виртуальных машин Azure Load Balancer (балансировщик нагрузки Azure) — Образ платформы: 1000 узлов для каждого масштабируемого набора

— Пользовательский образ: 600 узлов для каждого набора масштабирования
App Service Встроенная служба Интегрированный 30 экземпляров (премиум), 200 с средой службы приложений, 100 с изолированной средой службы приложений
Azure Functions Встроенная служба Интегрированный 200 экземпляров (потребление), 1 000 экземпляров (гибкое потребление)
AKS Автомасштабирование pod1, автомасштабирование кластера2 Load Balancer или Шлюз приложений Azure 5000 узлов при использовании уровня "Стандартный" или "Премиум"
Container Apps Правила масштабирования3 Интегрированный 1,000 реплик для каждой редакции, 15 сред в каждом регионе
Container Instances Не поддерживается Встроенная поддержка не поддерживается 100 групп контейнеров для каждой подписки (ограничение по умолчанию)
Azure Red Hat OpenShift Автомасштабирование pod, автомасштабирование кластера Балансировщик нагрузки или Шлюз приложений 250 узлов для каждого кластера (ограничение по умолчанию)
Batch Неприменимо Балансировщик нагрузки Ограничение ядра в 900 выделенных ядер и 100 ядер с низким приоритетом (ограничение по умолчанию)
Решение Azure VMware Встроенная служба4 Встроенный5 3–16 узлов VMware ESXi для каждого VMware vCenter

Примечания:

1См. автомасштабирование pod.

2См. автоматическое масштабирование кластера для удовлетворения требований приложений к AKS.

3См. Установку правил масштабирования в контейнерных приложениях.

4См. раздел "Масштабирование кластеров" в частном облаке.

5См. VMware NSX.

Встроенные возможности многорегионирования

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

Услуга Опция Multiregion
Virtual Machines Только один регион.

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

Необходимо использовать внешний маршрутизатор в сочетании с несколькими экземплярами App Service Plan.
Azure Functions Только один регион.

Необходимо использовать внешний маршрутизатор в сочетании с несколькими экземплярами хостов.
AKS Только один регион.

Должен использовать внешний маршрутизатор в сочетании с несколькими кластерами.
Container Apps Только один регион.

Необходимо использовать внешний маршрутизатор в сочетании с несколькими средами контейнерных приложений.
Container Instances Только один регион.
Azure Red Hat OpenShift Только один регион.

Должен использовать внешний маршрутизатор в сочетании с несколькими кластерами.
Batch Только один регион.
Решение Azure VMware Только один регион.

Необходимо использовать внешний маршрутизатор в сочетании с несколькими экземплярами решения Azure VMware.

Безопасность

Просмотрите и изучите доступные элементы управления безопасностью и видимость для каждой из следующих служб:

Другие критерии

Услуга Безопасность транспортного уровня (TLS) Себестоимость Поддержка единицы обработки графики (GPU) Подходящие стили архитектуры
Virtual Machines Настройка на виртуальной машине Windows,
Линукс
Supported N-уровень, большие вычислительные ресурсы (HPC)
App Service Поддерживается Цены на службу приложений Не поддерживается Обработчик веб-очереди
Azure Functions Поддерживается Цены на Функции Azure Не поддерживается Микрослужбы, архитектура на основе событий
AKS Контроллер входящего трафика Цены AKS Supported Микрослужбы, архитектура на основе событий
Container Apps Контроллер входящего трафика Цены на приложения-контейнеры Supported Микрослужбы, архитектура на основе событий
Container Instances Используйте контейнер сайдкар Цены на экземпляры контейнеров Не поддерживаются Микрослужбы, автоматизация задач, пакетные задания
Azure Red Hat OpenShift Поддерживается Цены на Azure Red Hat OpenShift Supported Микрослужбы, архитектура на основе событий
Batch Поддерживается Цены на пакетную службу Supported Большие вычислительные ресурсы (HPC)
Решение Azure VMware Настройка на виртуальной машине Цены на решение Azure VMware Не поддерживается Рабочая нагрузка виртуальной машины на основе формата VMware

Рассмотрите ограничения и затраты

Используйте предыдущие таблицы сравнения в качестве контекста и более подробно оцените следующие аспекты службы кандидатов:

Специализированные рабочие нагрузки

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

Сценарий Исследуйте эти опции
Планирование HPC Azure CycleCloud
SAP на виртуальных машинах Azure Использование Azure для размещения и запуска сценариев рабочей нагрузки SAP
Oracle в виртуальных машинах Azure Базы данных Oracle в инфраструктуре Azure

Приложения на сервере Oracle Linux и WebLogic
Сложное, переплетенное состояние и вычисления с жестко структурированными моделями программирования Azure Service Fabric
Mainframe Рефакторинг приложения мейнфрейма для Azure
Предложения в Marketplace Обзор предложений партнеров в вычислительных ресурсах Azure
Квантовые вычисления Azure Quantum
Размещение виртуальных рабочих столов Проектирование архитектуры виртуального рабочего стола
Нагрузки на "голом железе" или выделенные вычислительные мощности Выделенные узлы Azure

Облачные кластеры Nutanix в Azure

Соавторы

Корпорация Майкрософт поддерживает эту статью. Следующие авторы написали эту статью.

Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.

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