Information
CI & CD Process

배포 방법 및 프로세스

이 문서는 GitHub Actions를 사용한 CI/CD 파이프라인을 통해 마이크로 서비스를 배포하는 과정을 설명합니다.

배포 방법

모든 마이크로 서비스 코드는 develop 브랜치를 통해 GitHub 저장소에서 통합 관리됩니다. 배포를 위해 아래의 단계를 따릅니다:

  1. 태그 생성: 서비스와 배포 버전을 기준으로 태그를 생성합니다.
git tag develop-[서비스명]-[배포 버전]
  1. 태그 푸시: 생성된 태그를 GitHub 저장소에 푸시합니다.
git push origin develop-[서비스명]-[배포 버전]

배포 프로세스

1. 코드 통합 및 준비

  • 통합 관리: 모든 마이크로 서비스 코드는 develop 브랜치를 통해 통합 관리됩니다.
  • 버전 명시: 개발자는 git tag 명령어로 배포 버전을 명시합니다. 예: git tag develop-user-v1.0.0.
  • 코드 푸시: 태깅된 코드는 git push origin [태그명]으로 저장소에 푸시됩니다.

2. CI/CD 파이프라인 실행

  • 자동 트리거: GitHub Actions는 태그 푸시를 감지하고 자동으로 배포 스크립트를 실행합니다.
  • 배포 설정: .github 디렉터리에는 테스트 및 빌드와 실제 서버 배포를 위한 두 가지 배포 설정이 있습니다.

3. 빌드 과정

  • Docker 이미지 빌드: GitHub Action을 통해 자동으로 Docker 이미지가 빌드됩니다.
  • 이미지 업로드: 빌드된 이미지는 Azure의 Container Registry(ACR)에 업로드됩니다.

4. 배포 과정

  • 서비스 업데이트: Helm 차트를 사용하여 최신 Docker 이미지를 기반으로 서비스를 업데이트합니다.
  • 차트 업로드: 업데이트된 Helm 차트는 Azure의 ACR에 업로드됩니다.

5. 동기화 및 롤링 업데이트

  • ArgoCD 동기화: ArgoCD는 ACR에 업로드된 새 Helm 차트를 감지하고 동기화합니다.
  • 롤링 업데이트: 서비스는 새로운 버전으로 롤링 업데이트됩니다.