CI/CD 지속 가능성
CI/CD 지속 가능성 (CI/CD sustainability)
파이프라인과 인프라에서 발생하는 탄소 배출을 측정·분석·절감하는 데는 서드파티 도구를 연동해서 써요. 어떤 도구가 어울리는지는 '무엇을 측정하고 싶은지'에 따라 달라지는데요, 그 기준을 먼저 잡아두면 선택이 수월해집니다.
출처: 문서
본문
[!NOTE] 이 페이지에서 설명하는 지속 가능성 도구들은 서드파티 연동 기능이에요. GitLab은 이 도구들을 유지 관리하거나 지원하지 않고, 이 도구들이 어떤 규제·컴플라이언스 요구사항을 충족한다는 보장도 하지 않아요.
서드파티 도구를 연동하면 파이프라인과 인프라에서 발생하는 탄소 배출을 측정하고, 분석하고, 줄일 수 있어요. 여기서 어떤 도구를 고를지는 이렇게 나눠서 생각해 볼게요.
- CI/CD 파이프라인 job에서 발생하는 배출을 측정하려면 Eco CI를 사용해요.
- 가상 머신, 파드(pod), 애플리케이션 워크로드에서 발생하는 배출을 측정하려면 Carmen을 사용해요.
Eco CI
Eco CI는 CI/CD 파이프라인의 에너지 소비와 탄소 배출을 측정해요. 파이프라인 job 안에서 가벼운 bash 스크립트로 동작하기 때문에 별도 서버나 데이터베이스가 필요 없어요. Eco CI로 할 수 있는 일은 이렇습니다.
- CI/CD 파이프라인 job의 에너지 소비와 탄소 배출 측정.
- 파이프라인에서 리소스를 많이 쓰는 job 식별.
- 파이프라인 실행별 탄소 배출을 시간에 따라 추적.
- 프로젝트 README에 탄소 배출 배지 표시.
Carmen
Carmen(Carbon Measurement Engine)은 가상 머신, 파드, 애플리케이션 워크로드에서 발생하는 탄소 배출을 측정하는 오픈소스 도구예요. Green Software Foundation Impact Framework 위에 구축되어 있습니다. Carmen으로 할 수 있는 일은 이렇습니다.
- 스택 안의 어떤 서비스·VM·파드가 CO2를 가장 많이 배출하는지 식별.
- 구성 요소를 비교하고 절감 우선순위를 매기기.
- 구성 요소별 탄소 점수를 자체 FinOps 대시보드나 내부 도구에 연동.
Carmen을 쓰지 말아야 할 경우도 분명해요.
- 기업 또는 ESG 보고용.
- 보도자료나 마케팅 자료용.
- 컴플라이언스나 규제 공시용.
모범 사례 (Best practices)
CI/CD 워크플로우의 탄소 배출을 줄이는 데 도움이 되는 몇 가지 전략을 소개할게요.
job 실행 최적화 (Optimize job execution)
job 실행을 최적화하려면 이렇게 해요.
- 중복 작업을 피하도록 캐시를 사용.
- 리소스 집약적인 빌드는 초반 job에서 한 번만 실행하고, 그 결과물을 artifact로 공유해서 이후 필요한 job들이 재사용.
- 폭주하는 job을 막도록 적절한 타임아웃 값을 설정.
- 더 작은 Docker 이미지를 사용해서 다운로드·시작 시간을 단축.
효율적인 러너 선택 (Choose efficient runners)
러너를 효율적으로 고르려면 이렇게 해요.
- 워크로드 요구사항에 맞는 러너 인스턴스 유형을 선택.
- 작은 job에 리소스를 과도하게 할당하지 않기.
- 중요하지 않은 워크로드에는 스팟 인스턴스 사용.
- 수요에 맞춰 용량을 조절하도록 오토스케일링 사용.
전략적인 스케줄링 (Schedule strategically)
전략적으로 스케줄을 잡으려면 이렇게 해요.
- 리소스 집약적인 파이프라인은 CI 서버 지역에서 재생 에너지가 가장 풍부할 때 실행하도록 예약. Electricity Maps에서 가장 좋은 시간대와 지역을 확인할 수 있어요. 정오(Midday)가 보통 좋은 기본 선택입니다.
- 급하지 않은 파이프라인은 탄소 인지 스케줄링(carbon-aware scheduling)을 고려.
- 비슷한 job들을 묶어서 리소스 활용률을 높이기.
모니터링과 반복 (Monitor and iterate)
지속 가능성 노력을 모니터링하고 개선하려면 이렇게 해요.
- 파이프라인의 기준(baseline) 지표를 설정.
- 배출 절감 목표 수립.
- 영향이 큰 job을 정기적으로 검토해서 최적화 기회 탐색.
- 지속 가능성 지표를 팀과 공유.
관련 주제 (Related topics)
더 알아보기
어떤 도구를 쓰더라도 '무엇을 측정할지'가 먼저 정해져야 해요. CI/CD 파이프라인 job을 보려면 Eco CI를, VM·파드 같은 인프라 워크로드를 보려면 Carmen을 선택하는 식이죠. 탄소 배출 절감은 모니터링 지표를 만들고 목표를 세운 뒤 작은 최적화부터 반복적으로 적용하는 게 핵심이에요.