gitlab

조직 전체의 CI 컴포넌트 사용 현황 추적 (새 탭에서 열림)

GitLab 19.0은 CI/CD Catalog에 등록된 공유 컴포넌트의 조직 내 사용 현황을 추적하는 Components Analytics를 제공한다. 모든 요금제에서 컴포넌트별 채택 규모를 확인할 수 있고, Ultimate에서는 어떤 프로젝트가 어떤 버전을 사용하는지까지 조회할 수 있다. 이를 통해 보안 취약점 대응, 구버전 정리, 표준 파이프라인 채택 여부를 수작업 감사 없이 파악할 수 있다.

공유 CI의 가시성 문제

  • CI/CD Catalog는 재사용 가능한 파이프라인 컴포넌트를 버전별로 배포해 프로젝트가 include 한 줄로 사용할 수 있게 한다.
  • 중앙 배포와 표준화는 가능하지만, 배포 후 다음 정보를 파악하기 어렵다는 문제가 있었다.
    • 실제로 어떤 프로젝트가 컴포넌트를 사용하는지
    • 각 프로젝트가 어느 버전을 사용하는지
    • 보안 수정이 적용되지 않은 구버전이 얼마나 남아 있는지
  • 공유 컴포넌트의 보안 수정은 기존 사용 프로젝트에 자동 전파되지 않으므로, 취약점 발생 시 조직의 노출 범위를 수작업으로 조사해야 했다.

Components Analytics의 채택 현황 보기

  • Explore > CI/CD Catalog > Analytics에서 관리 중인 카탈로그 리소스의 사용 현황을 확인할 수 있다.
  • 모든 요금제에서 제공되는 고수준 분석 기능은 다음 정보를 보여준다.
    • 최신 릴리스 버전
    • 최근 30일 동안 컴포넌트를 가져간 고유 프로젝트 수
    • 해당 버전에서 제공되는 컴포넌트 목록
  • 이를 통해 널리 사용되는 컴포넌트와 사실상 사용되지 않는 컴포넌트를 구분할 수 있다.
  • 유지보수 우선순위 설정, 폐기 계획 수립, 플랫폼 투자 효과 측정에 활용할 수 있다.
  • 이 고수준 분석 기능은 GitLab 18.9에서 출시되었으며 Free를 포함한 모든 티어에서 제공된다.

Ultimate의 컴포넌트 사용 상세 조회

  • GitLab Ultimate에서는 특정 카탈로그 리소스를 열어 최근 30일간 사용한 프로젝트를 확인할 수 있다.
  • 프로젝트별로 다음 정보를 제공한다.
    • 사용 중인 컴포넌트 버전
    • 최신 버전 여부
    • 구버전 사용 여부
  • 예를 들어 v2.1에서 보안 수정이 배포된 경우, 여전히 v1.x에 고정된 프로젝트를 바로 식별할 수 있다.
  • 관리자는 해당 프로젝트에 머지 리퀘스트를 제안하거나 담당자에게 알림을 보내고, 필요한 경우 문제를 에스컬레이션할 수 있다.
  • 대규모 리팩터링의 영향 범위, 구버전 폐기 가능 여부, 보안 패치의 실제 적용 여부를 판단하는 데도 유용하다.

다른 CI 플랫폼과의 차이

  • GitHub Actions는 조직 전체에서 재사용 워크플로와 버전 사용 현황을 보여주는 기본 카탈로그 분석 기능이 없어 별도 도구가 필요하다.
  • CircleCI Insights는 파이프라인 성능을 분석하지만, 어떤 팀이 어떤 Orb를 어느 버전으로 사용하는지는 제공하지 않는다.
  • Jenkins Shared Libraries도 사용 현황 추적을 위해 맞춤형 도구를 구축해야 한다.
  • GitLab은 재사용 가능한 컴포넌트 카탈로그와 사용 현황 분석을 기본 기능으로 결합했다.

AI 생성 파이프라인에 대한 거버넌스

  • AI가 생성하는 파이프라인이 늘어날수록 조직 표준이 실제 운영 환경에 적용되고 있는지 확인하는 기능이 중요해진다.
  • CI/CD Catalog는 표준 컴포넌트를 배포하고, Components Analytics는 그 표준이 실제로 사용되는지 감사할 수 있게 한다.
  • Self-Managed 및 Dedicated 고객은 GitLab.com의 컴포넌트를 미러링하거나 자체 컴포넌트를 추가해 규제·에어갭 환경에서도 승인된 표준 집합을 운영할 수 있다.

조직에서 공유 CI 컴포넌트를 운영한다면 Analytics로 채택률과 방치된 컴포넌트를 먼저 파악하고, Ultimate 환경에서는 구버전 사용 프로젝트를 대상으로 보안 패치와 업그레이드를 직접 추진하는 것이 좋다.