지속적 통합, 테스트, 배포

빵동·2022년 10월 12일
0
post-thumbnail

내 코드는 언제 기존 시스템과 합체해야 하나요

CI/CD 단계

  1. 깃 레포지토리에에 코드 변경사항 푸시
  2. 어플리케이션 코드 빌드
  3. 코드 테스트
  4. 테스트 성공후 컨테이너 이미지 빌드
  5. 컨테이너 레지스트리에 이미지 푸시
    ------------------------CI------------------------
  6. 쿠버네티스에 애플리케이션 배포
  7. 배포된 어플리케이션 테스트
  8. 디플로이먼트 롤링 업데이트 실행
    ------------------------CD------------------------

CI/CD 모범사례

  1. CI를 이용한 자동화와 빠른 빌드에 집중한다. 빌드 속도를 최적화 한다면 변경된 코드가 실패했을때 빠른 피드백을 얻을 수 있다.

  2. 파이프라인에서 안정적으로 테스트하는데 초점을 맞춘다. 코드에 문제가 생겼을 때 개발자에게 빠른 피드백을 줄 수 있다. 빠른 피드백 반복은 워크플로의 생산성을 향상시킨다.

  3. CI/CD 도구를 결정했다면, 파이프라인을 코드로 정의할 수 있는지 확인한다. 애플리케이션 코드로 파이프라인 버전 관리를 할 수 있다.

  4. 이미지 최적화가 되었는지 확인한다. 이미지 크기를 줄이고, 운영에서 실행할 때 보안상 취약한 지점이 있다면 없애야한다. 다단계 도커 빌드를 사용하면 애플리케이션 실행에 불필요한 패키지를 제거할 수 있다. (빌드에는 필요하지만 실행에는 필요없는 패키지들)

  5. latest 이미지 태그를 사용하지 말라. BuildID와 깃 커밋을 참조할 수 있는 태그를 사용해야 한다.

  6. CD가 익숙하지 않다면 쿠버네티스 롤릴 업데이트를 사용한다. 사용하기 쉽고 배포가 편리하다. CD에 능숙해지고 자신감이 생기면 블루/그린 배포와 카나리 배포 전략을 사용한다.

  7. CD를 이용해 클라이언트 연결과 데이터베이스 스키마가 어떻게 업그레이드되며 애플리케이션에서 어떻게 처리되는지를 꼭 테스트 한다.

  8. 운영 테스트는 애플리케이션 안정성에 도움을 준다. 훌륭한 모니터링이 가동중인지 확인한다. 소규모로 시작해서 안정성을 확보해나가자.

<출처 : 쿠버네티스 모범사례>

0개의 댓글