개발자

"지속적 개선의 촉매" CI/CD 파이프라인의 효과를 높이는 6가지 방법

Isaac Sacolick | InfoWorld 2024.06.05
코드를 패키징하고 컴파일해서 애플리케이션 제공 환경으로 푸시하는 과정을 자동화하는 기본적인 지속적 통합 및 지속적 배포(CI/CD) 파이프라인을 구성하는 것은 데브섹옵스의 기본으로 통한다. 개발 팀은 프로덕션에 이르는 경로를 자동화함으로써 오류를 줄이고 개발 빈도를 높이고 프로덕션 문제를 더 신속하게 해결하고 팀 문화를 개선할 수 있다.
 
기본적인 CI/CD 파이프라인을 만드는 것은 지속적 개선 문화를 이끄는 촉매가 될 수 있다. 예를 들어 많은 팀은 개발자 생산성에 영향을 미치는 결함 게시, 빌드 손상을 방지하기 위해 테스트 자동화, 오류 검사, 알림을 파이프라인에 추가한다.
 
옥토퍼스 디플로이(Octopus Deploy)의 창업자 겸 CEO인 폴 스토벨은 "일부 기업은 게임기나 탁구대 등을 설치해야 개발자의 만족도가 높아진다고 생각하지만, 사실 개발자는 자신의 변경 사항이 커밋에서 고객에 이르기까지 원활하게 흐를 때 가장 큰 만족감을 얻는다. 의욕이 넘치는 개발자에게 CI/CD의 유무는 좌절과 즐거움을 가르는 요소"라고 말했다.
 
ⓒ Getty Images Bank

CI/CD 파이프라인과 그 기반 플랫폼을 개발하는 과정은 성숙한 데브섹옵스 분야지만 개선의 여지는 있다. 현재 CI/CD 파이프라인을 더 개선하고 유의미한 비즈니스 효과를 얻기 위한 6가지 방법을 소개한다.
 

생성형 AI로 지속적 테스트 증대

2023-24 전 세계 품질 보고서 설문조사 응답자의 80%는 자동화된 테스트의 25%~50%가 제공 파이프라인에 통합됐다고 답했다. 같은 맥락에서 응답자의 39%는 품질 엔지니어링 담당자가 갖춰야 할 가장 핵심적인 기술로 CI/CD를 꼽았다. 코딩 기술에 이어 2위다. 이는 지속적 테스트의 개선에 대한 의지는 있으나 많은 기업에 여전히 "품질 부채", 즉 CI/CD 파이프라인에서 자동화되지 않은 테스트가 밀려 있음을 시사한다.
 
코파도(Copado)의 에반젤리즘 SVP인 데이비드 브룩스는 "테스트 자동화가 잘 도입됐다고 생각할 수 있지만 사실은 많은 기업이 여전히 수동 테스트에 의존하며, 자동화를 도입한 기업도 기능의 3분의 1 정도만 자동화했을 뿐이다. 현실에서는 유지보수 부담이 너무 큰 것으로 드러났다”라고 말했다.
 
브룩스가 언급한 유지보수 작업에는 코드 변경 시 자동화 업데이트, 테스트 성능 개선, 테스트 데이터 확대 등의 작업이 포함된다. 합성 데이터는 더 포괄적인 테스트 데이터를 생성하기 위한 잠재적 해결책으로 꼽히며, 생성형 AI는 QA에서 자동화된 테스트의 수를 늘리고 유지보수를 간소화하는 데 있어 게임 체인저가 될 가능성이 있다.
 
마블(Mabl)의 제품 책임자 게보르그 호세피안은 "궁극적으로 AI는 자동화된 테스트를 팀 속도를 저하시키는 불안정한 게이트키퍼가 아닌 CI/CD 파이프라인의 안정적인 요소로 만들어줄 것이다. 대부분의 개발 팀은 생성형 AI를 테스트 케이스 생성 용도로 생각하지만 새로운 테스트가 지속적으로 실패하면 CI/CD 파이프라인이 멈추게 된다. 생성형 AI를 사용해서 제품 변경에 따라 테스트를 자동으로 업데이트하는 것이 CI/CD 기능을 발전시키는 더 효과적인 방법"이라고 말했다.
 
지속적 테스트를 개선하는 또 다른 방법은 성능, 스트레스, 확장성 테스트를 CI/CD 파이프라인에 내장하는 것이다. 개틀링(Gatling), 로드닌자(LoadNinja), 로드러너(LoadRunner), 카탈론(Katalon)과 같은 성능 테스트 툴은 주요 CI/CD 플랫폼과 통합된다.
 

지속적 배포를 목표로 설정

지속적 테스트는 지속적 배포(데브섹옵스 팀이 CI/CD를 프로덕션 환경 배포까지 확장하는 프로세스)를 위한 요구사항이다. 지속적 배포 준비를 위한 필자의 체크리스트에는 개발 팀의 기능 플래그 사용, 카나리 릴리스 전략 수립, IT 운영에서 AI옵스 플랫폼 사용하기가 포함된다.
 
