728x90
반응형
1. CI/CD 개념
- 애플리케이션 개발 단계를 자동화하여 보다 짧은 주기로 배포하는 전략 또는 방법
- 코드통합, 테스트, 릴리즈, 배포(Deployment) 등의 애플리케이션 라이프사이클 전체 과정을 자동화하고 이 과정을 모니터링 가능토록 하는 것. (연속된 과정을 "CI/CD 파이프라인" 이라고도 한다.)
- 개발자가 아닌 사람도 쉽게 빌드, 배포를 가능하도록 하는 것 -> 개발자는 개발에만 집중
2. 대상 시점
CI와 CD는 세부적으로 아래와 같이 나눠지며, 개발/배포 단계에 적용되는 전략이 달라진다.
3. CI (Continuous Integration)
- Build & Packaging
- 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 병합되는 것이다.
- Build, Test를 실시하는 프로세스를 말하며 이러한 통합 프로세스를 상시로 실시하는 것이다.
- 다수의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우, 서로 충돌할 수 있는 문제를 해결하기 위함이다.
- 언제든 최신 Build를 고객에게 바로 제공 가능하게 한다.
4. CD (Continuous Delivery) & (Continuous Deployment)
- Deployment
- 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드되는 것이다.
- 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것이다.
- 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포된다.
- 개발팀과 운영팀의 커뮤니테이션 부족 문제를 해결한다.
5. CI / CD 의 필요성
- 모든 분기의 소스 코드를 병합하는 경우, 결과적으로 반복적인 수작업에 많은 시간이 소요된다.
- 병합하는 수작업을 하지 않는다면, 개발자가 애플리케이션에 변경 사항을 적용할 때 다른 개발자가 동시에 적용하는 변경 사항과 충돌할 수 있다.
- 자동화된 테스트에서 기존 코드와 신규 코드 간의 충돌이 발견되면 CI를 통해 이러한 버그를 더욱 빠르게 자주 수정할 수 있다.
- 여러 사람이 작성한 코드가 병합되었을 때 생기는 문제를 미리 감지한다.
- System과 Application을 최대한 최신 상태로 유지할 수 있다.
6. CI / CD 의 종류
DevOps 엔지니어가 사용하는 대표적인 CI/CD 툴로는, Jenkins / Travis CI / Bamboo 등이 있습니다.
출처: https://artist-developer.tistory.com/24 [개발자 김모씨의 성장 일기]
출처:https://hoi5088.medium.com/ci-cd-%EA%B0%9C%EB%85%90-4e6a45dbcfe2
CI/CD 개념
1. CI/CD 배경
hoi5088.medium.com
728x90
반응형
'IT Interview' 카테고리의 다른 글
008. PUT, PATCH 의 차이 (0) | 2021.09.14 |
---|---|
007. MVC , MSA (0) | 2021.09.13 |
005. 싱글톤 패턴 (0) | 2021.09.12 |
004. 디자인패턴 (0) | 2021.09.12 |
002. IoC, AOP , DI, POJO 의 개념 (0) | 2021.09.11 |