Зачем это нужно
Вы уже знаете CI/CD, Docker, Kubernetes, Helm из блока 3. MLOps — не «другая профессия», а расширение DevOps под специфику машинного обучения: данные, эксперименты, модели, drift. Понимание границы помогает не изобретать велосипед (Git, pipelines) и не игнорировать ML-риски (невоспроизводимость, silent degradation).
Основные идеи
DevOps — культурно-технический набор практик.
Автоматизация сборки, тестов, деплоя.
Инфраструктура как код.
Observability: metrics, logs, traces.
Быстрая обратная связь, blameless postmortems.
MLOps = DevOps + ML-specific concerns.
| Область | DevOps | MLOps (добавка) |
|---|---|---|
| Артефакт | Docker image, binary | + model weights, datasets |
| Тесты | unit, integration | + data validation, model perf smoke |
| Версионирование | Git tag | + experiment ID, dataset version |
| Деплой | Rolling update | + canary по model version, shadow |
| Мониторинг | CPU, errors, latency | + prediction drift, data quality |
| Откат | Previous image tag | + previous model + feature schema compat |
Не дублировать, а расширять. Jenkins остаётся CI. Argo CD остаётся GitOps. Добавляются ClearML (experiments), MMS (registry), Argo Workflows (train/batch), специализированные dashboards.
CD4ML (Continuous Delivery for ML). Идея ThoughtWorks / industry: pipeline доставляет не только код, но и модель и данные через те же quality gates. Каждый merge может триггерить переобучение — если команда созрела; на старте — scheduled retrain.
Команды и границы ответственности.
Platform / SRE — кластер, observability stack, общие Helm charts.
MLE — serving, feature pipeline, integration с MMS.
DS — эксперименты, метрики offline, model card.
Shared — Definition of Done, incident process.
MLOps-инженер часто на стыке: не обязан быть лучшим DS, но обязан понимать, что такое train/serving skew.
Зрелость. Уровень 0: модель вручную копируют на сервер. Уровень 1: CI для API. Уровень 2: experiment tracking + automated train. Уровень 3: full CD4ML с мониторингом drift и auto-retrain с guardrails. Курс ведёт к уровню 2–3 в учебном контуре.
Anti-patterns.
«MLOps = только Kubeflow» — инструмент не заменяет процессы.
«DevOps команда задеплоит pickle» — без контрактов и тестов.
«DS сам в prod kubectl apply» — без audit и rollback.
Как это выглядит на практике
Компания уже делает DevOps для микросервисов заказов. Запускают fraud ML:
Берут из DevOps as-is: Git, Jenkins, Harbor registry, Kubernetes, Argo CD, Prometheus, Loki, Istio.
Добавляют для ML:
ClearML Server — логирование экспериментов DS.
MMS — реестр «какая модель approved для prod».
Argo Workflows — nightly retrain job.
Great Expectations / custom checks — schema данных на входе train pipeline.
Grafana dashboard — inference latency и distribution of scores (drift proxy).
Incident: latency выросла. DevOps playbook: проверить pods, HPA, DB. MLOps дополнение: не вырос ли размер батча? не изменилась ли схема фич от upstream? Champion model version совпадает с MMS?
Retro: один runbook объединяет infra + model checks — меньше ping-pong между командами.
Что сделать после занятия
Составьте таблицу «у нас уже есть из DevOps» / «нужно добавить для ML» для учебного контура.
Выберите один ML-specific риск (drift, skew, wrong sklearn version) и опишите, какой gate его ловит.
Прочитайте MLOps maturity model (Microsoft) и оцените свой проект по уровню 0–3.