에필로그 — “한 번의 커밋으로 끝까지 가는 자율형 MLOps 플랫폼”


📌 전체 경로 요약

순서주제
0🔗 FastAPI A/B·Canary·Blue-Green 서빙 베이스
1🔗 핫스왑 고도화 (/reload 보안·DAG 자동화)
2🔗 Slack Alert 통합 (FastAPI·Airflow 공용)
3🔗 모델 롤백 자동화 (등록 실패 대비 복구)
4🔗 FastAPI 로그 안정화 (NFS + PV/PVC + Loguru)
5🔗 Airflow 안정화 & FastAPI HTTPS 보안
6🔗 GitOps 고도화 (Argo CD·MetalLB·ApplicationSet)
7🔗 Argo CD Notifications 자동화 (Slack 연동)
8🔗 CI/CD 운영 자동화 (GitHub Actions·Helm Lint)
9🔗 시크릿 관리 & 키 회전 자동화 (AWS·SealedSecret)
10🔗 검증 (Proof of Automation)

🎯 전체 회고 요약 (0~9단계)

단계핵심 목표주요 개선점
0FastAPI 리뉴얼/predict·/variant·/reload로 A/B·Canary·Blue-Green 공용 라우팅
1핫스왑 보안/자동화토큰 인증 /reload + Ingress 화이트리스트/TLS
2Slack Alert 통합FastAPI·Airflow 공용 알림 함수 + 실패 콜백 Slack 연동
3롤백 자동화등록 실패 시 이전 버전 롤백 + READY 후 자동 /reload
4로그 안정화FastAPI=NFS, Airflow=S3 로그 계층 분리·표준화
5Airflow 안정화·HTTPSSensor/의존성 정리 + cert-manager 기반 TLS
6GitOps 전환MetalLB + SealedSecret + ApplicationSet 배포 구조
7GitOps 모니터링ArgoCD → Slack Sync/Health 상태 알림
8CI/CD 고도화Helm Lint + kubeconform + yamllint PR/머지 파이프라인
9SecretOps 표준화AWS Key Rotation + SealedSecret Re-seal 자동화

🔄 핵심

“Git 커밋 한 번으로 학습→등록→배포→실험→모니터링→복구까지 자율 순환한다.”


⚙️ Helm 기준선 구조 (Before GitOps)

mermaid-10-01.png

Before 특징

  • helm upgrade 기반 수동 배포.
  • Secret 수동 생성 (kubectl create secret ...).
  • Airflow 로그는 S3 업로드, FastAPI는 NFS(PV/PVC) 보존.
  • 인증서: prod은 letsencrypt-prod 표기를 사용했지만, 내부 hosts 기반 self-signed와 실질 동일.

🧩 GitOps 전환 후 (After)

Helm 템플릿 구조를 유지하면서, ArgoCD로 배포·보안·관제를 자동화.

mermaid-10-02.png

After 특징

  • Helm values 패턴 그대로 유지
  • 환경별 Namespace 완전 분리 → dev/prod 동시 운영 안정화
  • Airflow=S3 Remote Logging, FastAPI=NFS(Loguru rotation) 유지
  • cert-manager 내부 CA 기반 TLS 자동화 — hosts 기반 내부 신뢰망으로 외부 노출 없이 폐쇄형 TLS 운영
  • ArgoCD ApplicationSet 으로 dev/prod 자동 배포 + SelfHeal
  • SealedSecret + Rotation/Re-Seal 로 Key 관리 완전 자동화
  • 스토리지(PV/PVC) 는 워크로드와 생명주기 분리: 전용 Application(Prune=false, Replace=false) 로 관리해 데이터 보존과 안전한 드리프트 감시

🔍 Helm → GitOps 변화 요약

영역Helm (Before)GitOps (After)의미
배포 방식수동 helm upgradeArgoCD Auto Sync자동화·SelfHeal
Secret 관리kubectl 수동SealedSecret + Rotation/Re-Seal“Secrets as Code”
로그FastAPI=NFS / Airflow=S3FastAPI=NFS 유지 / Airflow=S3 일원화이원화 표준화
인증서 체계cert-manager + LE 표기 (실질 self-signed)cert-manager 내부 CA 기반 자동 TLS (hosts 기반 내부 신뢰망)외부 CA 없이 자동 갱신, 공격 표면 최소화
CI/CD수동 빌드GitHub Actions + ArgoCD Pipeline“PR→배포→Slack” 일원화
관제개별 알림ArgoCD Notifications + Slack실시간 관제 일원화
네임스페이스단일환경별 분리격리·복구 용이
스토리지(PV/PVC)수동 kubectl apply전용 App + prune=false + replace=false데이터 보존·수명주기 분리

수동 빌드·배포에서 벗어나, PR → CI → ArgoCD → Slack → 실험으로 이어지는 자동화된 “One Commit Flow” 완성.


🔁 One Commit Flow

mermaid-10-03.png


🧠 운영 원칙

  • 보안/시크릿 → AWS Key Rotation + Re-Seal 완전 자동화
  • 배포 안정성 → Sensor READY 이후 Reload, 실패 시 롤백 자동 반영
  • 로그 구조 → Airflow=S3 / FastAPI=NFS, 권한·보관·로테이션 일원화
  • TLS 체계 → cert-manager 내부 CA 자동 갱신, hosts 기반 내부 신뢰망 운영
  • GitOps 복원력 → ApplicationSet + SelfHeal + Prune로 OutOfSync 자동 복구
  • 스토리지 분리 → PV/PVC는 전용 ArgoCD App으로 운영(※ Prune/Replace 비활성으로 데이터 안전성 확보)

✅ 점검 체크리스트

  • Airflow S3 Prefix(dev/prod) 정상 기록
  • FastAPI /app/logs NFS 권한 일치(fsGroup/runAsUser)
  • cert-manager 내부 CA 기반 TLS 정상 발급
  • SealedSecret Rotation + Re-Seal 정상 동작
  • ApplicationSet dev/prod Path 정합성
  • Slack 알림 정상 동작
  • 스토리지 전용 Appprune=false, replace=false 로 설정되어 있음

🏁 회고

이제 모든 빌드·배포·관제는 GitOps 루프 안에서 자동으로 순환합니다.

장애 시 자동 복구되고, 변경은 즉시 반영되며, 운영자는 단지 커밋 한 번으로 플랫폼 전 과정을 제어합니다.

Helm의 구조 위에 GitOps 운영 계층을 쌓아, 자율형 MLOps를 구현했습니다.

🙌 프로젝트 GitHub 저장소