피드로 돌아가기
I Built a CLI That Writes Its Own Docker Config — Then Taught It to Say No
Dev.toDev.to
DevOps

Manifest 기반 설정 단일화 및 OPA 정책 제어로 Canary 배포 안정성 확보

I Built a CLI That Writes Its Own Docker Config — Then Taught It to Say No

Kelechi Uba2026년 5월 8일14intermediate

Context

Docker, Nginx, ENV 등 파편화된 설정 파일 관리로 인한 정합성 오류 및 휴먼 에러 발생. 배포 후 시스템 가시성 부족으로 인한 비정상 Canary 버전의 무분별한 Promote 리스크 존재.

Technical Solution

  • manifest.yaml을 Single Source of Truth로 정의하여 모든 설정 파일을 자동 생성하는 구조 설계
  • Python의 safe_substitute를 활용해 Nginx 자체 변수와 Manifest 변수를 구분하여 렌더링하는 템플릿 엔진 구현
  • os.replace를 통한 Atomic Write 방식으로 설정 파일 작성 중 발생 가능한 파일 손상 방지
  • Prometheus 포맷의 커스텀 /metrics 엔드포인트를 통한 실시간 런타임 가시성 확보
  • OPA(Open Policy Agent) 사이드카를 도입하여 CLI 외부에서 배포 승인 여부를 결정하는 Policy-as-Code 구조 채택
  • Canary 모드 식별을 위한 X-Mode 헤더 검증 로직을 통한 배포 무결성 확인

- 설정 파일 간 중복 정의를 제거하기 위해 단일 Manifest 기반의 코드 생성 방식 검토 - 인프라 설정 변경 시 Atomic Write를 적용하여 Partial Write로 인한 시스템 장애 방지 - 비즈니스 로직과 분리된 외부 정책 엔진(OPA 등)을 통한 배포 게이트 설계 - 배포 자동화 파이프라인 내에 Health Check 및 메트릭 기반의 자동 Promote 차단 메커니즘 도입

원문 읽기