# Обзор архитектуры MLOps

← [Раздел](README.md) · [Главная](../README.md)

## Цель

Описать **типовую reference-архитектуру** MLOps: от ingestion до monitoring.

## Предварительно

- [01 — Основы](../01-osnovy/README.md)

## Время

**3–4 часа**

---

## Слои reference-архитектуры

| Слой | Функция | Примеры |
|------|---------|---------|
| **Data** | Хранение, качество, версии | S3, BigQuery, Delta Lake |
| **Feature** | Признаки для train и serve | Feast, offline/online store |
| **Training** | Обучение, эксперименты | MLflow, Kubeflow, SageMaker |
| **Registry** | Версии моделей, approval | MLflow Model Registry |
| **Serving** | Inference online/batch | KServe, BentoML, Lambda |
| **Observability** | Метрики, логи, drift | Prometheus, Evidently |

```mermaid
flowchart TB
  subgraph DataLayer[Data Layer]
    Lake[Data Lake]
    DQ[Data Quality]
  end
  subgraph MLLayer[ML Layer]
    FE[Features]
    TR[Training]
    REG[Registry]
  end
  subgraph OpsLayer[Ops Layer]
    SRV[Serving]
    OBS[Monitoring]
  end
  Lake --> FE --> TR --> REG --> SRV --> OBS
  OBS --> TR
```

## Batch vs Real-time

| Паттерн | Latency | Пример |
|---------|---------|--------|
| **Batch** | Минуты–часы | Ночной скоринг всех клиентов |
| **Online** | Мс–сек | Рекомендация на странице |
| **Streaming** | Секунды | Fraud detection на потоке событий |

Архитектура serving и feature store **различается** для каждого паттерна (см. [09 — Шаблоны](../09-shablony/README.md)).

## Environments

Типичное разделение:
- **dev** — свободные эксперименты, локальный или shared MLflow
- **staging** — модель прошла offline-тесты, зеркало prod данных (обезличенных)
- **production** — только модели из Registry в стадии Production, строгий change management

## Безопасность и сеть

- Training кластер часто в **private VPC**
- Serving endpoint — за **API Gateway** + auth (OAuth, API keys через secret manager)
- Артефакты в **encrypted** object storage
- **Никогда** не коммитьте ключи в Git — используйте `YOUR_AWS_KEY` в учебных примерах

## Масштабирование

| Размер команды | Архитектура |
|----------------|-------------|
| 1–3 DS | Monorepo + MLflow local/server |
| 5–20 | Shared MLflow, CI, один K8s namespace для ML |
| 50+ | Platform team, multi-tenant, feature store, cost allocation |

## Anti-patterns

- **Notebook-only production** — код не тестируется и не версионируется
- **Training-serving skew** — разный препроцессинг в train и inference
- **Shadow IT storage** — модели на личных дисках

---

## Самопроверка

1. Перечислите пять слоёв MLOps-архитектуры.
2. Чем batch scoring отличается от online inference?
3. Зачем нужен staging environment?

---

## Дальше

→ [Обзор архитектуры MLflow](obzor-arhitektury-mlflow.md)
