08 · Итоговый проект8.1 · Capstone8.1.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.

  • curl https://churn-dev.../v2/health/ready → 200

  • Jenkins main branch green

  • Argo CD Application Synced + Healthy

  • OpenAPI в repo, reviewed одним teammate

  • Нет secrets в Git (3.2.4)

Риски недели 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 человека).

  • Platform track: Jenkins, Helm, Argo.

  • ML track: OpenAPI, model-settings, tests.

  • Docs track: C4, README, Jira.

Roles rotate week 2.

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

  • Создайте repo и README с описанием кейса (churn / fraud / recommend — один на команду).

  • Commit OpenAPI v0.1 и получите review.

  • Добейтесь green deploy stub в ml-capstone-dev.

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