Выбор вычислительной службы Azure для приложения

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

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

Выбор службы-кандидата

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

Дерево принятия решений для вычислительных служб Azure

Определения:

  • "Поднятие и смена" — это стратегия миграции рабочей нагрузки в облако без необходимости перепроектирования приложения или внесения изменений в код. Также называется повторным размещением. Дополнительные сведения см. в статье Azure Migration and модернизации Center.
  • Оптимизация для облака — это стратегия переноса в облако путем рефакторинга приложения для использования преимуществ облачных функций и возможностей.

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

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

Примечание

Узнайте больше о требованиях к вычислению для внедрения облачных приложений в инфраструктуре внедрения Microsoft Cloud для Azure.

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

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

  • Служба приложений. Управляемая служба для размещения веб-приложений, серверных интерфейсов мобильных приложений, API RESTFUL или автоматизированных бизнес-процессов.
  • Azure веснного облака. Управляемая служба, разработанная и оптимизированная для размещения приложений с пружинной загрузкой.
  • Служба Kubernetes Azure (AKS). Управляемая служба Kubernetes для запуска контейнерных приложений.
  • Пакетнаяслужбы. Управляемая служба для выполнения крупномасштабных параллельных и высокопроизводительных вычислений (HPC)
  • Экземпляры контейнеров. Самый быстрый и простой способ запустить контейнер в Azure без необходимости подготавливать виртуальные машины и не использовать службу более высокого уровня.
  • Функции. Управляемая служба FaaS.
  • Service Fabric. Платформа распределенных систем, которая может работать во многих средах, в том числе в Azure или в локальной среде.
  • Виртуальные машины. Развертывание виртуальных машин и управление ими в виртуальной сети Azure.

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

Облачные службы, включая службы Azure, обычно делятся на три категории: IaaS, PaaS или FaaS. (Существует также SaaS, программное обеспечение как услуга, которое выходит за рамки этой статьи.) Полезно понимать различия.

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

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

Решение FaaS (функция как услуга) сводит к минимуму заботы о среде размещения. В модели FaaS вы просто развертываете свой код, и служба автоматически запускает ее. Служба "Функции Azure" реализована по модели FaaS.

Примечание

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

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

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

Критерии Виртуальные машины Служба приложений Azure Spring Cloud Service Fabric Функции Azure Служба Azure Kubernetes Экземпляры контейнеров Пакетная служба Azure
Структура приложения Не влияет Приложения, контейнеры Приложения, микрослужбы Службы, гостевые исполняемые файлы, контейнеры Функции Контейнеры Контейнеры Запланированные задания
Плотность Не влияет Несколько приложений в каждом экземпляре с использованием планов службы приложений Несколько приложений на один экземпляр службы Несколько служб на каждой виртуальной машине Бессерверные1 Несколько контейнеров на каждом узле Нет выделенных экземпляров Несколько приложений на каждой виртуальной машине
Минимальное количество узлов 1 2 1 2 5 3 Бессерверные1 3 3 Нет выделенных узлов 1 4
Управление состоянием Без отслеживания или с отслеживанием состояния Без отслеживания состояния Без отслеживания состояния Без отслеживания или с отслеживанием состояния Без отслеживания состояния Без отслеживания или с отслеживанием состояния Без отслеживания состояния Без отслеживания состояния
Размещение веб-сайта Не влияет Встроено Встроено Не влияет Неприменимо Не влияет Не влияет Нет
Можно ли развернуть в выделенной виртуальной сети? Поддерживается Поддерживается5 Поддерживается Поддерживается Поддерживается 5 Поддерживается Поддерживается Поддерживается
Гибридное подключение Поддерживается Поддерживается 6 Поддерживается Поддерживается Поддерживается 7 Поддерживается Не поддерживается Поддерживается

Примечания

  1. При использовании плана потребления. При использовании плана службы приложений функции выполняются на виртуальных машинах, выделенных для вашего плана службы приложений. См. статью Выбор правильного плана обслуживания для функций Azure.
  2. Более строгие условия соглашения об уровне обслуживания, если используется несколько экземпляров.
  3. Рекомендуется использовать в рабочей среде.
  4. По завершении задания может сводиться к нулю.
  5. Требует наличия среды службы приложений (ASE).
  6. Используйте гибридные подключения к службе приложений Azure.
  7. требуется план службы приложений или функция Azure Premium plan.

DevOps

