Зачем это нужно
На 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 |
Как читать карту, а не зубрить. Для каждого сервиса задайте три вопроса:
Какой слой? (storage / net / ci / ml)
Я consumer или operator? (ML engineer почти всегда consumer)
Что сломается у меня, если этот компонент 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:
Jenkins — образ
Git — values tag + model URI MinIO
Argo CD — sync Deployment
Istio — canary weights (optional)
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 без фичей возможен? (зависит от архитектуры — зафиксируйте для своего сервиса)