Вычислительные сервисы 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 ПО | Веб-приложения | Разовые задачи | Микросервисы | Событийная обработка |