프로그래밍 지식/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
- 빌드/배포 시 구성도