Облачные вычисления

Введение в облачные вычисления

В 2010 году Netflix полностью мигрировал из собственных дата-центров в AWS. Результат: из компании с 1000 серверами и регулярными падениями - в сервис, который стримит видео 250 миллионам подписчиков в 190 странах. Как три буквы - IaaS, PaaS, SaaS - изменили правила игры для всей индустрии?

  • **Netflix** обрабатывает 15% мирового интернет-трафика на AWS, а не на собственных серверах
  • **Стартапы** запускают продукт за дни вместо месяцев - не нужно покупать серверы и нанимать сисадминов
  • **93% компаний** из Fortune 500 используют облачные сервисы - это не тренд, а стандарт индустрии

Infrastructure as a Service (IaaS)

**IaaS** - это аренда вычислительной инфраструктуры: серверов, сети, хранилищ. Провайдер предоставляет «голое железо» в виртуализированной форме, а команда управляет всем остальным - от операционной системы до приложений.

Аналогия: **аренда земельного участка**. Тебе дали территорию с подведёнными коммуникациями (электричество, вода). Но дом проектируешь и строишь сам. Хочешь - поставь палатку, хочешь - возведи небоскрёб.

ПровайдерСервис IaaSЧто получаешь
AWSEC2Виртуальные серверы с выбором CPU, RAM, диска
AzureVirtual MachinesWindows/Linux VM с интеграцией в Active Directory
GCPCompute EngineVM с 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-сервисОсобенности
HerokuHeroku DynosПростейший деплой, buildpacks для любого языка
AWSElastic BeanstalkPaaS поверх EC2, полный контроль при необходимости
GCPApp EngineАвтоматическое масштабирование, Standard и Flexible режимы
AzureApp 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, TeamsIRC-сервер, Jabber, собственная VoIP
CRMSalesforce, HubSpotСамописная CRM на PostgreSQL
CI/CDGitHub 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
Введение в облачные вычисления

0

1

Войти