Verify Stage 코드베이스에 기여하기
GitLab Verify Stage의 CI/CD 플랫폼 핵심 원칙, 개발 가이드라인, 그리고 코드베이스에 기여하는 방법을 설명합니다.
Verify의 작업 방향 # Verify 스테이지는 GitLab 제품에 통합된 종합 Continuous Integration 플랫폼을 만들고 있습니다. 사용자가 세운 가정을 검증하고 CI/CD 설정에 정의된 기준과 대조하는 빠르고 안정적이며 안전한 플랫폼을 제공해, 사용자가 훌륭한 기술적·비즈니스적 의사 결정을 내릴 수 있도록 하는 것이 목표입니다. 여기에는 단위 테스트, 종단 간 테스트, 벤치마킹, 성능 검증, 코드 커버리지 강제 등이 포함됩니다. GitLab CI/CD가 전달하는 피드백은 사용자가 성공에 필요한 기술적·비즈니스적 선택을 충분한 정보에 근거해 내릴 수 있게 합니다. Continuous Integration 이 미션 크리티컬한 제품인 이유는 다음과 같습니다. GitLab CI/CD는 사용자와 고객에게 피드백을 전달하는 플랫폼입니다. 사용자는 답을 얻고자 하는 질문을 기술하기 위해 Continuous Integration 설정 파일 .gitlab-ci.yml 을 작성합니다. 누군가 커밋을 푸시하거나 파이프라인을 트리거할 때마다, GitLab은 CI/CD 설정에 담긴 매우 중요한 질문들에 대한 답을 찾아야 합니다. 이 질문에 답하지 못하거나, 더 나쁘게는 잘못된 답을 제공하면 사용자가 잘못된 결정을 내릴 수 있습니다. 그러한 잘못된 결정은 매우 심각한 결과로 이어질 수 있습니다. CI/CD 플랫폼의 핵심 원칙 # 플랫폼이 생성하는 데이터는 다음 조건을 갖춰야 합니다. 정확성. 내구성. 접근성. 플랫폼 자체는 다음 조건을 갖춰야 합니다. 안정성. 보안성. 결정성. 신뢰성. 신속성. 단순성. GitLab CI/CD는 시작 이래 이 원칙에 따라 운영돼 왔고, 이 원칙은 GitLab 과 사용자 모두에게 도움이 되고 있습니다. 예를 들면 다음과 같습니다. GitLab CI/CD가 전달하는 피드백과 플랫폼이 생성하는 데이터는 정확해야 합니다. job 이 실패했는데 성공했다고 알린다면 심각한 악영향이 발생할 수 있습니다. 피드백은 사용자가 필요로 할 때 제공돼야 하며, 엔지니어가 필요로 할 때 데이터가 예기치 않게 사라져서는 안 됩니다. 플랫폼이 안전하지 않아 자격 증명이나 시크릿이 유출된다면 나머지는 모두 의미가 없습니다. 사용자가 CI/CD 설정 형태로 전제 조건을 제공하면 파이프라인이 실행될 때마다 결과가 결정적이어야 합니다. 그렇지 않으면 플랫폼을 신뢰할 수 없게 됩니다. 빠르고 사용하기 단순하며 UX가 뛰어나면 사용자에게 큰 도움이 됩니다. Verify에서 구현하기 # 최적화 전 측정과 데이터 기반 의사 결정 # 측정할 수 없는 대상을 최적화하기는 매우 어렵습니다. 측정하지 않으면 성공했는지, 성공이 얼마나 유의미했는지 알 수 없습니다. 성능이나 안정성 개선 작업을 한다면 최적화하기 전에 먼저 측정해야 합니다. 가장 좋은 측정 방법은 Prometheus 메트릭을 추가하는 것입니다. 카운터, 게이지, 히스토그램은 근사치 결과를 빠르게 얻기에 좋은 수단입니다. 다만 꼬리 지연 시간을 측정하기에 가장 좋은 방법은 아닙니다. Prome