CI/CD는 DevOps의 꽃이자, 현대 소프트웨어 개발·배포 프로세스의 바탕을 이루죠. 그러나 전반적인 프로세스의 가시성은 제한적이었습니다.
최근에는 옵저버빌리티(Observability)를 접목해 CI/CD 가시성을 향상하고, 성능을 최적화하는 움직임이 나타나고 있는데요. 옵저버빌리티 핵심 플랫폼인 OpenTelemetry*가 CI/CD 옵저버빌리티로 영역을 확장하고 있고요. OpenTelemetry의 Semantic Conventions에는 CI/CD 파이프라인 보고를 위한 지정된 속성이 업데이트되기도 했습니다.
CI/CD 옵저버빌리티는 ‘아직 초기 단계’라는 평가도 있는데요. CI/CD 개선으로 소프트웨어 개발 라이프사이클을 효율화하고, DevOps 트렌드를 놓치지 않으려면 꼭 알아야 할 기술이기도 합니다. 이 글은 CI/CD 옵저버빌리티 개념과 구현 방식, 필요성, 모범 관행을 정리했습니다.
*OpenTelemetry: 벤더 중립 오픈 소스 옵저버빌리티 프레임워크
CI/CD 옵저버빌리티 개념과 구현

CI/CD 옵저버빌리티(CI/CD Observability)는 모든 커밋, 테스트, 빌드, 배포를 살펴보면서 CI/CD 시스템의 전체 파이프라인을 심층적으로 파악하는 기술입니다. 이러한 데이터를 모두 결합하면 전체 소프트웨어 배포 프로세스를 보고, 효율성과 병목 현상, 잠재적 장애 지점을 발견할 수 있죠.
AWS의 시니어 디벨로퍼 애드보케이트인 Dotan Horovits는 CI/CD 옵저버빌리티 구현 방식을 다음 4단계로 설명합니다.
- CI/CD 파이프라인 실행 데이터 수집
- 빠른 쿼리와 검색을 위해 데이터 인덱싱, 저장
- 맞춤형 대시보드로 데이터 시각화
- 보고서 생성, 알림 규칙 설정
데이터 수집, 시각화, 분석에는 OpenTelemetry, Grafana, Kibana, Datadog, New Relic, Prometheus 등과 같은 도구를 사용할 수 있습니다.
CI/CD 옵저버빌리티를 도입할 때, 파이프라인으로 모든 메트릭을 측정해야 하는 건 아닙니다. CI 파이프라인으로 측정할 수 있는 주요 메트릭은 빌드 시간, 테스트 통과율, 보안 스캔 결과, 배포 빈도, 실패한 빌드 또는 배포 비율, 평균 복구 시간, 리소스 사용량, 코드 품질 메트릭, 사용자 참여 메트릭 등이고요.
금융 기업 Old Mutual Limited의 엔지니어링 총괄인 Craig Risi는 InfoQ 기고 글에서 “파이프라인, 조직의 목표와 가장 관련성이 높은 메트릭을 선택하는 게 중요하다”라고 제언합니다.
CI/CD 옵저버빌리티 필요성

CI/CD는 소프트웨어 개발 프로세스의 핵심 요소인 만큼 그 상태와 성능을 가시화하고, 통찰을 얻는 게 중요합니다. 이를 기반으로 오류를 신속히 확인해 디버깅 시간을 줄이고, 개발자 생산성을 높이며, 혁신도 가속화할 수 있죠.
옵저버빌리티는 이를 실현하는 데 기여하는데요. CI/CD에 옵저버빌리티를 도입하면 풍부한 정보를 토대로 전반적인 CI/CD 프로세스 이해를 향상하고, 문제를 빠르게 해결할 수 있고요. 소프트웨어를 신속하고 안정적으로 배포해 비즈니스 성과도 높일 수 있습니다.
옵저버빌리티 플랫폼 Grafana Labs의 시니어 소프트웨어 엔지니어인 Dimitris Sotirakis와 Giordano Ricci, AWS의 시니어 디벨로퍼 애드보케이트인 Dotan Horovits, IT 서비스 기업 Liatrio의 수석 DevOps 엔지니어인 Adriel Perkins에 따르면, CI/CD 옵저버빌리티가 필요한 이유는 다음과 같은데요.
1. 개발·배포 초기 문제 발견, 해결
CI/CD 옵저버빌리티는 개발·배포 주기의 초기 단계도 모니터링해 전반적인 CI/CD 프로세스 이해도를 높여줍니다. 그동안 옵저버빌리티는 ‘실행 단계’에 초점을 맞췄는데요. 빌드, 테스트, 배포와 같은 초기 단계의 중요한 통찰은 소홀히 취급됐죠. 개발·배포 주기의 마지막 단계만 관찰하면 빌드·테스트 단계에서 발생 한 일을 모르거나, 근본 원인 분석에 어려움을 겪을 수 있고요. 평균 복구 시간이 길어지며, 최적화 기회를 놓칠 수도 있습니다. 그러나 CI/CD 옵저버빌리티를 도입하면 개발·배포 주기의 초기 단계도 면밀히 관찰해 문제와 그 원인을 빠르고 정확히 파악할 수 있고요. 문제 해결 속도도 높일 수 있습니다.
2. 풍부한 정보로 더 나은 의사 결정
CI/CD 옵저버빌리티는 더 많은 정보를 토대로 더 나은 의사 결정을 내리는 데 도움이 됩니다. 이는 CI/CD 프로세스의 세부 사항을 이해하도록 지원하는데요. 팀은 풍부한 정보에 입각해 리소스 할당, 프로세스 변경, 도구 채택 등과 관련해 합리적인 의사 결정을 내릴 수 있죠. 이는 문제에 사후 대응만 하기보다 사전에 이를 예측하고, 해결하는 데 도움이 될 수도 있고요. 결과적으로 시간과 리소스를 절약하는 데 이바지할 수 있습니다.
3. 빠르고 안정된 배포로 비즈니스 개선
CI/CD 옵저버빌리티는 소프트웨어를 프로덕션 환경에 신속하고 안정적으로 릴리즈해 비즈니스를 발전시킵니다. CI/CD 워크플로에 옵저버빌리티를 통합하면, 파이프라인 상태와 성능을 실시간으로 모니터링할 수 있죠. 이로써 병목 현상과 개선이 필요한 영역에 통찰을 얻을 수 있고요. 이 내용을 참고해 CI/CD 파이프라인이 잘 작동하도록 최적화할 수 있습니다. 그 결과, 변경 리드 타임을 단축하고, 중단되거나 불안정한 프로세스를 빠르게 해결할 수 있고요. 궁극적으로 소프트웨어를 신속하고 안정적으로 시장에 선보여 비즈니스 성과도 향상할 수 있습니다.
CI/CD 옵저버빌리티 모범 관행

CI/CD 옵저버빌리티를 효과적으로 구현하는 건 녹록지 않습니다. CI/CD 파이프라인에는 다단계 파이프라인의 복잡성, 표준화 부족, 확장성 문제, 보안 취약점, 의존성 관리 문제가 있을 수 있는데요. 이는 옵저버빌리티에도 부정적 영향을 미칠 수도 있죠. 옵저버빌리티 플랫폼 KloudMate는 CI/CD 워크플로에 지속적인 옵저버빌리티를 구현하는 모범 관행으로 다음 여섯 가지를 제시합니다.