> For the complete documentation index, see [llms.txt](https://rema.gitbook.io/it-business-system-analyst/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rema.gitbook.io/it-business-system-analyst/systems_analyst/oblachnye-tekhnologii-cloud.md).

# Облачные технологии (Cloud Technologies)

| Грейд     | Роль   |
| --------- | ------ |
| 🟠 Senior | 🅰️ SA |

> Облако изменило способ разработки и развертывания систем. Аналитику важно понимать модели обслуживания, провайдеров и архитектурные паттерны для корректной формулирования требований.

## Почему аналитику нужны знания облака

Облачные вычисления кардинально изменили ландшафт разработки. Вместо покупки собственных серверов, организации берут инфраструктуру в аренду. Это влияет на требования, архитектуру и экономику проекта.

## Модели обслуживания облака

### IaaS (Infrastructure as a Service)

Провайдер предоставляет виртуальные машины, хранилище и сеть. Клиент управляет ОС и приложениями.

**Примеры:** AWS EC2, Azure Virtual Machines, Google Compute Engine

**Для аналитика:**

* Полная гибкость в выборе ПО
* Нужен специалист для настройки инфраструктуры
* Сложнее масштабировать (нужно ручное добавление ВМ)

### PaaS (Platform as a Service)

Провайдер предоставляет платформу (runtime, БД, очереди). Разработчик просто пишет код.

**Примеры:** Heroku, Google App Engine, AWS Elastic Beanstalk

**Для аналитика:**

* Разработчик сосредотачивается на коде
* Масштабирование часто автоматическое
* Ограничения — не все языки и фреймворки поддерживаются

### SaaS (Software as a Service)

Готовое облачное приложение (Slack, Google Docs, Salesforce). Клиент просто использует.

**Для аналитика:**

* Никакой работы с инфраструктурой
* Интеграция с другими SaaS сервисами
* Ограничения в кастомизации

### FaaS (Functions as a Service, Serverless)

Облако автоматически выполняет функции кода при событиях. Нет управления серверами.

**Примеры:** AWS Lambda, Google Cloud Functions, Azure Functions

**Для аналитика:**

* Минимум операционной сложности
* Полностью автоматическое масштабирование
* Ограничения: timeout (15 минут), память, startup время

## Основные облачные провайдеры

| Провайдер        | Рынок          | Сильные стороны                                              |
| ---------------- | -------------- | ------------------------------------------------------------ |
| **AWS**          | 32%            | Больше всего сервисов, первопроходец, глобальное присутствие |
| **Azure**        | 24%            | Интеграция с Microsoft, хорошо для enterprise                |
| **GCP**          | 11%            | Лучше всего для data science и ML, низкие цены               |
| **Yandex Cloud** | \~ 2% (россия) | Локализация в РФ, соответствие регуляциям                    |

## Cloud-native архитектура

### Контейнеры (Docker)

Контейнер — это упакованное приложение со всеми зависимостями. Работает одинаково на любой машине.

**Преимущества:**

* Изоляция — приложения не мешают друг другу
* Портативность — контейнер работает на laptop, dev server и production
* Масштабируемость — легко запустить много копий

### Оркестрация (Kubernetes)

Kubernetes автоматически управляет контейнерами:

* Запускает копии при отказе
* Распределяет нагрузку
* Обновляет приложение без downtime
* Масштабирует по нагрузке

**Для аналитика:** Kubernetes позволяет говорить о масштабируемости и надежности как о встроенных качествах.

### Managed Services

Облако управляет определенным сервисом (БД, очередь, API gateway). Клиент просто конфигурирует.

**Примеры:**

* AWS RDS — управляемая БД
* AWS S3 — объектное хранилище
* AWS API Gateway — управление API

**Преимущества:**

* Автоматические backup, репликация, обновления
* Не нужно думать об iron
* Масштабирование часто автоматическое

## Облако и требования

### Масштабируемость

Требование: "Система должна обработать 10000 запросов в секунду"

На облаке это означает:

* Горизонтальное масштабирование (добавить инстансы)
* Load balancer распределит нагрузку
* Auto-scaling группа добавит инстансы при нагрузке

**Для аналитика:** определить нагрузку (RPM, RPS, параллельные пользователи).

### Доступность (Availability)

Требование: "Система должна быть доступна 99.9% времени"

Это означает:

* Multi-zone развертывание (в нескольких дата-центрах)
* Автоматический failover при отказе
* RTO (Recovery Time Objective) < 5 минут
* RPO (Recovery Point Objective) < 1 минута

### Cloud-specific ограничения

| Ограничение           | Пример                          | Как учитывать                                       |
| --------------------- | ------------------------------- | --------------------------------------------------- |
| **Timeout FaaS**      | AWS Lambda макс 15 минут        | Разбить долгую операцию на асинхронную              |
| **Cold start**        | Первый вызов Lambda медленнее   | Предварительная "прогрева" или reserved concurrency |
| **Rate limiting API** | API провайдера 100 req/sec      | Throttling, очереди, retry logic                    |
| **Network latency**   | Вызов в другой регион медленнее | Минимизировать cross-region calls                   |

## Выбор облачной модели

### Public Cloud (публичное облако)

Облако от Amazon, Google, Microsoft доступно всем через интернет.

**Когда выбирать:**

* Стартап с переменной нагрузкой
* Не нужна полная изоляция данных
* Хотим быстро выйти на рынок

**Минусы:** vendor lock-in, может быть дорого при высокой нагрузке.

### Private Cloud (частное облако)

Облачная инфраструктура развернута у компании или выделенная от провайдера.

**Когда выбирать:**

* Критичные требования безопасности
* Соответствие регуляциям (GDPR, 152-ФЗ)
* Большие объемы данных требуют дешевле свое облако

**Минусы:** высокие инвестиции, нужна своя команда.

### Hybrid Cloud (гибридное облако)

Комбинация публичного и частного облака.

**Когда выбирать:**

* Поэтапная миграция в облако
* Часть данных в private, часть в public
* Peak-нагрузка на public облако

## Архитектурные паттерны в облаке

### Микросервисы + Kubernetes

```
API Gateway
  ├─ User Service (3 реплики)
  ├─ Product Service (5 реплик)
  └─ Order Service (4 реплики)

Каждый сервис:
- Независимое развертывание
- Собственная БД
- REST API для коммуникации
```

**Для аналитика:** четко определить границы микросервисов.

### Serverless

```
User uploads file → S3 bucket
  ↓ (S3 event trigger)
Lambda function processes file
  ↓
Результат в DynamoDB
  ↓ (DynamoDB stream trigger)
Lambda отправляет email
```

**Для аналитика:** определить события и цепочку функций.

## Стоимость облака

### Модель оплаты

**Pay-as-you-go:** платим только за использованное.

Примеры:

* AWS Lambda: $0.20 за миллион запросов
* AWS RDS: $0.50 за час работы small instance
* AWS S3: $0.023 за GB хранилища месяц

**Для аналитика:** облако экономно при переменной нагрузке, но дорого при постоянно высокой.

### Оптимизация стоимости

Рекомендации:

* Использовать Reserved Instances (скидка 30-50% при годовом контракте)
* Автоматическое масштабирование (не переплачивать за неиспользуемые ресурсы)
* Data transfer между регионами дорого — минимизировать
* Неиспользуемые инстансы стоят денег — удалять

## Vendor Lock-in риск

**Vendor lock-in** — сложность миграции с одного облака на другое.

Примеры:

* AWS DynamoDB — уникальна для AWS
* Google BigQuery — оптимизирована только для GCP
* Azure Cognitive Services — только в Azure

**Как минимизировать:**

* Использовать стандартные технологии (PostgreSQL, не RDS)
* Отделить бизнес-логику от облачных сервисов
* Документировать архитектурные решения

## Практические рекомендации для аналитика

### При выборе облака

1. **Определить требования к регуляции** — какие законы применяются?
2. **Оценить стоимость** — какой тип нагрузки?
3. **Проверить наличие сервисов** — нужны ли специфичные сервисы (BigQuery, SageMaker)?
4. **Обсудить vendor lock-in** — риски приемлемы?
5. **Спросить про expertise** — есть ли в организации опыт с выбранным облаком?

### При написании требований

```
Инфраструктура:
- Public Cloud: AWS
- Регион: eu-west-1 (Ирландия) для GDPR compliance
- Масштабируемость: auto-scaling от 2 до 100 инстансов
- Доступность: 99.9% uptime (multi-AZ)

Компоненты:
- API Gateway: управление REST API, rate limiting
- ECS: микросервисы на Docker
- RDS: PostgreSQL 14, multi-AZ, daily backup
- S3: хранилище файлов, lifecycle: delete after 90 дней
- CloudWatch: логирование и мониторинг

Стоимость:
- Бюджет: $5000/месяц
- Мониторинг расходов через AWS Cost Explorer
- Алерт если расходы > $6000/месяц
```

## 📚 Ресурсы для изучения

* [AWS Documentation](https://docs.aws.amazon.com/) — полная документация AWS
* [Google Cloud Platform Docs](https://cloud.google.com/docs) — документация GCP
* [Microsoft Azure Docs](https://learn.microsoft.com/en-us/azure/) — документация Azure
* [Cloud Computing Models](https://www.youtube.com/watch?v=36zducUX16w) — видео про IaaS/PaaS/SaaS
* [The Art of Scalability](https://www.oreilly.com/library/view/the-art-of/9780134031408/) — книга про масштабируемость
