1. 개요 (Overview)
본 문서는 Kubernetes(K8s) 환경에서 실행되는 애플리케이션의 배포 및 리소스 관리를 위한 GUI 기반 대시보드, 'Executive Deployment Control Plane (EDCP)'의 개발 요구사항을 정의합니다.
1.1. 문제 정의 (Problem Statement)
현재 K8s 인프라 운영은 GitOps(ArgoCD) 기반의 선언적 모델을 따르고 있어 안정성과 감사 추적이 용이합니다. 하지만 이 방식은 비즈니스 상황(이벤트, 비용 절감, 긴급 장애 대응)에 따라 즉각적인 배포 수량 조절이나 버전 변경을 원하는 경영진/임원(이하 '비즈니스 책임자')의 요구를 민첩하게 반영하기 어렵습니다.
모든 변경을 위해 엔지니어가 직접 Git의 YAML 파일을 수정하고 커밋해야 하므로, 의사결정과 실제 실행 사이에 병목이 발생합니다.
1.2. 목표 (Goals)
- 제어 권한 위임: 비즈니스 책임자에게 엔지니어링 지식(YAML) 없이도 배포 버전과 리소스(Pod) 수량을 직접 제어할 수 있는 직관적인 GUI를 제공합니다.
- 안정성 및 추적성 확보: 모든 GUI 조작은 K8s에 직접 명령을 내리는 것이 아니라, Git 저장소에 형상 관리 커밋을 생성하는 방식으로 동작합니다. ArgoCD는 이 커밋을 감지하여 배포를 수행함으로써 GitOps의 핵심 원칙(Single Source of Truth)을 준수합니다.
- 비용 및 용량 가시성: 현재 리소스 상태를 비즈니스 관점('리소스 준비율 %')으로 시각화하여, 비용(과다 지출)과 안정성(자원 부족) 사이의 균형 잡힌 의사결정을 지원합니다.
2. 대상 고객 (Personas)
- 주요 사용자: 비즈니스 책임자 (Capable Executive)
- 엔지니어링 집행 결과(비용, 안정성, 버전)에 대해 책임을 지는 의사결정권자.
- YAML 작성 능력은 없으나, 서비스 운영에 필요한 Pod 수량과 버전의 의미를 이해함.
- 비용 최적화와 안정적인 서비스 운영 사이의 균형을 맞추는 것이 주된 관심사임.
- 보조 사용자: 플랫폼 엔지니어 (Platform Engineer)
- 비즈니스 책임자가 안전하게 제어할 수 있도록 시스템의 '가드레일'을 설정함.
- '리소스 준비율'의 100% 기준이 되는 시간대별 벤치마크 Pod 수를 설정함.
- GUI를 통해 발생한 모든 변경 사항이 Git에 기록되는지 관리/감독함.
3. 핵심 아키텍처 (Core Architecture)
"GUI-driven GitOps"
- 사용자 조작 (GUI): 비즈니스 책임자가 EDCP GUI에서 'v1.2 버전을 15개 배포'를 설정하고 '최종 반영' 버튼을 클릭합니다.
- Git 커밋 (GUI Backend): EDCP 백엔드 시스템은 이 요청을 받아, ArgoCD가 바라보는 GitOps 저장소의 해당 애플리케이션
values.yaml (또는 Kustomize 파일)을 찾아 image.tag: v1.2 및 replicaCount: 15로 수정하고, 해당 사용자(Executive)의 이름으로 커밋을 생성합니다.
- 배포 (ArgoCD): ArgoCD가 Git의 변경 사항을 감지하고 K8s 클러스터와 동기화(Sync)를 시작합니다.
- 상태 반영 (K8s -> GUI): EDCP는 K8s API를 지속적으로 모니터링하며, Pod의 배포 상태(Running/Pending)를 GUI에 실시간으로 다시 반영합니다.