Облачные вычисления
Введение в облачные вычисления
В 2010 году Netflix полностью мигрировал из собственных дата-центров в AWS. Результат: из компании с 1000 серверами и регулярными падениями - в сервис, который стримит видео 250 миллионам подписчиков в 190 странах. Как три буквы - IaaS, PaaS, SaaS - изменили правила игры для всей индустрии?
- **Netflix** обрабатывает 15% мирового интернет-трафика на AWS, а не на собственных серверах
- **Стартапы** запускают продукт за дни вместо месяцев - не нужно покупать серверы и нанимать сисадминов
- **93% компаний** из Fortune 500 используют облачные сервисы - это не тренд, а стандарт индустрии
Infrastructure as a Service (IaaS)
**IaaS** - это аренда вычислительной инфраструктуры: серверов, сети, хранилищ. Провайдер предоставляет «голое железо» в виртуализированной форме, а команда управляет всем остальным - от операционной системы до приложений.
Аналогия: **аренда земельного участка**. Тебе дали территорию с подведёнными коммуникациями (электричество, вода). Но дом проектируешь и строишь сам. Хочешь - поставь палатку, хочешь - возведи небоскрёб.
| Провайдер | Сервис IaaS | Что получаешь |
|---|---|---|
| AWS | EC2 | Виртуальные серверы с выбором CPU, RAM, диска |
| Azure | Virtual Machines | Windows/Linux VM с интеграцией в Active Directory |
| GCP | Compute Engine | VM с live migration и per-second billing |
**Когда выбирать IaaS:** нужен полный контроль над ОС и средой выполнения. Например, кастомный ML-кластер с GPU, legacy-приложение с особыми зависимостями, или система с жёсткими требованиями compliance.
**Обратная сторона контроля** - ответственность. На IaaS обновление ОС, патчинг уязвимостей и настройка firewall лежат на команде. Пропущенный security patch ведёт к взлому.
Компания запускает ML-пайплайн, который требует кастомных CUDA-драйверов и специфичной версии Ubuntu. Какая модель подходит?
Platform as a Service (PaaS)
**PaaS** - это следующий уровень абстракции. Провайдер управляет инфраструктурой и платформой (ОС, runtime, middleware), а команда фокусируется только на коде и данных.
Аналогия: **аренда квартиры**. Стены, пол, сантехника - уже есть. Тебе не нужно думать о фундаменте или крыше. Ты просто заезжаешь со своей мебелью (кодом) и живёшь.
| Провайдер | PaaS-сервис | Особенности |
|---|---|---|
| Heroku | Heroku Dynos | Простейший деплой, buildpacks для любого языка |
| AWS | Elastic Beanstalk | PaaS поверх EC2, полный контроль при необходимости |
| GCP | App Engine | Автоматическое масштабирование, Standard и Flexible режимы |
| Azure | App Service | Глубокая интеграция с .NET, слоты для blue-green деплоя |
**PaaS идеален для стартапов.** Вместо найма DevOps-инженера за $150K/год, `git push` даёт production-ready инфраструктуру за $25/мес.
**Vendor lock-in** - главный риск PaaS. Код, завязанный на Heroku Dynos или App Engine API, сложно перенести на другую платформу. Используй стандартные протоколы (HTTP, SQL) чтобы минимизировать зависимость.
Стартап из 3 разработчиков хочет быстро запустить REST API на Node.js. У них нет DevOps-инженера. Что выбрать?
Software as a Service (SaaS)
**SaaS** - это готовое приложение, доступное через браузер или API. Ты не устанавливаешь, не обновляешь, не администрируешь. Просто заходишь и пользуешься.
Аналогия: **отель**. Ты не строишь здание, не обставляешь комнату, не чинишь сантехнику. Заезжаешь, пользуешься всеми удобствами и платишь за ночь. Но не можешь передвинуть стены или поменять планировку.
| Категория | SaaS-примеры | Что заменяют |
|---|---|---|
| Почта | Gmail, Outlook 365 | Собственный mail-сервер (Postfix, Exchange) |
| Коммуникации | Slack, Zoom, Teams | IRC-сервер, Jabber, собственная VoIP |
| CRM | Salesforce, HubSpot | Самописная CRM на PostgreSQL |
| CI/CD | GitHub Actions, CircleCI | Собственный Jenkins-сервер |
| Мониторинг | Datadog, New Relic | Собственный Grafana + Prometheus стек |
**SaaS-экономика:** Slack стоит ~$8/пользователь/мес. Собственная альтернатива (Mattermost на своих серверах) потребует: сервер ($100/мес), DevOps (5K/мес), время на поддержку. SaaS выгоден, пока команда < 500 человек.
**Build vs Buy** - ключевое решение. Правило: если это не core-компетенция бизнеса - бери SaaS. Ты не конкурируешь с Gmail в отправке писем.
Компания решает: использовать Datadog (23/хост/мес) или поднять свой стек Prometheus + Grafana. Что из этого НЕ является преимуществом SaaS-решения?
Модель разделённой ответственности
Теперь, когда мы знаем три модели, возникает критический вопрос: **кто отвечает за безопасность?** AWS сформулировал это как **Shared Responsibility Model** - модель разделённой ответственности.
Принцип прост: **провайдер отвечает за безопасность облака** (физические серверы, сеть, гипервизор), **клиент отвечает за безопасность в облаке** (данные, доступы, конфигурация).
| Уровень | IaaS (EC2) | PaaS (Beanstalk) | SaaS (Gmail) |
|---|---|---|---|
| Данные клиента | Клиент | Клиент | Клиент |
| Управление доступом (IAM) | Клиент | Клиент | Клиент |
| Конфигурация приложения | Клиент | Клиент | Провайдер |
| Шифрование данных | Клиент | Shared | Провайдер |
| Операционная система | Клиент | Провайдер | Провайдер |
| Сеть и Firewall | Клиент | Провайдер | Провайдер |
| Физическая безопасность | Провайдер | Провайдер | Провайдер |
**Реальный кейс (2019):** Capital One хранил данные 100 млн клиентов в AWS S3. Взломщик получил доступ через неправильно настроенный WAF (Web Application Firewall). AWS не виноват - конфигурация firewall - зона ответственности клиента.
**Ключевой принцип:** чем выше уровень абстракции (IaaS → PaaS → SaaS), тем больше ответственности переходит к провайдеру. Но **за данные и управление доступом клиент отвечает всегда**, на любом уровне.
**Чек-лист безопасности в облаке:** 1. Включить MFA для root-аккаунта 2. Использовать IAM-роли вместо долгоживущих ключей 3. Шифровать данные at rest и in transit 4. Настроить CloudTrail/аудит-логи 5. Регулярно ревьюить Security Groups.
Если данные в облаке - провайдер полностью отвечает за их безопасность
Безопасность в облаке - разделённая ответственность. Провайдер защищает инфраструктуру, но за данные, доступы и конфигурацию отвечает клиент
Capital One, Twitch, Facebook - все крупные утечки из облака произошли из-за ошибок конфигурации на стороне клиента, а не из-за уязвимостей инфраструктуры провайдера
Хакер получил доступ к базе данных компании, размещённой в AWS RDS (managed database). Кто несёт ответственность?
Ключевые идеи
- **IaaS** (EC2, Azure VM) - аренда земли: максимальный контроль, максимум ответственности
- **PaaS** (Heroku, Beanstalk) - аренда квартиры: деплой кода, платформа управляет инфрой
- **SaaS** (Gmail, Slack) - отель: готовый продукт, ничего не настраивается
- **Shared Responsibility** - провайдер защищает облако, клиент защищает данные в облаке
- Netflix: успех стал возможен благодаря правильному выбору уровня абстракции для каждого сервиса - где-то IaaS для контроля, где-то SaaS для скорости
Связанные темы
Облачные модели - это фундамент. Дальше разберём, как именно работают виртуализация и контейнеры под капотом:
- Виртуализация и контейнеры — IaaS строится на виртуализации - следующий урок
- Регионы и доступность — Где физически работает облако и почему это важно
Вопросы для размышления
- Какие сервисы в текущем проекте можно заменить на SaaS вместо self-hosted?
- При создании стартапа с нуля - какой уровень абстракции оптимален для MVP и почему?
- Какие данные в проекте нельзя выносить в публичное облако из-за compliance (GDPR, 152-ФЗ)?
Связанные уроки
- cloud-02 — Виртуализация и контейнеры - механика, на которой строится IaaS.
- cloud-03 — Регионы и доступность - следующий уровень понимания облачной инфраструктуры.
- ds-01-intro — Облако - это распределённая система; CAP, отказоустойчивость и consistency применимы к любому облачному сервису.
- st-01-feedback-loops — Модель Shared Responsibility - пример явного разграничения зон управления, как leverage points в системном мышлении.
- alg-01-big-o — Выбор уровня абстракции (IaaS/PaaS/SaaS) влияет на cost structure - понимание масштабирования затрат помогает принять решение.
- os-12-virtualization