CI/CD 파이프라인을 구성할 때 고려해야 하는 요소
- 관리하는 영역을 생각해야함.
- 따로 배포하던 것을 Jenkins을 사용하면 한번에 관리가 가능
- 기능 상으로는 좋으나 devops, 개발자가 각각 담당하는 역할에 따라 나눌 수 있음
- 보통 개발자가 컨테이너를 건드리거나 devops가 소스를 건드리는 일은 많이 없음
- 운영 정책을 생각해야함
- 하나의 CD로 여러 개의 인프라를 관리할 수도 있고
- 여러 개의 CD로 각각 하나의 인프라를 관리할 수도 있음
- 이중 관리가 필요하지만 장애시 영향도는 없음 (개발 서버에서 장애가 나도 운영 서버에서는 타격 없음)
- 관리 편의와 장애 영향도에 따라 결정 해야함
- 제품선정 시 생각 해야하는 것
- 데이터 보안
- 공공기관이나 은행은 오프라인에 모든 것을 보관해야 함.
- 레퍼런스
- 유지 보수 업체
- docker 대체
- docker는 무겁고 Daemon이 필요하다는 단점이 있음.
- 속도가 느린 것은 아님
- Daemon이 죽으면 모든 docker container가 죽음
- 그래서 buildah, podman, skopeo를 사용하기도 함
배포 전략을 세울 때 고려 해야하는 요소
- 각각의 선택에 따라 장단점이 존재함
- Blue/Green 배포의 경우 운영에서만 테스트 가능할 때 많이 사용 (은행, 공공 기관 등)
- 서비스를 V2로 옮기고 QA 담당자가 먼저 테스트를 해본 후 배포 반영
단계 별로 구축해보는 배포 파이프 라인
- Jenkins 파이프라인을 사용하면 Script로 Jenkins을 구성할 수 있다는 장점이 있음
- Kustomize, Helm을 사용하면 yaml 파일을 동적으로 구성할 수 있다는 장점이 있음
- ArgoCD를 사용하면 형상 관리가 가능해지고 Blue/Green 배포, Canary 배포를 편하게 할 수 있다는 장점이 있음
출처: https://inf.run/7dm3q