Easy📖Теория2 min

Вычислительные сервисы Azure

Сравнение VM, App Service, Container Instances, AKS и Azure Functions

Вычислительные сервисы Azure

Azure предлагает несколько вычислительных сервисов, каждый из которых подходит для определенных сценариев. Умение выбрать правильный сервис -- одна из ключевых компетенций для экзаменов AZ-900 и AZ-204.

Azure Virtual Machines

Виртуальные машины (VM) -- это IaaS-сервис, предоставляющий полный контроль над операционной системой. VM эмулирует физический компьютер в облаке.

Ключевые особенности:

  • Полный контроль над ОС (Windows Server, Ubuntu, Red Hat и др.)
  • Возможность установить любое ПО
  • Поддержка Windows и Linux
  • Множество размеров: от 1 vCPU / 0.5 GB RAM до 416 vCPU / 11 TB RAM

Серии виртуальных машин:

Серия Назначение Пример использования
B-series General Purpose, burstable Dev/test, маленькие приложения
D-series General Purpose Бизнес-приложения, БД
F-series Compute Optimized Batch-обработка, игровые серверы
E-series Memory Optimized Базы данных, in-memory кеширование
L-series Storage Optimized Big Data, большие БД
N-series GPU Machine Learning, рендеринг

Availability Sets защищают от сбоев оборудования:

  • Fault Domains -- физические стойки серверов. VM распределяются по разным стойкам
  • Update Domains -- логические группы для обновлений. Azure обновляет по одной группе за раз

Virtual Machine Scale Sets (VMSS) -- автоматическое масштабирование группы идентичных VM. Количество экземпляров увеличивается или уменьшается в зависимости от нагрузки.

Azure App Service

App Service -- это PaaS-сервис для размещения веб-приложений, REST API и мобильных бэкендов. Это самый популярный сервис Azure для веб-разработчиков.

Поддерживаемые технологии: .NET, Java, Python, Node.js, PHP, Ruby

Ключевые возможности:

  • Встроенный CI/CD (GitHub, Azure DevOps)
  • Автоматическое масштабирование
  • Поддержка SSL/TLS и пользовательских доменов
  • Deployment Slots для blue-green деплоя
  • Встроенная аутентификация (Entra ID, Google, Facebook)

Тарифные планы App Service:

План Особенности Стоимость
Free (F1) 1 GB диска, 60 мин CPU/день Бесплатно
Shared (D1) Пользовательские домены ~ $10/мес
Basic (B1-B3) Ручное масштабирование, до 3 экземпляров от $13/мес
Standard (S1-S3) Автомасштабирование, слоты, бэкапы от $70/мес
Premium (P1-P3) Улучшенная производительность, до 30 экземпляров от $115/мес
Isolated (I1-I3) Изолированная сеть, максимальная безопасность от $300/мес

Azure Container Instances (ACI)

ACI позволяет запускать контейнеры Docker без управления серверами или кластерами. Это самый быстрый способ запустить контейнер в Azure.

Характеристики:

  • Запуск за секунды (без предварительной настройки)
  • Оплата посекундная -- только за время работы контейнера
  • Поддержка Linux и Windows контейнеров
  • Группы контейнеров (аналог Pod в Kubernetes)
  • Монтирование Azure Files и секретов

Когда использовать:

  • Batch-задачи и разовые операции
  • Тестирование контейнерных приложений
  • Простые микросервисы
  • CI/CD агенты
# Быстрый запуск контейнера
az container create \
  --resource-group rg-demo \
  --name my-container \
  --image nginx:latest \
  --cpu 1 --memory 1.5 \
  --ports 80 \
  --ip-address public

Azure Kubernetes Service (AKS)

AKS -- это управляемый Kubernetes для оркестрации контейнеров в масштабе. Azure берет на себя управление control plane (master nodes), а вы управляете рабочими нодами.

Характеристики:

  • Управляемый control plane (бесплатно)
  • Автоматическое масштабирование (Cluster Autoscaler, HPA)
  • Интеграция с Azure Container Registry
  • Встроенный мониторинг через Azure Monitor
  • Поддержка Helm, Istio, Dapr

Когда использовать:

  • Микросервисная архитектура
  • Сложные контейнерные приложения
  • Необходимость в тонкой настройке оркестрации
  • Команда с опытом Kubernetes

Azure Functions

Azure Functions -- это бессерверные вычисления (Serverless). Код выполняется только при наступлении определенного события, а инфраструктура полностью управляется Azure.

Триггеры:

  • HTTP-запрос -- создание REST API эндпоинтов
  • Таймер (CRON) -- задачи по расписанию
  • Blob Storage -- реакция на загрузку файла
  • Queue Storage / Service Bus -- обработка сообщений
  • Cosmos DB -- реакция на изменения документов
  • Event Grid -- обработка событий Azure

Тарифные планы:

План Масштабирование Оплата
Consumption Автоматическое (до 200 экземпляров) За выполнение (1M бесплатно/мес)
Premium Предварительно прогретые экземпляры За vCPU и память
Dedicated На базе App Service Plan Фиксированная

Сравнение: когда какой сервис выбрать

Критерий VM App Service ACI AKS Functions
Модель IaaS PaaS CaaS CaaS Serverless
Контроль Максимальный Средний Средний Высокий Минимальный
Масштабирование VMSS Автоматическое Ручное Автоматическое Автоматическое
Старт Минуты Секунды Секунды Минуты Миллисекунды
Стоимость За VM За план За контейнер За ноды За вызов
Сценарий Legacy ПО Веб-приложения Разовые задачи Микросервисы Событийная обработка

Проверь себя

🧪

Azure Functions на тарифном плане Consumption предоставляет бесплатно:

🧪

Какой план App Service поддерживает Deployment Slots и автомасштабирование?

🧪

Какой вычислительный сервис лучше выбрать для микросервисной архитектуры с десятками сервисов?

🧪

Что такое Fault Domain в контексте Azure Virtual Machines?

🧪

Какой сервис лучше выбрать для запуска разовой batch-задачи в Docker-контейнере?