3.9.3 · блок 3
Практика чтения карты MDP
Практика чтения карты MDP
Зачем это нужно
Теория слоёв и навигации закрепляется только через упражнения на сценариях. Здесь — типовые ситуации capstone: trace request, trace release, trace data. Вы не получаете готовые ответы «куда кликнуть в prod MDP» (они у каждой команды свои), но алгоритм одинаковый.
Основные идеи
Упражнение A — Trace north-south request.
Задача: клиент шлёт POST https://scorer-dev.ml.mdp.ru/v1/predict. Выпишите цепочку компонентов MDP из модулей 3.5–3.8.
Ожидаемый скелет ответа (проверьте себя):
1. DNS → LB
2. Istio Ingress Gateway / Gateway API listener
3. HTTPRoute или VirtualService
4. Service scorer → Endpoints
5. Pod: istio-proxy + app container
6. (optional) вызов Feature Store east-west через mesh
7. (optional) read model from MinIO or local PVC cache
Если пропустили слой — вернитесь к 3.6.1.
Упражнение B — Trace model release.
Новая версия v46 в MinIO, образ scorer:130.
| # | Компонент | Действие |
|---|-----------|----------|
| 1 | Jenkins | build & push `:130` |
| 2 | Git | MR values: image.tag, model.key |
| 3 | Argo CD | sync Deployment |
| 4 | Kubernetes | rollout new Pods |
| 5 | MinIO | объект по новому key |
| 6 | Istio | (optional) canary split |
| 7 | VictoriaMetrics | watch error rate |
Где не участвует Argo Workflows? — Deploy inference (CD), не train.
Упражнение C — Storage choice.
Для каждого объекта выберите MinIO vs Longhorn PVC и аргументируйте одной фразой:
- Финальный
model.onnx2 GB после training - Checkpoint каждые 10 min во время 8h train
- Parquet датасет 500 GB для Spark/Argo step
- Логи inference 7 дней retention
Упражнение D — Incident cards.
Карточка 1: «Certificate not ready» на HTTPRoute.
Слой: ingress + cert-manager.
Checks: kubectl get certificate, Challenge, issuer.
Карточка 2: «PVC Pending».
Слой: storage.
Checks: StorageClass, Longhorn node disk, events on PVC.
Карточка 3: «Argo OutOfSync persistent».
Слой: GitOps.
Checks: diff в UI, manual kubectl edit?, selfHeal, branch protection.
Карточка 4: «GPU train Workflow Pending».
Слой: scheduling + quota.
Checks: kubectl describe workflow, ResourceQuota, node labels nvidia.com/gpu.
Упражнение E — Platform map literacy.
Дана выдержка из wiki (гипотетическая):
mdp-addons/
longhorn/ # block storage
istio/ # mesh 1.20
minio/ # tenant ml-data
argo-cd/
victoria-metrics/
loki/
ml-services/
feature-store/
seldon-operator/
Вопросы:
1. Где искать Helm values для retention Loki? → mdp-addons/loki, platform repo, не ваш scorer chart.
2. Кто деплоит Feature Store? → отдельный Application в ml-services/, не ваш capstone MR.
3. Ваш scorer зависит от Feature Store — это upstream dependency; документируйте в architecture diagram.
Anti-pattern на экзамене/capstone. Перечислить 69 сервисов без связи с вашим пайплайном — минус. Плюс — слой + симптом + 2 команды проверки.
Как это выглядит на практике
Capstone deliverable «Platform touchpoints» (1 страница).
## Scorer on MDP
| Concern | System | Identifier |
|---------|--------|------------|
| CI | Jenkins | job/scorer-build |
| CD | Argo CD | app/scorer-dev |
| Models | MinIO | s3://ml-models/scorer/v46/ |
| Ingress | Istio + HTTPRoute | scorer-dev.ml.mdp.ru |
| Metrics | VictoriaMetrics | dashboard uid xxx |
| Logs | Loki | {app="scorer"} |
| Features | Feature Store | grpc feature-store:6565 |
| Serving | Raw Deployment / KServe | Deployment/scorer |
## Failure modes
- MinIO 403 → check Secret minio-credentials
- ...
Парная работа. Один студент читает карту observability, другой — storage; объясняют друг другу путь batch train → model in MinIO → Argo CD deploy.
Связь с блоком 4 (если дальше по курсу). Monitoring drift модели использует VictoriaMetrics + logs Loki — вы уже знаете, где они на карте.
Что сделать после занятия
- [ ] Выполните упражнения A–D письменно (полстраницы каждое).
- [ ] Соберите таблицу Platform touchpoints для capstone.
- [ ] Пройдите одну карточку incident в учебном кластере (преподаватель simulates или historical ticket).