Skip to content

AWS EKS 기반 Jenkins + ArgoCD GitOps CI/CD 파이프라인 자동화 (Terraform IaC, Kaniko, Zero-Downtime Deployment)

Notifications You must be signed in to change notification settings

qkrtpdlr/kubernetes-cicd-portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kubernetes-cicd-infrastructure 🚀

Kubernetes Jenkins ArgoCD AWS EKS Spring Boot Terraform

Jenkins + ArgoCD GitOps 기반 완전 자동화된 CI/CD 파이프라인
AWS EKS 환경에서 Spring Boot 애플리케이션 배포 자동화 및 Prometheus/Grafana 모니터링 구축


📊 핵심 성과

지표 Before After 개선율
배포 시간 25분 5분 80% 단축
배포 빈도 주 2-3회 주 5-10회 200% 증가 📈
배포 성공률 85% 100% +15%p
롤백 시간 15분 2분 87% 단축
다운타임 5-7분 0분 100% 제거 🎯
✅ Git Push 한 번으로 전체 배포 프로세스 자동화 (평균 5분)
✅ 무중단 배포 (Zero-Downtime) 달성 - 50+ 배포에서 다운타임 0분
✅ Kaniko Daemon-less 빌드로 보안 강화
✅ GitOps 도입으로 배포 이력 추적 가능
✅ Prometheus/Grafana로 실시간 모니터링 (3개 대시보드)

👉 상세 성과 지표 보기


🏗️ 시스템 아키텍처

CI/CD 파이프라인

Developer (git push)
    ↓
GitHub (Webhook)
    ↓
Jenkins (5-Stage Pipeline)
├── Checkout
├── Build & Test (Gradle)
├── Docker Build (Kaniko)
├── Update Manifest
└── Trigger ArgoCD
    ↓
ArgoCD (GitOps)
    ↓
EKS (Rolling Update)
    ↓
End Users (Zero Downtime)

👉 아키텍처 상세 다이어그램


🛠️ 기술 스택

Infrastructure

  • Cloud: AWS (EKS, RDS, ElastiCache, ALB, CloudFront, Route53)
  • IaC: Terraform 1.5+ (7개 모듈)
  • Container: Kubernetes 1.30

CI/CD

  • CI: Jenkins LTS
  • CD: ArgoCD (GitOps)
  • Build: Kaniko (Daemon-less)
  • Registry: Amazon ECR

Application

  • Backend: Spring Boot 3.2 (Java 17)
  • Database: RDS MySQL (Multi-AZ)
  • Cache: ElastiCache Redis
  • ORM: Spring Data JPA + HikariCP

Monitoring

  • Metrics: Prometheus
  • Visualization: Grafana (3개 대시보드)

🚀 빠른 시작

# 1. Repository 클론
git clone https://github.com/qkrtpdlr/kubernetes-cicd-portfolio.git
cd kubernetes-cicd-portfolio

# 2. Kubernetes 클러스터 접속 (EKS 예시)
aws eks update-kubeconfig --region ap-northeast-2 --name fresh-chicken-eks

# 3. 애플리케이션 배포
kubectl apply -f kubernetes/app/

# 4. 모니터링 스택 배포
kubectl apply -f kubernetes/monitoring/

# 5. 배포 상태 확인
kubectl get pods -n fresh-chicken
kubectl get svc -n fresh-chicken

👉 상세 설치 가이드


🍗 Spring Boot 애플리케이션

Fresh Chicken 주문 플랫폼 - RESTful API 기반 주문 관리 시스템

주요 기능

  • ✅ 주문 생성/조회/취소 API
  • ✅ MySQL 연동 (Spring Data JPA)
  • ✅ Redis 캐싱 (85% Hit Rate)
  • ✅ Health Check + Prometheus 메트릭

성능 지표

  • HTTP Request Rate: 120 req/s
  • P95 Response Time: 150ms
  • Cache Hit Rate: 85%

👉 Spring Boot API 문서


📊 모니터링

3개 Grafana 대시보드

  1. Jenkins CI/CD Dashboard - 빌드 성공률, 평균 빌드 시간
  2. ArgoCD GitOps Dashboard - Sync 상태, Application Health
  3. Application Dashboard - HTTP 요청, JVM 메트릭

👉 모니터링 가이드


💼 본인 담당 업무 (35% 기여)

  1. Jenkins Pipeline 설계 - 5-Stage 파이프라인 구축
  2. ArgoCD GitOps 연동 - 자동 배포 워크플로우
  3. Spring Boot 개발 - RESTful API + MySQL/Redis 연동
  4. ALB Ingress 설정 - 도메인별 라우팅 (5개 서비스)
  5. Kubernetes Manifest - Deployment, Service, HPA
  6. 모니터링 구축 - Prometheus + Grafana 3개 대시보드
  7. 트러블슈팅 - 8개 이슈 해결

👉 트러블슈팅 상세


📚 문서

카테고리 문서
아키텍처 시스템 아키텍처
설치 설치 가이드
애플리케이션 Spring Boot 가이드
운영 모니터링 가이드
트러블슈팅 이슈 해결 과정
학습 학습 성과
계획 향후 개선 사항

📂 주요 구성 요소

  • Spring Boot App - RESTful API (Java 17, MySQL, Redis)
  • Kubernetes Manifests - 애플리케이션 배포 설정 + Prometheus/Grafana 모니터링
  • Jenkins Pipeline - 5-Stage CI/CD 자동화 (Checkout → Build → Docker → Deploy)
  • 상세 문서 - 8개 가이드 (설치/운영/트러블슈팅/학습/개선계획)

🎯 프로젝트 정보

항목 내용
기간 2024.07 ~ 2024.08 (4주)
팀 구성 4명
본인 역할 CI/CD Engineer
본인 기여도 35%

About

AWS EKS 기반 Jenkins + ArgoCD GitOps CI/CD 파이프라인 자동화 (Terraform IaC, Kaniko, Zero-Downtime Deployment)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published