CI/CD 리무스 테스트: 파이프라인이 CI/CD에 완전히 속합니까? - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CI/CD 리무스 테스트: 파이프라인이 CI/CD에 완전히 속합니까?

스티븐 구겐하이머 및 Ananya Koduri, Amazon Web Services(AWS)

2023년 8월(문서 기록)

파이프라인이 자동화되어 있습니까? 간단한 질문이지만 많은 조직이 너무 간단하게 답변에 접근합니다. 답은 또는 아니오보다 훨씬 더 복잡합니다.

기술 혁신은 지속적으로 발생하고 있으며, 조직이 이를 따라잡기 어려운 경우가 있습니다. 이 새로운 사물이 유행하는 것일까요, 아니면 다음으로 큰 것일까요? 현재 관행을 점검해야 하나요, 아니면 기다려야 하나요? 종종 무언가가 실제로 다음 큰 사물이라는 것이 명확해지면 캐치업을 할 수 있습니다. 지속적 통합 및 지속적 전송(CI/CD)이 유지되지만 항상 그런 것은 아니었습니다. 많은 사람들이 확신하는 데 오랜 시간이 걸렸지만 여전히 더 설득력이 필요한 사람들도 있습니다.

CI/CD는 소프트웨어 릴리스 프로세스의 소스, 빌드, 테스트, 스테이징 및 프로덕션 단계를 자동화하는 프로세스이며 일반적으로 파이프라인이라고 합니다. 오늘날 CI/CD 자동화의 비용 절감과 속도는 대부분의 조직이 가치 있다고 확신했습니다. 그러나이 새로운 접근 방식으로 전환하는 것은 쉬운 작업이 아닙니다. 직원이 적절한 교육을 받았는지 확인하고 일부 리소스를 업그레이드한 다음 테스트, 테스트, 테스트해야 합니다. 할 일이 많습니다. 대부분의 경우 조직이 적응하는 데 도움이 되도록 이러한 변경을 점진적으로 수행하려고 합니다.

이 문서의 목적은 완전한 CI/CD 프로세스를 갖는 것이 무엇을 의미하는지 정의하는 것입니다. 자체 프로세스를 평가하는 도구를 제공하고 아직 없는 프로세스에 대한 경로를 제시합니다. 이 경로는 야간 변환이 거의 아닙니다. 이러한 프로세스는 복잡하며 현재 직원 스킬 세트 및 현재 인프라 수요를 비롯한 여러 요인에 따라 달라집니다. 우선순위를 정하고 작은 증분 변경을 수행하는 것이 좋습니다.

목표

다음은이 가이드의 권장 사항을 구현할 때 얻을 수 있는 잠재적 이점입니다.

  • 효율성 - 완전한 CI/CD 배포 프로세스는 디버깅, 수동 프로세스 수행 및 유지 관리에 소요되는 복잡성, 워크로드 및 수 많은 시간을 줄일 수 있습니다. 자세한 내용은 지속적 전달의 이점을 참조하십시오. TechAhead 블로그 게시물에 따르면 CI/CD 프로세스를 구현하면 시간, 노력 및 리소스가 20% 절감될 것으로 예상됩니다.

  • 비용 절감 - Forbes Insight 보고서에 따르면 "4명의 경영진 중 3명은 새로운 프로젝트 개발 또는 새로운 이니셔티브와 비교하여 지속적인 유지 관리 및 관리에 소비되는 시간, 비용 및 리소스가 조직의 전반적인 경쟁에 영향을 미친다는 데 동의합니다.” 개발 주기가 짧을수록 조직이 야심 찬 time-to-market 달성하고 적시에 적절한 기회를 잡을 수 있는 가능성이 높아집니다.

  • 속도 - 일반적으로 전체 CI/CD 파이프라인은 몇 시간 내에 고객에게 소프트웨어 변경 사항을 릴리스할 수 있습니다. 특히 빠른 장애 격리 및 작은 패치 푸시가 있는 경우 CI/CD 파이프라인은 평균 복구 시간(MTTR)을 개선하는 데 도움이 됩니다. 자세한 내용은 MTTR 감소를 참조하세요.

  • 보안 - 전체 CI/CD 파이프라인은 공격의 가능한 진입점을 줄이고 인적 오류 위험을 줄여 릴리스 프로세스를 보호합니다. 완전 자동화된 CI/CD 파이프라인과 함께 제공되는 보안 이점은 데이터 침해, 서비스 중단 등으로 인해 발생하는 비용이 많이 드는 결과를 방지하는 데 도움이 됩니다.

  • 감소된 감소 - 개발자는 유지 관리 및 디버깅의 무한 주기에서 뛰어난 기능을 만드는 데 더 많은 시간을 소비하고 미러링 시간을 줄일 수 있을 때 더 만족합니다. 조직의 경우, 이는 더 오랜 기간 동안 최고의 인재를 확보하고 유지하는 것을 의미합니다.

  • 우수한 품질 코드 - 개발자는 코드를 공유 리포지토리에 소량 릴리스하여 병렬 테스트를 수행할 수 있습니다(BrowserStack 블로그 게시물). 고립된 상태로 작업하는 대신 팀과 빌드를 자주 공유하고 중요한 버그를 식별하기 위해 협업합니다. 이를 통해 개발자를 지원하므로 잘못된 코드가 프로덕션으로 전환되지 않도록 방지할 수 있습니다. 개발자 동료의 지원은 고품질 릴리스에 기여하고 조직 성장을 촉진합니다.

  • 유지 관리 - 유지 관리 및 업데이트는 훌륭한 제품을 만드는 데 매우 중요한 부분입니다. 하지만 트래픽이 가장 많은 시간에는 시스템을 중단하지 마세요. CI/CD 파이프라인을 사용하여 가동 중지 시간과 성능 영향을 최소화하는 사용량이 적은 시간에 유지 관리를 수행할 수 있습니다.