MLOps Path

4.4.2 · блок 4

Типовые поломки MLOps-контура

Типовые поломки MLOps-контура

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

E2E-контур длинный — больше звеньев, больше способов сломаться. Не все поломки — «pod crashed». Часть — silent: модель отвечает 200 OK, но predictions nonsense из-за skew или wrong artifact. Этот урок — каталог типовых сбоев и где их ловить gates и observability.

Умение быстро локализовать звено (train vs registry vs deploy vs traffic) сокращает MTTR и учит проектировать pipeline устойчивым с самого начала.

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

Классы поломок.

| Класс | Пример | Симптом |

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

| **Data** | Schema change upstream | NaN scores, default branch в model |

| **Train** | OOM GPU, failed job | Нет нового candidate в ClearML |

| **Artifact** | Corrupt pickle, wrong sklearn | CrashLoop on start, import error |

| **Registry/MMS** | Promoted wrong task id | Version mismatch in `/health` |

| **CI/CD** | Broken Jenkinsfile, failed push | Старый image в prod |

| **Deploy** | Helm typo, insufficient memory | Pending pods, OOMKilled |

| **Traffic** | Istio weight 0 on new subset | Canary «не работает» |

| **Skew** | Train features ≠ serving | Metrics OK infra, business KPI down |

Поломка: «модель не грузится».

Поломка: «ClearML task успешен, но в MMS пусто».

Поломка: «Argo CD OutOfSync бесконечно».

Поломка: «Canary 5%, но ошибок не видно».

Поломка: «Train pipeline писал в prod bucket».

Поломка: «Rollback не помог».

Поломка: «Два champion в MMS».

Runbook structure. Для каждого сервиса: symptoms → checks (MMS version, Argo app status, ClearML task) → mitigation → escalation.

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

Инцидент INC-4421: «Churn scores все 0.5 после релиза».

Timeline:

1. T+0 — Alert: business «conversion model flat» (не infra alert!).

2. T+15m — On-call: pods healthy, latency OK. /health shows model v1.3.0.

3. T+30m — Compare MMS champion ClearML task abc118 vs artifact in pod hash — mismatch.

4. Root cause: Jenkins promote used wrong TASK_ID parameter (typo in manual job).

5. Mitigation: MMS revert champion v1.2.2; Argo rollback MR merged; Istio 100% old.

6. Follow-up: promote job only from MMS UI button that passes task_id; delete manual parameter default.

Table «где могли поймать»:

| Stage | Control |

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

| Promote | Require task_id from MMS API only |

| Build | Embed task_id in image label; admission check |

| Deploy | Init container verify artifact hash vs MMS |

| Runtime | Log input feature stats; alert on constant output |

Связь с блоком 5: infra metrics green ≠ model quality OK — нужен drift dashboard.

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

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

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