빈번한 변경 사항을 배포하고 애플리케이션 프로덕션 문제를 신속하게 해결하는 것이 필수적인 기업이라면 지속적 배포가 비즈니스에 미치는 영향이 중요할 수 있다. 많은 SaaS 비즈니스, 고객 대면 애플리케이션을 개발하는 기업, 기타 미션 크리티컬 직원 애플리케이션을 개발하는 기업은 DORA 지표를 사용해서 지속적 배포와 기타 데브섹옵스 관행이 비즈니스에 미치는 영향을 측정한다.
 
'2024년 CI/CD 현황 보고서 : 소프트웨어 제공 성능의 발전'에 따르면 지속적 배포는 코드 변경의 리드 시간(코드가 커밋되는 시점부터 프로덕션에 성공적으로 적용되기까지의 시간으로 정의되는 DORA 지표)을 대폭 줄여준다. 코드 변경의 리드 시간이 하루 미만이라고 답한 비율을 보면 하루에 여러 번 배포할 수 있는 응답자 중에서는 53%, 하루 1회~주 1회 배포하는 응답자 중에서는 27%, 주 1회~월 1회 배포하는 응답자 중에서는 9%였다.
 
옵세라(Opsera)의 창업자이며 CEO인 쿠마르 치부쿨라는 "AI 지원 데브옵스 툴은 개발자 생산성을 30% 이상 높여준다고 주장한다. 첫 번째 배포 물결이 지나간 이후 현재 기업들은 업계의 주장과 실현된 ROI를 입증하기 위한 인사이트와 KPI, DORA 지표를 캡처할 자동화된 메커니즘을 찾고 있다”라고 말했다.
 
결함과 다운타임이 수익 손실, 만족스럽지 않은 고객 경험, 또는 직원 워크플로우 중단으로 이어지는 애플리케이션에는 코드 변경의 리드 시간 개선이 중요한 사항일 수 있다.
 

하이브리드 CI/CD 도입

CI/CD 현황 보고서의 한 가지 놀라운 데이터 포인트는 응답자들이 보유한 CI/CD 플랫폼의 수와 이것이 DORA 지표에 미치는 영향이다. 자체 호스팅과 관리형 CI/CD의 하이브리드 방식을 사용하는 기업이 한 가지 접근 방식으로 표준화하거나 CI/CD 플랫폼을 사용하지 않는 기업보다 더 나은 성과를 얻었다. 
 
하이브리드 방식을 사용하는 기업 중에서 49%는 변경 사항의 리드 시간이 1주일 미만이라고 답했으며 24%는 리드 시간이 하루 미만이라고 답했다. 66%는 예기치 않은 중단이 발생할 경우 하루 이내에 서비스 성능을 복원할 수 있다고 답했으며 25%는 한 시간 미만에 가능하다고 답했다. 이러한 비율은 한 가지 접근 방식을 사용하는 기업에 비해 훨씬 더 높게 나타났다. 또한 보고서에서는 3개 이하의 CI/CD 플랫폼을 사용하는 기업이 4개 이상의 툴을 사용하는 기업에 비해 더 나은 결과를 얻는 것으로 확인됐다.
 
기업이 여러 개의 CI/CD 플랫폼을 두는 이유는 많다. 예를 들어 세일즈포스에 앱을 배포하기 위해 코파도 또는 옵세라를 사용하고, 데이터 센터 앱에는 젠킨스를, 클라우드 네이티브 애플리케이션에는 깃허브 액션을 사용하고, 기업 인수 이후에는 AWS 클라우드빌드, AWS 코드파이프라인을 사용해 구현을 상속할 수 있다. 연구는 복수의 솔루션을 사용할 때 얻는 이점도 있지만 비슷한 기능을 갖춘 솔루션은 통합하고 표준화할 것을 권장한다.
 

CI/CD 플러그인으로 보안 시프트-레프트

연구와 개념 증명, 구현에 있어 중요한 영역 중 하나는 플러그인을 사용하여 서드파티 기능을 CI/CD 파이프라인에 통합하는 것이다. 시장 점유율 1위의 CI/CD 플랫폼인 젠킨스는 1,900개의 플러그인을 자랑하며 주요 플러그인은 깃, 지라, 쿠버네티스 연결을 지원한다. 보안과 코드 품질 플러그인은 빌드와 배포에 앞서 코드를 평가하고 취약점을 최소화하는 데 중요하다.
 
EDB의 제품 관리 부사장인 에슬린 라이트는 "많이 활용되지 않고 있는 기능 중에는 잠재적인 배포 실패를 파악하기 위한 예측 분석, 버그와 보안 취약점, 데이터 거버넌스 문제를 파악하기 위한 AI 코드 품질 검토 기능이 있다. 이러한 툴은 데브옵스 프로세스의 민첩성과 효율성을 크게 높여줄 수 있지만 높은 수준의 기술 성숙도와 통합 노력이 필요한 만큼 도입 속도는 느릴 수 있다”라고 말했다.
 
