본문으로 건너뛰기

ML Lifecycle M3 사이클 — 6 PR 통합 가이드

개요

2026-05-28 단일 세션에서 ML 라이프사이클 4 Gap (#1081/#1082/#1083/#1084) + MLOps Governance Theme G 3 GAP (#1213/#1214/#1215) 의 M3 백엔드 페이즈 를 일괄 구현했다. 5 M3 PR + 1 i18n 회귀 fix = 총 6 PR 머지.

머지된 PR

PR영역변경 요약
#1281Gap 3 M3 — Lineage emitpipelines/gend_pipelines/ml/lineage_emit.py 신규. batch_predict_asset 가 Iceberg Gold 적재 후 POST /api/v1/lineage/edges 자동 호출 (fire-and-forget).
#1282G-2 M3 — Predict PII maskingservices/serving/inference_proxy.pypredict() 가 request/response body 를 TextPIIMasker 로 재귀 마스킹. fail-open + audit metadata 에 mask_count.
#1283Gap 4 M3 — Bytewax KEDAinfra/keda/scaledobjects/bytewax-anomaly-scaledobject.yaml 신규. Kafka consumer lag 100+ → scale up (max 4 pods), CPU 70%+ 트리거.
#1284G-1 M3 — Drift Slack 알림services/drift_service.pycompute_and_persist()drift_status='breach'NotificationService.dispatch(event_type="drift.breach") 자동 호출.
#1285G-3 M3 — ML Plugin /trainservices/ml_plugins/dagster_trigger.py 신규. POST /api/v1/ml-plugins/{id}/train → Dagster GraphQL launchRun (ml_plugin_train_repo/ml_plugin_train_job selector). 3-layer allowlist 보안 가드.
#1286i18n — UI 회귀 fixui/src/locales/en.json + ko.jsonmlPlugins.* + drift.* + modelGrants.* 키 220 lines 추가. vitest 78 files / 560 tests PASS.

검증

CI 통과 매트릭스

PRTest APITest UITest PipelinesLintBuild
#1281
#1282
#1283
#1284
#1285
#1286

AKS prod 배포

  • gend-api: 0.2.20260528-426f010 (= main HEAD 426f010e)
  • gend-streaming: 0.1.20260528-77db49ee (= #1280 머지 tag)
  • Build & Deploy run 26578003906 SUCCESS

Endpoint smoke test (인증 필요 = 라우트 정상 등록)

$ curl -o /dev/null -w "%{http_code}\n" https://gend.genon.ai/api/v1/lineage/tables
401
$ curl -o /dev/null -w "%{http_code}\n" https://gend.genon.ai/api/v1/ml-plugins
401
$ curl -o /dev/null -w "%{http_code}\n" https://gend.genon.ai/api/v1/model-grants
401
$ curl -o /dev/null -w "%{http_code}\n" https://gend.genon.ai/api/v1/models/credit_risk/drift
401

후속 작업 (다음 사이클)

  • AKS prod KEDA 설치: 현재 prod 클러스터에 KEDA operator 미설치. ScaledObject YAML 적용 시 no matches for kind "ScaledObject" in version "keda.sh/v1alpha1". 별도 epic 으로 KEDA Helm 설치 + ScaledObject apply 필요.
  • 실 환경 E2E:
    • Dagster ml_batch_demo_credit_risk_job 수동 trigger → Iceberg Gold 적재 → ArangoDB data_lineage collection 에 mlflow.Production.credit_riskiceberg.gold.predictions_demo_credit_risk edge 자동 생성 확인.
    • POST /api/v1/models/credit_risk/drift/compute 수동 호출 → breach 발생 시 Slack 알림 발송 확인.
    • POST /api/v1/ml-plugins/{id}/train 호출 → Dagster run 시작 확인.
  • UI 스크린샷: /admin/drift, /admin/model-grants, /admin/ml-plugins Playwright 캡처 후 docs-site/static/img/m3-cycle/ 추가.
  • 추가 plugin/grant 시드 데이터: H2O AutoML provider, AutoKeras provider — separate PR.

관련

  • 부모 Epic #1085 — ML 라이프사이클 4 갭 통합
  • 부모 Epic #1154 — Theme G MLOps Governance
  • 회귀 가드: apps/api/tests/test_ml_plugin_train_trigger.py, test_inference_proxy_pii_masking.py, test_drift_breach_notification.py, pipelines/tests/test_ml_batch_lineage_emit.py