프로그래밍 지식/Infra

CI/CD 구축 프로젝트

nextcoder 2023. 12. 14. 01:12

형상 관리를 위한 팀이 별도 존재했지만, 우리 팀을 위한 CI/CD를 별도 구축했다.

CI/CD 적용 배경

  • 수동 빌드/배포로 인한 반복적인 수작업 및 Human Error 가능성 존재
  • 빌드 산출물 및 릴리즈 버전 파악의 어려움
  • 정적 검증이 타 팀을 통해 이뤄짐으로써 느린 반영, 검증 대기 문제

CI/CD 목표

  • 빌드에서 배포까지의 과정 자동화
    -> Human Error 최소화, 빠른 피드백 루프
  • Bamboo에서 빌드 history 파악 및 Release 관리, 복구 기능
    -> 소프트웨어 품질 확보
  • CI/CD 파이프라인 내 자체 정적검증(SonarQube), 동적검증(UnitTest) Quality Gate 적용
    -> 소프트웨어 품질 확보

CI/CD Tool

  • CI/CD Tool : Bamboo
  • Version Control Repository Hosting Service Tool : Bitbucket
  • Static Analysis Tool : SonarQube

CI/CD 적용에 따른 변화점

  AS-IS TO-BE
Build 소스코드 검증계 서버로 이동 후 Build 수행 Bamboo Build Plan 실행
Deploy Build Artifacts 이동 및 프로세스 재기동 Bamboo Build 성공 시 자동 Deploy
Release 관리 서버 내 백업 Bamboo Release 정보 확인
정적 검증 시점 배포 후 Merge 전 / 배포 후
Merge 모든 Commit 대상 Sonar Quality-Gate 통과 Commit 대상
정적 검증 도구   SonarQube 추가
동적 검증   Google UnitTest 추가

 

- Pull Request 생성 시 Flow

- Pull Request 생성 시 구성도

- 빌드/배포 시 Flow

- 빌드/배포 시 구성도