CI/CD 파이프라인에 플러그인으로 연결되는 보안 기능에는 컨테이너 보안 스캔, 정적 애플리케이션 보안 테스트(SAST), 코드 품질 스캔, 소프트웨어 공급망 취약점 검사가 포함된다.
 
소나(Sonar)의 개발자 관계 및 커뮤니티 책임자 피터 맥키는 "비즈니스 리더는 프로덕션 환경에서 SEV-1 또는 SEV-2 문제가 없는 안정적이고 안전하며 고객 관점에서 가치가 높은 기능을 신속하게, 대규모로 제공하는 것을 우선시한다. 데브옵스는 이러한 요구사항의 게이트키퍼 역할을 하지만, 코드 품질 테스트는 핵심적인 측면임에도 간과되는 경우가 많다. 단위 테스트, 통합 테스트, 엔드투엔드 테스트는 기능을 확인하지만 코드 품질을 평가하지는 않는다. CI/CD 프로세스에 정적 코드 분석을 포함하면 깔끔한 코드를 보장하면서 현대의 요구사항을 충족하는 데 필수적인 신뢰성과 유지보수 편의성, 보안을 강화할 수 있다”라고 말했다.
 

파이프라인 관찰가능성 확보 및 개선

데브섹옵스 팀은 보안 기능을 제공하는 플러그인 외에 CI/CD 파이프라인을 보호하기 위한 조치도 취해야 한다. OWASP의 CI/CD 보안 참조 자료는 CI/CD 위험, 안전한 파이프라인 구성, ID 및 액세스 관리(IAM) 고려 사항, 서드파티 코드 관리와 기타 모범 사례를 점검하는 데 사용할 수 있는 유용한 리소스다. 주요 CI/CD 보안 위험에는 다음이 포함된다.
 
  • 우발적이거나 악의적 행위자에 의한 코드 푸시를 차단하기 위한 권한 제어 기능이 없는 파이프라인
  • 개발 워크스테이션 또는 빌드 환경에서 악성 패키지를 가져올 때의 종속성 체인 문제
  • 적절한 검증 및 통제 없는 서드파티 서비스 사용

데브섹옵스 팀은 배포 빈도를 높이기 위한 CI/CD 개선과 보안 위험에 대처하기 위한 개선 사이에서 균형을 잡아야 한다. 파이프라인을 보호하는 것 외에 성능 문제를 파악하고 테스트 병목 현상을 추적하고 서드파티 서비스 관련 문제를 디버깅하기 위한 데브옵스 관찰가능성도 개선해야 한다.
 
보안과 운영 고려 사항을 한데 모으는 데 사용할 수 있는 방법 중 하나는 코드형 정책(PaC)을 지원하는 툴을 활용하는 것이다. 이러한 시스템은 정책과 규칙을 코드로 추상화해서 보안과 운영 비즈니스 규칙을 캡처, 구현, 확장할 수 있는 방법을 데브섹옵스 팀에 제공한다.
 
이뮤타(Immuta)의 CISO 마이크 스콧은 "코드형 정책은 고도로 민감한 데이터에 적용되는 중요한 정책을 일관적으로 관리하기 위한 강력한 기능으로, 보안, 거버넌스, 데브옵스 팀을 위한 자동화된 자체 문서화 시스템을 제공한다. 테스트와 검증을 수행하는 CI/CD 파이프라인을 사용하여 코드형 정책을 구현하고, 검증된 정책을 프로덕션 환경에 자동으로 배포할 수 있다”라고 말했다.
 
활성 파이프라인과 통합 서비스, 플러그인이 많은 데브섹옵스 기업의 경우 PaC 플랫폼과 서비스를 사용해 기반 비즈니스 규칙을 개발하면 재사용 가능한 파이프라인을 단순화하고 생성할 수 있는 방법을 찾을 수 있다.
 

비즈니스 영향 이해

데브섹옵스 팀은 상위 고급 옵션을 살펴보고 지속적 개선 주기를 통해 어느 DORA 지표를 구현할지를 결정해야 한다. 그러나 엠퍼시스(Mphasis)의 최고 솔루션 책임자인 스리쿠마 라마나단은 모든 시스템의 최종 목표가 비즈니스 지원임을 상기해야 한다고 말했다.
 
라마나단은 "기술자는 참신한 최신 기술을 구현하는 작업 자체에만 몰두하는 경우가 많다. 시프트 레프트는 비즈니스 관점에서 바라보는 것을 의미한다. QA, 보안, 관찰가능성, 자동화를 고려할 때 꼭 필요한 요소"라고 말했다.
 
최선의 방법은 데브섹옵스 운영 및 보안 개선을 통해 혜택을 얻는 대상과 가치 제안을 정의하는 것이다. 이 부분을 정의하면 데브섹옵스 팀은 집중할 기능을 결정하고 유의미한 비즈니스 가치가 있는 성과 지표를 목표로 삼을 수 있다.
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.