기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CI/CD 리트머스 테스트: 파이프라인이 완전한 CI/CD인가요?
Steven Guggenheimer 및 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명은 새로운 프로젝트 개발 또는 새로운 이니셔티브와 비교하여 지속적인 유지 관리 및 관리에 소요되는 시간, 비용 및 리소스가 조직의 전반적인 경쟁에 영향을 미친다는 데 동의합니다.' 개발 주기가 짧을수록 조직이 야심 찬 시장 출시 목표를 달성하고 적시에 올바른 기회를 잡을 가능성이 커집니다. -
속도 - 일반적으로 완전한 CI/CD 파이프라인은 몇 시간 내에 고객에게 소프트웨어 변경 사항을 릴리스할 수 있습니다. 특히 빠른 장애 격리 및 작은 패치 푸시를 사용하는 경우 CI/CD 파이프라인은 평균 복구 시간(MTTR)을 개선하는 데 도움이 됩니다. 자세한 내용은 Reducing MTTR을 참조하세요.
-
보안 - 완전한 CI/CD 파이프라인은 공격의 가능한 진입점을 줄이고 인적 오류 위험을 줄여 릴리스 프로세스를 보호합니다. 완전 자동화된 CI/CD 파이프라인과 함께 제공되는 보안 이점은 데이터 침해, 서비스 중단 등으로 인한 비용이 많이 드는 결과를 방지하는 데 도움이 됩니다.
-
퇴직 감소 - 개발자는 뛰어난 기능을 만드는 데 더 많은 시간을 소비하고 유지 관리 및 디버깅의 무한 주기에서 낭비되는 시간을 줄일 수 있을 때 더 만족합니다. 조직의 경우 이는 더 오랜 기간 최고의 인재를 확보하고 유지하는 것을 의미합니다.
-
우수한 품질 코드 - 개발자는 코드를 공유 리포지토리에 작은 배치로 릴리스하여 병렬 테스트
를 수행할 수 있습니다(BrowserStack 블로그 게시물). 격리된 상태로 작업하는 대신 팀과 빌드를 자주 공유하고 중요한 버그를 식별하기 위해 협업합니다. 이를 통해 개발자를 지원하므로 잘못된 코드가 프로덕션으로 전환되지 않도록 방지할 수 있습니다. 개발자 동료의 지원은 고품질 릴리스에 기여하고 조직의 성장을 촉진합니다. -
유지 관리 - 유지 관리 및 업데이트는 훌륭한 제품을 만드는 데 매우 중요한 부분입니다. 그러나 트래픽이 가장 높은 시간에는 시스템을 중단하지 마세요. CI/CD 파이프라인을 사용하여 사용률이 낮은 시간에 유지 관리를 수행하여 가동 중지 시간과 성능 영향을 최소화할 수 있습니다.