WIL_0626

mileage·2022년 6월 26일
0

CI/CD

  • CI(Continuous Integration), 지속적인 통합
    - 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것
    - CI가 필요한 환경

    • 다수의 개발자가 형상관리 툴을 공유하여 사용하는 환경 -> 자동화된 빌드 & 테스트가 원천 소스코드의 충돌 등을 방어한다
    • MSA(Micro Service Architecture) 환경 -> 작은 기능별로 서비스를 잘게 쪼개어 개발하는 형태 -> 기능 충돌 방지

    CI의 핵심 목표는, 버그를 신속하게 찾아 해결하고, 소프트웨어의 품질을 개선하고, 새로운 업데이트의 검증 및 리리즈의 시간을 단축시키는 것에 있다.

  • CD(Continuous Delivery/ Continuous Deployment), 지속적인 서비스 제공/ 지속적인 배포
    - Continuous Delivery -> 공유 레포지토리로 자동으로 릴리즈 하는 것
    - Continuous Deployment -> Production 레벨까지 자동으로 deploy 하는 것

    CD는 개발자의 변경 사항이 레포지토리를 넘어, 고객의 프로덕션 환경까지 릴리즈 되는 것을 의미한다.

CI/CD를 하는 이유

  • 탁월한 코드 품질 보장
    CI/CD 파이프라인은 테스트 자동화를 제공하기 때문에 개발자들은 거의 실시간으로 코드 문제를 파악할 수 있다. 팀은 버그가 있는 코드로 인해 시간이나 자원을 낭비하지 않아도 되고, 개발자는 다른 프로젝트를 구동할 때 끝없는 수정 요청에 시달리지 않아도 된다.
  • 릴리즈 속도를 단축하여 더 신속하게 제공
    코드를 빨리 릴리즈 하고, 더 많은 새로운 코드를 개발할 수 있게 됨에 따라 끝없이 릴리즈가 가능하다.
  • 자동화로 비용 절감
    CI/CD는 핸드오프(작업자 변경: 개발 협업 중 어떤 사람이 다른 동료에게 다양한 업무 관련 정보 또는 책임을 이전하는 것. 예를 들어, 고객이 영업 사원에게 니즈를 정확히 언급한다. 영업 사원은 이를 개발자에게, 개발자는 테스터에게, 테스터는 운영팀에게 알리게 되는 데 각 단계마다 원래의 정보가 손실된다.), 소스 코드 관리, 버전제어 시스템 및 배포 메커니즘은 물론, 많은 테스트 기능을 자동화한다.
  • 오류 격리
    CI/CD 파이프라인은 코드 오류를 쉽게 식별하고 이를 격리함으로써 생산성을 크게 향상시킬 수 있게 되었다.
  • 간소화 된 롤백
    CI/CD 파이프라인은 오류를 신속하게 해결하고, 훨씬 더 빠르게 복구 할 수 있다.
  • 지속적인 피드백
    비즈니스 이해 관계자들을 비롯해 팀의 모든 사람들이 무슨 일이 일어나고, 어디에서 일어나는지, 그리고 무엇이 잘못되었는지 확인할 수 있는 방법을 제공한다.
  • 최적의 투명성과 책임성
    지속적인 피드백을 통해 전체 소프트웨어 개발 프로세스를 비즈니스 측면에서 완전히 투명하게 처리한다.
  • MTTR(Mean Time to Resolution, 평균 해결 시간) 개선
    CI/CD 파이프라인이 제공하는 가시성 덕분에 문제를 신속하게 파악하고, 빠르게 해결 할 수 있다.
  • Metrics(지표) 데이터 모니터링
    CI/CD 파이프라인은 다양한 지표에 대한 지속적인 피드백을 제공하여 이상적인 환경을 실현할 수 있다.
  • 백로그의 중요하지 않은 결함 감소
    CI/CD는 시간과 비용을 절감시켜준다. 이에 개발자는 시간이 부족하여 그동안 수정할 수 없었던 오래된 코드들을 더 명확하고 효율적으로 만드는 작업이 가능하게 됐다.

추가 참고자료:
https://engineering.linecorp.com/ko/blog/build-a-continuous-cicd-environment-based-on-data/

0개의 댓글