[Other] CI / CD

Byron·2021년 9월 14일
0
post-thumbnail

CI / CD?

CI/CD는 애플리케이션 개발 단계를 자동화하여 보다 짧은 주기로 고객에게 제공하는 방법

새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "인테그레이션 헬(integration hell)")을 해결하기 위한 솔루션

애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공하며, 이러한 구축 사례를 일반적으로 "CI/CD 파이프라인"이라 부름

CI

Continuous Integration(지속적 통합)

개발자를 위한 빌드 및 테스트 자동화 프로세스

CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있음.

CD

Continuous Delivery & Continuous Deployment(지속적 제공과 배포)

배포 자동화

파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 함

  • 지속적 제공
    개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리(예: GitHub 또는 컨테이너 레지스트리)에 자동으로 업로드되는 것을 뜻함
    운영팀은 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있고, 개발팀과 비즈니스팀 간의 가시성과 커뮤니케이션 부족 문제를 최소화 함
    최소한의 노력으로 새로운 코드를 배포하는 것이 목표이다.

  • 지속적인 배포
    개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것
    애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결
    지속적인 배포는 파이프라인의 다음 단계를 자동화함으로써 지속적인 제공이 가진 장점을 활용

Reference

https://www.redhat.com/ko/topics/devops/what-is-ci-cd
https://velog.io/@jch9537/%ED%95%9C-%EC%A4%84-%EC%9A%A9%EC%96%B4-CICD

profile
step by step

0개의 댓글