Критерии Виртуальные машины Служба приложений Azure Spring Cloud Service Fabric Функции Azure Служба Azure Kubernetes Экземпляры контейнеров Пакетная служба Azure
Локальная отладка Не влияет IIS Express и другие 1 Visual Studio Code, Intellij, Eclipse Локальный кластер узлов Visual Studio или CLI Функций Azure Minikube и др. Локальная среда выполнения контейнера Не поддерживается
Модель программирования Не влияет Веб-приложения и приложения API, веб-задания для фоновых задач Пружинная Загрузка, Стилтое Гостевой исполняемый файл, модель службы, модель субъекта, контейнеры Функции с триггерами Не влияет Не влияет Приложение командной строки
Обновление приложения Нет встроенной поддержки Слоты развертывания Последовательное обновление, сине-зеленое развертывание Последовательное обновление (для служб) Слоты развертывания Последовательное обновление Неприменимо

Примечания

  1. к параметрам относятся IIS Express для ASP.NET или node.js (iisnode); Веб-сервер PHP; Azure Toolkit for IntelliJ Azure Toolkit for Eclipse. Служба приложений также поддерживает удаленную отладку развернутого веб-приложения.
  2. См. статью о поставщиках диспетчера ресурсов, регионах, версиях API и схемах.

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

Критерии Виртуальные машины Служба приложений Azure Spring Cloud Service Fabric Функции Azure Служба Azure Kubernetes Экземпляры контейнеров Пакетная служба Azure
Автомасштабирование Масштабируемые наборы виртуальных машин Встроенная служба Встроенная служба Масштабируемые наборы виртуальных машин Встроенная служба Автоматическое масштабирование Pod 1 , автоматическое масштабирование кластера 2 Не поддерживается Н/Д
Подсистема балансировки нагрузки Подсистема балансировки нагрузки Azure Интегрированная Интегрированная Подсистема балансировки нагрузки Azure Интегрированная Azure Load Balancer или шлюз приложений Нет встроенной поддержки Подсистема балансировки нагрузки Azure
Предел масштабирования3 Образ платформы: 1000 узлов на масштабируемый набор, пользовательский образ: 600 узлов на масштабируемый набор 30 экземпляров, 100 с Среда службы приложений 500. экземпляры приложений в стандарте 100 узлов на масштабируемый набор 200 экземпляров на каждое приложение-функцию 100 узлов в кластере (ограничение по умолчанию) 20 групп контейнеров на подписку (ограничение по умолчанию) Ограничение составляет 20 ядер (ограничение по умолчанию)

Примечания

  1. См. раздел Автомасштабирование модулейPod.
  2. См. раздел Автоматическое масштабирование кластера в соответствии с потребностями приложений в службе Kubernetes Azure (AKS).
  3. См. раздел Подписка Azure, пределы, квоты и ограничения службы.

Доступность

Критерии Виртуальные машины Служба приложений Azure Spring Cloud Service Fabric Функции Azure Служба Azure Kubernetes Экземпляры контейнеров Пакетная служба Azure
Соглашение об уровне обслуживания Соглашение об уровне обслуживания для виртуальных машин Соглашение об уровне обслуживания для службы приложений Соглашение об уровне обслуживания для Azure Веснного облака Соглашение об уровне обслуживания для Azure Service Fabric Соглашение об уровне обслуживания для решения "Функции Azure" Соглашение об уровне обслуживания для AKS Соглашение об уровне обслуживания для Экземпляры контейнеров Соглашение об уровне обслуживания для пакетной службы Azure
Отработка отказа в другой регион Диспетчер трафика Диспетчер трафика Диспетчер трафика, кластер с несколькими регионами Azure Front Door Диспетчер трафика Не поддерживается Не поддерживается

Для интерактивного обучения по гарантиям службы ознакомьтесь с основными облачными службами — гарантиями архитектуры и службы Azure.

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

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

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

Критерии Виртуальные машины Служба приложений Приложение весны Cloud Service Fabric Функции Azure Служба Azure Kubernetes Экземпляры контейнеров Пакетная служба Azure
SSL Настраивается на виртуальной машине Поддерживается Поддерживается Поддерживается Поддерживается Входной контроллер Используйте контейнер расширения Поддерживается
Cost Windows, Linux Цены на службу приложений Цены на облачное облако Azure Цены на Service Fabric Цены на Функции Azure Цены на AKS Цены на Экземпляры контейнеров Цены на пакетную службу Azure
Подходящие стили архитектуры n-уровневая; большие вычисления (HPC) Интерфейс — очередь — рабочая роль, n-уровневая Пружинная Загрузка, микрослужбы Микрослужбы; управляемая событиями архитектура Микрослужбы; управляемая событиями архитектура Микрослужбы; управляемая событиями архитектура Микрослужбами; автоматизация задач; пакетные задания Большие вычисления (HPC)

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

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

Выполните более подробное ознакомление, изучив следующие аспекты службы:

Дальнейшие действия