CI : 개개인의 branch code가 공통으로 사용되는 master code에 안정적으로 병합되는 것을 자동화하는 것

CD : 마스터코드를 배포서버에 배포하는 것.

그런데 배포 서버도 여러 종류가 있고 (개발/QA/운영), 배포 시점에 코드 테스트를 할 수도 있다.

 

---

내가 개발한 코드가 Github에서 Jenkins로 가고, Jenkis에서 Gradle로 보낸담에

Maven이라는 Library 저장소에서 내 코드에 대한 dependencies를 다운받고, Gradle이 소스 컴파일을 한 다음에

docker가 컨테이너 이미지를 빌드하고 이걸 container registry에 저장함.

그리고 helm chart 저장소에서 ci/cd 툴에다가 helm 차트 탬플릿을 배포하고, CI/CD가 그걸 이용해서 helm을 쿠버네티스에 배포하면

쿠버네티스가 배포하면서 컨테이너 저장소에서 컨테이너 이미지 가져와서 pod을 배포하는거임.

https://youtu.be/cAJ76grsERg

---

배포시 고려 요소?

 

1. 한 helm 차트로 여러 환경에 배포

개발, QA, 운영

2. 한 Helm 차트로 여러 App을 배포

Spring, Kubernetes Resource, Tomcat, Plugin Enabled

3. Helm 차트 배포/관리

Helm Command, Kubernetes Resource

4. 배포 전략

Recreate/Rolling, Canary, Blue/Green

'System Engineering > DevOps' 카테고리의 다른 글

SLURM (리눅스 클러스터 - 작업 스케줄러)  (0) 2022.05.19
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기