스프링 부트 프로젝트를 EC2에 배포하면서
스크립트를 개발자가 직접 실행해야하는 불편을 경험하였습니다.
그래서 CI, CD 환경을 구축하여 개선하고자 합니다.
CI, CD란 무엇인가???
CI( Continuous Integration - 지속적 통합)
- 코드 버전 관리를 하는 VCS 시스템 ( Git, SVN 등)에 PUSH가 되면 자동으로 테스트와 빌드가 수행되어
안정적인 배포 파일을 만드는 과정
CD( Continuous Deployment - 지속적인 배포)
이 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정
여기서 주의할 점은 CI 도구를 도입했다고 해서 CI를 하고 있는 것은 아닙니다.
마틴 파울러의 블로그를 참고해보면 http://bit.ly/2Yv0vFp 를 참고하면
CI에 대해 다음과 같은 4가지 규칙을 이야기 합니다.
- 모든 소스 코드가 살아 있고 (현재 실행되고) 누구든 현재의 소스에 접근할 수 있는 단일 지점을 유지할 것
- 빌드 프로세서를 자동화해서 누구든 소스로부터 시스템을 빌드하는 단일 명령어를 사용할 수 있게 할 것
- 테스팅을 자동화해서 단일 명령어로 언제든지 시스템에 대한 건전한 테스트 수트를 실행할 수 있게 할 것
- 누구나 현재 실행 파일을 얻으면 지금까지 가장 완전한 실행 파일을 얻었다는 확신을 하게 할 것
여기서 특히나 중요한 것은 테스팅 자동화입니다.
지속적으로 통합하기 위해서는 무엇보다 이 프로젝트가 완전한 상태임을 보장하기 위해
테스트 코드가 구현되어 있어야만 합니다.
'프로그래밍 > 스프링 부트와 AWS로 구현하는 웹서비스' 카테고리의 다른 글
9.3 Travis CI와 AWS S3 연동하기 (1) | 2020.11.16 |
---|---|
9.2 Travis CI 연동하기 (0) | 2020.11.14 |
8.5 EC2에서 소셜 로그인 하기 (1) | 2020.11.14 |
8.4 스프링 부트 프로젝트로 RDS 접근하기 (1) | 2020.11.07 |
8.3 외부 Security 파일 등록하기 (0) | 2020.11.07 |