반응형
CI/CD
- 웹/앱 애플리케이션을 개발하는 단계에서 지속적으로 통합, 배포
- 여러 개발자가 동시에 애플리케이션 개발 혹은 그에 따른 작업에 대한 코드들을 병합해 주고 이용하는 사용자들에게 배포까지 지속적으로(자동화) 해주는 것을 뜻
- 일일이 작업하고 나서 수동으로 하는 통합 지옥에서 벗어날 수 있다
- CI (Continuous Intergration ) : 지속적인 통합
- 새로운 코드의 내용이나 수정된 코드 변경사항을 정기적으로 빌드 및 테스트 하여 공유 레포지토리 저장소에 통합되는 것을 뜻
- 반복적인 코드 병합하는 번거로움을 해결
- 버그 및 충돌을 위해 단위테스트 혹은 통합 테스트까지 실행해서 변경사항을 제대로 적용했는지 확인 가능
- 추가하거나 변경한 코드가 기존 코드와 병합
- 병합된 코드에 버그 및 충돌이 없는지 테스트 및 빌드 검증
- 문제가 발생 시 수정하고 다시 병합 후 테스트, 검증 하고 문제없으면 배포 진행
- CD (Continuous Deployment ) : 지속적인 배포
- 개발자가 어플리케이션에 변경사항을 작성한 후 몇 분 이내에 클라우드 애플리케이션을 자동으로 실행할 수 있는 것을 의미
- 버그 및 충돌없이 자동화된 테스트 무사통과
- 즉, 사용자의 지속적인 피드백을 반영하여 통합이 가능
- CI를 거친 코드에 대해서 신뢰할 수 있기에 바로 배포가 가능
- 성공적으로 병합된 내역을 저장소에만 저장하는 것이 아니라 사용자가 사용할 수 있는 배포환경까지 릴리즈(Release) 하는 것을 의미
- 사용자의 Production까지 Release
- 개발자가 어플리케이션에 변경사항을 작성한 후 몇 분 이내에 클라우드 애플리케이션을 자동으로 실행할 수 있는 것을 의미
CI/CD 방법 및 Tool
- 개발, 배포, 테스트를 자동화를 지원
- 대표적인 오픈소스 Tool
- Jenkins
- Travis
여태 조그마한 프로젝트들을 진행함에 있어서
rebase와 PR을 통한 코드 형상관리하며 안정화된 코드들로
수동적으로 혹은 정해진 시간대에 배포했던 환경을 CI/CD를 적용함으로써
관리의 영역을 늘리고자 한다~!!!
이번에는 이론정도만 적어두고 Jenkins라는 것으로 CI/CD를 공부하고 적용하는 과정을 녹여내보려고 한다
출처 )
https://www.redhat.com/ko/topics/devops/what-is-ci-cd
https://tecoble.techcourse.co.kr/post/2021-08-14-ci-cd/
https://artist-developer.tistory.com/24
https://unity.com/kr/solutions/what-is-ci-cd
'DevOps' 카테고리의 다른 글
(DevOps) AWS에서 S3+CodeDeploy로 EC2 자동배포 (2) (0) | 2023.12.25 |
---|---|
(DevOps) AWS에서 S3+CodeDeploy로 EC2 자동배포 (1) (0) | 2023.12.25 |
(DevOps) Jenkins와 gitHub 연동하기 (0) | 2023.08.12 |
(DevOps) Jenkins 설치 및 환경설정(Local) (0) | 2023.08.12 |