# Карта пути

← [Главная](../README.md)

## Цель

Составить **личный план** прохождения курса: что учить, в каком порядке, какие навыки проверять на контрольных точках.

## Предварительно

- Прочитана [главная страница курса](../README.md) и глоссарий
- Есть 3–5 часов в неделю минимум (или интенсив на 2–3 недели)

## Время

**3–6 часов** (планирование + первая самопроверка)

---

## Зачем нужна карта пути

Облачная архитектура — это не один язык программирования, а **набор связанных идей**: компоненты, протоколы, безопасность, эксплуатация. Без плана легко «застрять» на инструментах (например, только Kubernetes) и не понять, **зачем** они нужны приложению.

Карта пути отвечает на три вопроса:

1. **Куда иду?** — могу описать и нарисовать архитектуру учебного сервиса.
2. **Что уже умею?** — контрольные точки после разделов 02, 04, 06, 09, 12.
3. **Что дальше?** — связь с разделами 07–13 (деплой, K8s, практикум).

---

## 14 этапов — что внутри

| Этап | Выходной артефакт | Критерий «готово» |
|------|-------------------|-------------------|
| 00 | План в блокноте | Записаны цели и срок |
| 01 | Словарь терминов | Объясняете IaaS/PaaS/SaaS без шпаргалки |
| 02 | Схема компонентов | Назвали слои: клиент → API → сервис → БД |
| 03 | C4 Context + Container | Одна диаграмма на учебный кейс |
| 04 | Выбор sync vs async | Обосновали для 2 сценариев |
| 05 | Чеклист безопасности | 10 пунктов для любого нового сервиса |
| 06 | План масштаба | Stateless API + кэш + LB на схеме |
| 07 | Dockerfile / compose | Локальный запуск в контейнере |
| 08 | Лог + метрика | Нашли ошибку по trace_id в логах |
| 09 | Манифест K8s | Deployment + Service + Ingress (учебный) |
| 10 | CI pipeline | Тесты на push в git |
| 11 | Runbook | Что делать при падении пода |
| 12 | Лабораторная | End-to-end мини-приложение |
| 13 | Ретроспектива | Список ошибок, которых избегаете |

```mermaid
flowchart TB
  subgraph foundation [Фундамент 00-02]
    F0[План]
    F1[Основы облака]
    F2[Компоненты]
  end
  subgraph design [Проектирование 03-04]
    D1[Требования C4 ADR]
    D2[Взаимодействие]
  end
  subgraph ops [Эксплуатация 05-11]
    O1[Безопасность]
    O2[Масштаб]
    O3[Деплой K8s CI]
  end
  subgraph practice [Практика 12-13]
    P1[Лаборатории]
    P2[Pro]
  end
  foundation --> design --> ops --> practice
```

---

## Рекомендуемые траектории

### Траектория A: «Я разработчик»

| Неделя | Разделы | Практика |
|--------|---------|----------|
| 1–2 | 00–02 | Нарисовать архитектуру своего pet-проекта |
| 3–4 | 03–04 | Написать ADR «почему REST, а не gRPC» |
| 5–6 | 05–06 | Добавить HTTPS и health-check в pet-проект |
| 7+ | 07–13 | Контейнер + деплой по курсу |

### Траектория B: «Я аналитик / PM»

| Неделя | Разделы | Практика |
|--------|---------|----------|
| 1 | 00–01 | Глоссарий своими словами |
| 2–3 | 02–03 | Сбор NFR с заказчиком (шаблон из 03) |
| 4 | 04 | Таблица: какой сценарий sync/async |
| 5 | 05–06 | Ревью требований безопасности |
| 6+ | 08, 11, 13 | SLA, инциденты, метрики для стейкхолдеров |

### Траектория C: «Интенсив 3 недели»

- Дни 1–3: 00–02 + одна схема
- Дни 4–7: 03–04 + ADR
- Дни 8–10: 05–06
- Дни 11–15: 07–10 (по мере публикации разделов)
- Дни 16–21: 12 практикум

---

## Навыки по уровням

| Уровень | После раздела | Проверка |
|---------|---------------|----------|
| L0 | 01 | «Облако — это аренда серверов по сети» |
| L1 | 02 | Перечислить 5 компонентов типичного веб-приложения |
| L2 | 04 | Объяснить цепочку: браузер → LB → API → очередь → worker |
| L3 | 06 | Предложить горизонтальное масштабирование API |
| L4 | 09 | Прочитать YAML Deployment и сказать, сколько реплик |
| L5 | 12 | Самостоятельно спроектировать мини-сервис с нуля |

---

## Контрольные точки (обязательные)

### КТ-1 — после раздела 02

**Задание:** на листе A4 нарисуйте интернет-магазин: пользователь, веб, API, каталог, корзина, БД, оплата (внешний SaaS).

**Сдать себе:** подписи на стрелках — HTTP, SQL, webhook.

### КТ-2 — после раздела 04

**Задание:** для «оформление заказа» опишите sync-часть (проверка склада) и async-часть (отправка email).

### КТ-3 — после раздела 06

**Задание:** список из 5 узких мест при росте с 100 до 10 000 пользователей и мера для каждого.

---

## Инструменты (по желанию)

| Инструмент | Зачем на курсе |
|------------|----------------|
| draw.io / diagrams.net | C4 и схемы |
| Obsidian / VS Code | Чтение markdown |
| Docker Desktop | Раздел 07+ |
| minikube / kind | Локальный K8s |
| Git | Версионирование ADR и кода |

Секреты и ключи облака **не нужны** для разделов 00–06 — только схемы и рассуждения.

---

## Типичные ловушки новичков

| Ловушка | Почему плохо | Что делать |
|---------|--------------|------------|
| Сразу K8s без компонентов | Не понимаете, что крутите в подах | Сначала 02–04 |
| «Одна большая БД на всё» | Связность и риск при росте | Думать о границах сервисов |
| Игнор NFR | «Сделаем быстро, масштаб потом» | Раздел 03 до кода |
| Секреты в git | Утечка при публикации | Раздел 05 заранее |

---

## Самопроверка

1. Запишите одну цель на 4 недели (одно предложение).
2. Выберите траекторию A, B или C и отметьте стартовую дату.
3. Назовите три термина из [глоссария](../README.md), которые уже знаете, и три — новых.

---

## Дальше

→ [01 — Основы](../01-osnovy/README.md)
