03 · Платформа: DevOps, k8s, сеть, хранилище3.9 · Карта сервисов MDP3.9.1средний

Слои платформы 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 без фичей возможен? (зависит от архитектуры — зафиксируйте для своего сервиса)

Официальные материалы