3.9.1 · блок 3
Слои платформы MDP: как читать карту
Слои платформы MDP: как читать карту
Зачем это нужно
На MDP десятки сервисов — легко утонуть в списке из 69 имён. Цель этого модуля не заучить все сервисы, а научиться читать platform map: какие слои есть, зачем каждый, и куда смотреть, когда ломается ваш inference или пайплайн обучения.
Вы уже знаете кусочки: Jenkins (CI), Kubernetes (workloads), Helm (packaging), Longhorn (диски), MinIO (модели), Istio (сеть), Argo CD (deploy), Argo Workflows (batch). Карта платформы — склейка слоёв в одну mental model.
Основные идеи
Слой 0 — Infra (Terraform, bare metal/cloud). Кластер, сеть, LB, DNS. Вы почти не трогаете; но без него нет API server.
Слой 1 — Kubernetes core. Scheduler, kubelet, CNI. Workloads из модулей 3.3–3.4.
Слой 2 — Storage.
| Сервис | Роль для ML |
|--------|-------------|
| **Longhorn** | PVC: checkpoint, локальный кэш модели |
| **MinIO** | S3: артефакты моделей, датасеты, backup |
Слой 3 — Networking & ingress.
| Сервис | Роль для ML |
|--------|-------------|
| **Istio** | mesh, ingress gateway, mTLS, canary |
| **cert-manager** | TLS-сертификаты для HTTPS endpoints |
| Gateway API (CRD) | HTTPRoute к вашему Service |
Слой 4 — Delivery & automation.
| Сервис | Роль для ML |
|--------|-------------|
| **Jenkins** | CI: test, build image, push registry |
| **Argo CD** | GitOps: sync Helm chart inference в prod |
| **Argo Workflows** | train/eval DAG, batch jobs |
Слой 5 — Observability.
| Сервис | Роль для ML |
|--------|-------------|
| **VictoriaMetrics** (или Prometheus) | метрики RPS, latency, GPU |
| **Loki** | логи Pod'ов и gateway |
Слой 6 — ML platform services.
| Сервис | Роль для ML |
|--------|-------------|
| **Feature Store** | online/offline фичи для train и inference |
| **Seldon / KServe** | model serving, InferenceService CRD, scale-to-zero |
Как читать карту, а не зубрить. Для каждого сервиса задайте три вопроса:
1. Какой слой? (storage / net / ci / ml)
2. Я consumer или operator? (ML engineer почти всегда consumer)
3. Что сломается у меня, если этот компонент down?
Пример: MinIO down → inference не скачает модель → CrashLoop; Istio down → нет внешнего URL, но Pod может жить; VictoriaMetrics down → нет графиков, predict работает.
Dependency direction (упрощённо).
Terraform → K8s cluster
→ Platform addons (Longhorn, Istio, MinIO, Argo, monitoring)
→ ML apps (your Helm charts)
→ Business traffic
Не всё на одной диаграмме. Platform map в Confluence/Git часто несколько страниц: «Network», «Storage», «ML Services» — учитесь прыгать между ними по симптому, не по алфавиту.
Как это выглядит на практике
Incident: 503 на scorer.ml.mdp.ru.
| Шаг | Слой | Куда смотреть |
|-----|------|--------------|
| 1 | Ingress/mesh | HTTPRoute, VirtualService, Gateway |
| 2 | App | Pod ready, logs Loki |
| 3 | Backend deps | Feature Store timeout, MinIO 403 |
| 4 | Infra | Node NotReady, Longhorn degraded |
Release новой модели — touch map:
1. Jenkins — образ
2. Git — values tag + model URI MinIO
3. Argo CD — sync Deployment
4. Istio — canary weights (optional)
5. VictoriaMetrics — dashboard error rate
Capstone checklist. Вам не нужны все 69 сервисов — нужны ~10 из таблиц выше + ваш namespace quota + Git repo Application.
Что сделать после занятия
- [ ] Разложите 8 сервисов (Istio, Longhorn, MinIO, VictoriaMetrics, Loki, Argo CD, Jenkins, KServe) по слоям 2–6.
- [ ] Для своего проекта выпишите: CI tool, GitOps app name, bucket модели, hostname gateway.
- [ ] Ответьте: «Feature Store недоступен» — predict без фичей возможен? (зависит от архитектуры — зафиксируйте для своего сервиса)