배포 방법 및 프로세스
이 문서는 GitHub Actions를 사용한 CI/CD 파이프라인을 통해 마이크로 서비스를 배포하는 과정을 설명합니다.
배포 방법
모든 마이크로 서비스 코드는 develop 브랜치를 통해 GitHub 저장소에서 통합 관리됩니다. 배포를 위해 아래의 단계를 따릅니다:
- 태그 생성: 서비스와 배포 버전을 기준으로 태그를 생성합니다.
git tag develop-[서비스명]-[배포 버전]- 태그 푸시: 생성된 태그를 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 차트를 감지하고 동기화합니다.
- 롤링 업데이트: 서비스는 새로운 버전으로 롤링 업데이트됩니다.