LabHub

CNPA — 클라우드 네이티브 플랫폼 엔지니어링 어소시에이트 · 플랫폼을 숫자로 재기 · 실습

배포 원장에서 플랫폼 지표 계산하기

LabHub 에서 이어서 보기

목표

28일치 배포 원장 한 장에서 DORA 네 지표와 채택률, 에러 버짓을 직접 계산합니다. 값을 눈대중으로 적지 않고 원장에서 뽑아내는 손을 만듭니다.

왜 중요한가

지표를 놓고 벌어지는 논쟁은 대부분 정의가 아니라 계산 방법에서 시작합니다. 평균이냐 중앙값이냐, 분모가 배포 건수냐 실패 건수냐, 활성 사용을 무엇으로 세느냐에 따라 같은 데이터가 몇 배씩 다른 숫자를 냅니다. 플랫폼 팀이 지표를 도입할 때 먼저 해야 할 일은 계산을 코드로 못박아 누가 돌려도 같은 값이 나오게 만드는 것입니다. 이 실습의 채점기도 같은 원리로 동작합니다. 여러분이 적어 낸 숫자를 믿지 않고 원장에서 다시 계산해 대조합니다.

단계

1. /root/cnpa-metrics/deploys.csv 에 배포 원장을 옮겨 적으세요. 머리글은 service,day,lead_min,result,restore_min 이고 데이터는 15행입니다. 내용은 형식 예시에 있는 그대로입니다. resultsuccess 또는 failed 이고, 성공한 배포의 restore_min 은 0 입니다.
2. /root/cnpa-metrics/freq.json 에 배포 빈도를 담으세요. 키는 window_days(28), weeks(4), per_week 이고, per_week 에는 서비스별 주당 배포 건수를 소수 둘째 자리까지 넣습니다. 원장에 있는 세 서비스만 담습니다.
3. /root/cnpa-metrics/lead.json 에 리드 타임 중앙값을 담으세요. 키는 median_min(서비스별 중앙값)과 overall_median_min(15건 전체의 중앙값)입니다.
4. /root/cnpa-metrics/cfr.json 에 변경 실패율을 담으세요. 키는 total, failed, cfr_pct(소수 첫째 자리)입니다.
5. /root/cnpa-metrics/mttr.json 에 복구 시간을 담으세요. 키는 failed, mean_restore_min(실패한 배포의 평균 복구 시간, 소수 첫째 자리), max_restore_min 입니다.
6. /root/cnpa-metrics/dora.json 에 네 지표의 등급을 담으세요. 키는 deploy_frequency, lead_time, change_failure_rate, mttr 이고 값은 Elite, High, Medium, Low 중 하나입니다. 임계값은 이렇게 씁니다. 배포 빈도(전체 배포를 4주로 나눈 주당 건수)는 7 이상이면 Elite, 1 이상이면 High, 0.25 이상이면 Medium, 그 미만이면 Low 입니다. 리드 타임(전체 중앙값, 분)은 60 미만이면 Elite, 1440 미만이면 High, 10080 미만이면 Medium, 그 이상이면 Low 입니다. 변경 실패율은 5% 이하면 Elite, 10% 이하면 High, 15% 이하면 Medium, 그보다 크면 Low 입니다. 복구 시간(평균, 분)은 리드 타임과 같은 임계값을 씁니다.
7. /root/cnpa-metrics/services.csv 에 서비스 명부를 옮겨 적으세요. 머리글은 service,onboarded_day,golden_path,last_deploy_day 이고 데이터는 6행입니다. 그다음 /root/cnpa-metrics/platform-adoption.json 에 채택 현황을 담으세요. 키는 total_services(명부의 서비스 수), onboarded(golden_pathyes 인 수), active(golden_pathyes 이면서 last_deploy_day 가 15 이상인 수), active_rate_pct(활성 수를 전체 서비스 수로 나눈 백분율, 소수 첫째 자리)입니다.
8. /root/cnpa-metrics/budget.json 에 에러 버짓을 담으세요. 플랫폼 SLO 는 99.5%, 창은 28일입니다. 키는 slo_pct(99.5), window_days(28), budget_min(창 전체 분의 0.5%), burned_min(원장의 복구 시간 합), burn_pct(소진율, 소수 첫째 자리), remaining_min(남은 예산)입니다.

참고

단계 8개

  1. 배포 원장 옮겨 적기
  2. 배포 빈도
  3. 리드 타임 중앙값
  4. 변경 실패율
  5. 복구 시간
  6. 등급 판정
  7. 채택률
  8. 에러 버짓