MLOps Path

8.1.1 · блок 8

Capstone: неделя 1 — каркас

Capstone: неделя 1 — каркас

Зачем это нужно

Capstone — интеграция модулей 1–7 в один ML-продукт на платформе MDP. Первая неделя не про F1 score; про каркас: repo, CI, namespace, контракты, skeleton inference, GitOps. Без каркаса недели 2–3 превращаются в хаотичный «догоняем Dockerfile в ночь перед защитой».

Этот урок — план работ и критерии приёмки недели 1 для команд и solo-студентов.

Основные идеи

Цель недели 1. End-to-end скелет проходит pipeline: commit → CI green → образ в registry → deploy в dev namespace → health endpoint отвечает (модель может быть stub).

Deliverables checklist.

| # | Артефакт | Связь с курсом |

|---|----------|----------------|

| 1 | Git repo (monorepo или multi) | 1.2 Git, branching |

| 2 | README + C4 Context/Container (draft) | 2.2 C4 |

| 3 | OpenAPI `/predict` contract | 4.1 ML as API |

| 4 | Dockerfile inference (MLServer base) | 3.1, 7.2 |

| 5 | Jenkinsfile: lint, test, build, push | 3.2 CI/CD |

| 6 | Helm chart or raw manifests | 3.4 Helm |

| 7 | Argo CD Application (dev) | 3.7 GitOps |

| 8 | Namespace + quota request | 3.3 K8s |

| 9 | Stub model + smoke test | 7.2.2 |

| 10 | Jira epic + 3 stories на неделю 2 | 1.1 processes |

Repo structure (рекомендация).


capstone-churn/
├── README.md
├── docs/
│   ├── architecture/     # C4, ADR
│   └── api/openapi.yaml
├── training/             # notebook → script (week 2)
├── feature_repo/         # Feast (optional week 2)
├── serving/
│   ├── model-settings.json
│   ├── Dockerfile
│   └── tests/
├── deploy/
│   └── helm/churn-serving/
├── Jenkinsfile
└── .gitignore

OpenAPI stub. Зафиксируйте JSON schema входа/выхода до обучения — contract-first (4.1).

Inference stub. MLServer с dummy sklearn или constant predictor — цель проверить платформу, не ML.

GitOps dev deploy.


# deploy/argo/churn-dev.yaml
spec:
  destination:
    namespace: ml-capstone-dev
  source:
    path: deploy/helm/churn-serving
    helm:
      valueFiles: [values-dev.yaml]

Observability hooks (minimal). ServiceMonitor or Pod annotations для Prometheus — даже если dashboard на неделе 3, metrics должны течь с недели 1.

Definition of Done недели 1.

Риски недели 1.

| Риск | Mitigation |

|------|------------|

| Нет доступа к cluster | Ticket platform day 1 |

| Scope creep (Feast+Kafka day 3) | Freeze scope in ADR |

| Solo student overload | Cut Helm, use plain Deployment OK |

Как это выглядит на практике

День 1–2: Epic, repo, OpenAPI, architecture sketch.

День 3–4: Dockerfile + local MLServer smoke; Jenkins build.

День 5: Helm + Argo; fix probes until Ready.

Demo к преподавателю: 5 мин — показать Git → Jenkins → Argo → curl health/infer stub.

Team roles (3 человека).

Roles rotate week 2.

Что сделать после занятия

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

Открыть интерактивную версию