Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure предоставляет множество способов размещения кода приложения. Термин вычисления относится к модели размещения для ресурсов, на которых работает ваше приложение. Эта статья поможет выбрать подходящую службу вычислений для вашего сценария и сосредоточиться на предложениях вычислений общего назначения.
Architecture
Используйте следующую блок-схему, чтобы выбрать вычислительную службу-кандидат.
Скачайте файл 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. |
Безопасность
Просмотрите и изучите доступные элементы управления безопасностью и видимость для каждой из следующих служб:
- Виртуальные машины для Linux
- Виртуальные машины для Windows
- Служба приложений
- Функции Azure
- AKS
- Контейнерные приложения
- Экземпляры контейнеров
- Решение 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 |
Рассмотрите ограничения и затраты
Используйте предыдущие таблицы сравнения в качестве контекста и более подробно оцените следующие аспекты службы кандидатов:
- Калькулятор цен и затратAzure
- Доступность службы Azure по регионам
- Ограничения службы
- Соглашения об уровне обслуживания
Специализированные рабочие нагрузки
Некоторые рабочие нагрузки имеют определенные требования и обычно не следуют общим рекомендациям в этом руководстве по выбору платформы приложений. Обычно эти рабочие нагрузки представляют собой продукты программного обеспечения или базы данных, имеющие характеристики, ограничивающие параметры службы узким набором поддерживаемых вариантов.
| Сценарий | Исследуйте эти опции |
|---|---|
| Планирование 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 |
Соавторы
Корпорация Майкрософт поддерживает эту статью. Следующие авторы написали эту статью.
- Ayobami Ayodeji | Старший менеджер по программам
- Jelle Druyts | Инженер основной службы
- Мартин Gjoшевски | Старший инженер службы
- Фил Хуан | Старший архитектор облачных решений
- Джули Нг | Старший инженер службы
- Паоло Сальватори | Инженер основной службы
Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.