Три модели: IaaS, PaaS, SaaS
Облачные сервисы делятся на три основные модели, которые отличаются уровнем абстракции и распределением ответственности между провайдером и клиентом. Понимание этих моделей -- фундамент для работы с Azure и ключевая тема экзамена AZ-900.
IaaS -- Infrastructure as a Service
IaaS предоставляет базовые вычислительные ресурсы: виртуальные машины, сети, хранилище. Это самый низкий уровень абстракции -- вы получаете "чистую" инфраструктуру и управляете всем остальным самостоятельно.
Что предоставляет провайдер:
- Физические серверы и виртуализация
- Сетевая инфраструктура
- Хранилище данных
- Физическая безопасность дата-центров
Что управляете вы:
- Операционная система (установка, обновления, патчи)
- Middleware и среда выполнения
- Приложения и данные
- Сетевые настройки (файрвол, правила доступа)
Примеры Azure IaaS: Azure Virtual Machines, Azure Virtual Networks, Azure Disk Storage
Когда выбирать IaaS:
- Миграция существующей инфраструктуры в облако (стратегия lift-and-shift)
- Необходим полный контроль над операционной системой
- Нужно запустить ПО, которое не поддерживается в PaaS
- Создание тестовых и dev-окружений с полной конфигурацией
# Пример создания виртуальной машины в Azure
az vm create \
--resource-group rg-demo \
--name myVM \
--image Ubuntu2204 \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys
PaaS -- Platform as a Service
PaaS предоставляет готовую платформу для разработки и развертывания приложений. Вы не заботитесь об ОС, среде выполнения и обновлениях -- только пишете код и загружаете его в облако.
Что предоставляет провайдер:
- Всё, что в IaaS, плюс:
- Операционная система
- Middleware и среда выполнения (.NET, Java, Python)
- Средства разработки и развертывания
Что управляете вы:
- Приложения (ваш код)
- Данные
Примеры Azure PaaS: Azure App Service, Azure SQL Database, Azure Functions, Azure Cosmos DB
Когда выбирать PaaS:
- Разработка веб-приложений и API
- Нужен быстрый вывод продукта на рынок
- Команда хочет сфокусироваться на коде, а не на инфраструктуре
- Нужны встроенные возможности масштабирования и мониторинга
# Пример развертывания веб-приложения в App Service (PaaS)
az webapp create \
--resource-group rg-demo \
--plan my-plan \
--name my-web-app \
--runtime "DOTNETCORE:8.0"
SaaS -- Software as a Service
SaaS -- это полностью готовое программное обеспечение, доступное через браузер или API. Пользователь не занимается ни инфраструктурой, ни разработкой -- просто использует готовый продукт.
Что предоставляет провайдер:
- Полностью готовое приложение
- Вся инфраструктура и обновления
- Безопасность и доступность
Что управляете вы:
- Данные, которые вы вводите
- Настройки доступа пользователей
- Конфигурация приложения
Примеры SaaS: Microsoft 365 (Word, Excel, Teams), Dynamics 365, Azure DevOps, Salesforce
Когда выбирать SaaS:
- Нужна готовая функциональность без разработки
- Стандартные бизнес-задачи: почта, документооборот, CRM
- Быстрое внедрение без привлечения разработчиков
Сравнительная таблица
| Характеристика | IaaS | PaaS | SaaS |
|---|---|---|---|
| Уровень контроля | Максимальный | Средний | Минимальный |
| Гибкость настройки | Высокая | Средняя | Низкая |
| Управление ОС | Клиент | Провайдер | Провайдер |
| Управление приложениями | Клиент | Клиент | Провайдер |
| Управление данными | Клиент | Клиент | Клиент |
| Сложность управления | Высокая | Средняя | Низкая |
| Скорость развертывания | Средняя | Высокая | Мгновенная |
| Примеры Azure | VM, VNet | App Service, SQL DB | Microsoft 365 |
Модель общей ответственности (Shared Responsibility Model)
Модель общей ответственности определяет, какие аспекты безопасности и управления лежат на провайдере, а какие -- на клиенте. Это распределение зависит от выбранной модели сервиса.
Зоны ответственности
| Компонент | IaaS | PaaS | SaaS |
|---|---|---|---|
| Данные и доступ | Клиент | Клиент | Клиент |
| Приложения | Клиент | Клиент | Провайдер |
| Среда выполнения | Клиент | Провайдер | Провайдер |
| Операционная система | Клиент | Провайдер | Провайдер |
| Виртуальная сеть | Клиент | Провайдер | Провайдер |
| Физическая инфраструктура | Провайдер | Провайдер | Провайдер |
Главное правило: независимо от модели, клиент всегда отвечает за свои данные, учетные записи и управление доступом. Физическая безопасность дата-центров всегда лежит на провайдере.
При переходе от IaaS к SaaS ответственность клиента уменьшается, а ответственность провайдера увеличивается. Это не означает, что SaaS безопаснее "по умолчанию" -- просто зона ответственности клиента сужается до управления данными и доступом.
Serverless как расширение PaaS
Отдельно стоит упомянуть бессерверные вычисления (Serverless) -- это эволюция PaaS, где провайдер управляет не просто платформой, но и масштабированием. Вы платите только за фактическое время выполнения кода, а не за выделенные ресурсы.
Пример Azure Serverless: Azure Functions -- вы загружаете функцию, и она выполняется только когда приходит запрос. Если запросов нет -- расходы нулевые.