📋 프로젝트 개요

📝 제출 산출물 목록

1. 기획서 (기존 프로젝트 대비 추가 내용만)

📌 작성 목적

기존 백엔드 프로젝트에서 DevOps 도입으로 인한 변경사항과 추가 기능을 명시

- 포함 내용

1. DevOps 도입 근거 및 목표
- GitHub Webhook을 활용하여 코드 푸시 시 자동으로 Jenkins 파이프라인 실행
- Docker 기반 컨테이너화 및 ECR 저장소 업로드를 통한 효율적인 배포
- ArgoCD 기반 GitOps 방식으로 무중단 배포 체계 구축

2. DevOps 도구 선택 및 적용 계획
- Jenkins: 유연한 파이프라인 정의 및 다양한 플러그인 생태계 활용 목적
- Docker: 마이크로서비스별 이미지 표준화
- AWS ECR: 안정적인 이미지 저장소 제공
- Kubernetes (EKS): 확장성과 고가용성을 위한 컨테이너 오케스트레이션
- ArgoCD: GitOps 방식의 선언적 배포 및 무중단 업데이트 적용

3. 배포 및 운영 전략
- Helm Chart를 기반으로 서비스별 Deployment/Service/Ingress 구성
- ArgoCD Sync를 통한 무중단 배포 및 상태 관리
- 서비스 상태 및 배포 결과는 ArgoCD UI에서 실시간 확인 가능

4. 기대 효과 및 성과 지표
- 푸시부터 배포까지의 시간 단축 (배포 자동화)
- 배포 실패 시 ArgoCD를 통한 손쉬운 롤백
- 운영 환경과 개발 환경의 상태 일치 보장 (GitOps)

2. 요구사항 정의서 (기존 프로젝트 대비 추가 내용만)


REQ-F-001: GitHub Webhook 기반 자동 트리거
- 설명: GitHub의 push 이벤트 발생 시 Jenkins가 자동 빌드 수행
- 우선순위: High
- 관련 서비스: 전체 CI/CD 파이프라인

REQ-F-002: ArgoCD를 통한 무중단 배포
- 설명: Helm Chart로 작성된 Kubernetes 매니페스트를 ArgoCD가 자동 배포
- 우선순위: High
- 관련 서비스: ArgoCD, EKS, 각 마이크로서비스

REQ-NF-001: 높은 서비스 가용성
- 설명: 무중단 배포를 통한 99.9% 이상 가용성 확보
- 측정 기준: 월간 다운타임 45분 미만
- 검증 방법: 로그 및 모니터링 툴 검증

REQ-NF-002: CI/CD 자동화
- 설명: 빌드/배포 자동화로 수작업 제거
- 측정 기준: 배포 소요 시간 5분 이내
- 검증 방법: Jenkins/ArgoCD 로그 분석

3. 소스코드


4. MSA 아키텍처 설계도

포함 내용