EasyТеория1 min

Модели облачных сервисов

IaaS, PaaS, SaaS -- сравнение моделей облачных сервисов и модель общей ответственности

Три модели: 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 -- вы загружаете функцию, и она выполняется только когда приходит запрос. Если запросов нет -- расходы нулевые.

Проверь себя

В какой модели клиент несет ответственность за обновление операционной системы?

За что клиент ВСЕГДА несет ответственность, независимо от модели облачного сервиса?

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

Azure App Service -- это пример какой модели облачного сервиса?

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