- CI/CD 도구 사용 시 개발 생산성 향상
- 올해 4월 영국 개발자 분석 기업 SlashData, 글로벌 오픈 소스 커뮤니티 Continuous Delivery Foundation(CDF)이 발표한 ‘State Of Continuous Integration & Continuous Delivery Report’ 조사 결과
- CI/CD 도구(관리형 또는 셀프 호스팅) 사용하는 개발자는 그렇지 않은 개발자와 비교해 코드 변경 리드 타임과 서비스 복구 시간, 배포 빈도서 높은 성과 낼 가능성 더 큼
- 이 세 가지는 개발자 생산성 판단하는 DORA 핵심 지표 일부
- CI/CD 도구 사용하지 않는 개발자는 이를 사용하는 개발자보다 성과 낮을 가능성 더 큼
- 관리형과 셀프 호스팅 CI/CD 도구 둘 다 사용하는 개발자는 코드 변경 리드 타임과 서비스 복구 시간, 배포 빈도에서 가장 우수한 성과 보임
- SlashData, CDF 따르면, 코드 변경 리드 타임이 하루 미만인 개발자는 관리형과 셀프 호스팅 CI/CD 도구 모두 사용하는 개발자(24%)가 가장 많음
- 관리형 CI/CD 도구만 사용하는 개발자(22%), 셀프 호스팅 CI/CD 도구만 사용하는 개발자(17%), CI/CD 도구를 사용하지 않는 개발자(13%)는 그 뒤 이음
- 코드 변경 리드 타임이 한 달 이상인 개발자는 CI/CD 도구 사용하지 않는 개발자(40%)가 가장 많고, 셀프 호스팅 CI/CD 도구만 사용하는 개발자(33%), 관리형 CI/CD 도구만 사용하는 개발자(30%), 관리형과 셀프 호스팅 CI/CD 도구를 모두 사용하는 개발자(19%) 순
- 서비스 복구 시간이 1시간 미만인 개발자는 관리형과 셀프 호스팅 CI/CD 도구 모두 사용하는 개발자(25%)가 가장 많았음
- 셀프 호스팅 CI/CD 도구만 사용하는 개발자(17%), 관리형 CI/CD 도구만 사용하는 개발자(15%), CI/CD 도구를 사용하지 않는 개발자(11%)는 그 뒤 이음
- 서비스 복구 시간이 일주일 이상인 개발자는 CI/CD 도구를 사용하지 않는 개발자(32%)가 가장 많고, 셀프 호스팅 CI/CD 도구만 사용하는 개발자(29%), 관리형 CI/CD 도구만 사용하는 개발자(25%), 관리형과 셀프 호스팅 CI/CD 도구를 모두 사용하는 개발자(17%) 순
- SlashData와 CDF, “관리형과 셀프 호스팅 CI/CD 도구 다 사용하면 관리형 도구 편의성과 기본 제공 기능, 셀프 호스팅 도구 맞춤형 기능 결합해 효율성 높일 수 있다”
- 위 조사에서 관리형 CI/CD 도구는 Azure Pipelines, AWS CodePipeline, 셀프 호스팅 CI/CD 도구는 Jenkins, TeamCity 일컬음
- 여러 셀프 호스팅 CI/CD 도구 사용 시 성과 저하
- 동일한 형태의 여러 CI/CD 도구 사용하면 배포 성과 떨어질 수 있음
- 셀프 호스팅 CI/CD 도구 여럿 사용할 때 이러한 현상이 두드러짐
- SlashData와 CDF 조사 결과, 셀프 호스팅 CI/CD 도구 수가 늘어나면, 코드 변경 리드 타임과 배포 빈도, 서비스 복구 시간이 한 달 이상인 저성과자 비중 급증
- 두 기관에 따르면, 코드 변경 리드 타임이 한 달 이상인 개발자는 셀프 호스팅 CI/CD 도구를 4개 사용하는 개발자가 가장 많았음
- 배포 빈도와 서비스 복구 시간이 각각 한 달 이상인 개발자는 셀프 호스팅 CI/CD 도구를 5개 이상 쓰는 개발자가 가장 많았음
- 반면에 코드 변경 리드 타임과 서비스 복구 시간이 각각 하루 미만인 개발자는 관리형 CI/CD 도구를 1개 사용하는 개발자가 가장 많았음
- SlashData와 CDF는 셀프 호스팅 CI/CD 도구 수가 늘어 서비스 복구 시간에 부정적 영향 미치는 주요 원인으로 ‘상호운용성’ 문제 지적
- 여러 CI/CD 도구 사용하면 모든 도구 제대로 통합 어려움
- 이에 서비스에 영향 미치는 문제 분리하기가 힘들 수 있음
- AI와 머신러닝, CI/CD 통합 강화
- AI와 머신러닝은 CI/CD 파이프라인에 더 많이 통합됨
- AI 기반 CI/CD 파이프라인은 문제 더 빠르게 탐지 지원
- 이는 개발, 테스트 팀이 트러블슈팅과 디버깅 시간 대폭 단축하도록 도움
- AI는 CI 테스트 환경 설정 작업 자동화, 테스트 가속화
- 이는 CD 파이프라인에서 지능형 자동화 진행, 코드 리뷰와 테스트도 자동화
- AI와 머신러닝 적용해 코드 취약점 확인
- 예측 분석은 CI/CD 파이프라인에서 잠재적 문제, 실패 예측에 활발히 쓰일 걸로 예상
- 이 기술은 데이터, 통계 알고리즘, 머신러닝 사용
- 이는 과거 빌드 실패 패턴 분석해 배포 파이프라인에 영향 미치기 전에 팀이 문제를 미리 확인하고 해결하도록 지원
- 그 결과, 더 빠르고 안정적으로 배포
- AI와 머신러닝은 앞으로 CI/CD에 폭넓고 긴밀하게 적용될 것
- GitOps, CI/CD 영향력 증대
- GitOps가 CI/CD 파이프라인에 점점 더 영향력 미침
- 이는 버전 관리, 협업, 컴플라이언스, CI/CD 등 애플리케이션 개발에 활용하는 DevOps 모범 관행을 인프라 자동화에 적용하는 운영 프레임워크
- 많은 조직이 CI/CD 프로세스 일부로 GitOps 구현
- 개발자는 GitOps로 Git 리포지터리를 코드와 구성 위한 단일 진실 공급원(SSOT)으로 사용할 수 있음
- GitOps는 인프라와 애플리케이션 배포 전반에 버전 제어된 변경 촉진, 협업 간소화, 가시성 향상
- GitOps가 Git 리포지터리 안에서 모든 구성과 배포 매니페스트 중앙집중화
- GitOps는 Git 중심 워크플로로 증분 업데이트 자동 릴리즈, 개발자가 클러스터 관리하며, 구성 오류 없이 효율적이고 안전한 애플리케이션 제공하도록 지원
- 속도와 효율성, 편의성 힘입어 조직이 DevOps 워크플로 간소화, IaC 모범 관행 시행함에 따라 GitOps는 CI/CD에 널리 쓰일 것
- 엣지 컴퓨팅 수용 필요성 증가
- CI/CD 파이프라인에서 엣지 컴퓨팅 수용할 필요성 커짐
- 엣지 컴퓨팅은 데이터가 생성된 현장 또는 그 가까운 곳에서 데이터 실시간 처리, 기기 작동
- 이는 데이터를 실시간 처리, 분석하기에 대기 시간 줄이며, 애플리케이션 더 효율적이고 더 빠르게 작동하는 데 도움이 됨
- CI/CD 파이프라인이 엣지 배포 수용하도록 적응해야 한다는 주장 제기됨
- 예: 경량 배포 만들거나, 컨테이너화 활용해 엣지 디바이스에 더 쉽게 배포
- 개발팀이 엣지 디바이스에 최신 버전의 프로그램과 서비스 안정적으로 제공하는 게 그 어느 때보다 중요해짐
- CI/CD 파이프라인을 엣지에 연결하면 이는 엣지 애플리케이션에 일관되고, 효율적인 개발자 경험 제공해 운영 효율성 높임
- 조기 피드백과 함께 애플리케이션을 엣지에 자동 배포하고 테스트해 더 나은 제품 더 빨리 제공
- 몇몇 서비스가 엣지 배포 지원하지만 CI/CD 파이프라인 비롯해 기존 파이프라인 위한 새로운 도구와 플러그인 등장 가능성 큼