Verify Stage 코드베이스에 기여하기
GitLab Verify Stage의 CI/CD 플랫폼 핵심 원칙, 개발 가이드라인, 그리고 코드베이스에 기여하는 방법을 설명합니다.
Verify에서 현재 작업 중인 것은? # Verify Stage는 GitLab 제품에 통합된 포괄적인 지속적 통합(Continuous Integration) 플랫폼을 개발하고 있습니다. 우리의 목표는 사용자가 훌륭한 기술적·비즈니스적 결정을 내릴 수 있도록 지원하는 것입니다. 이를 위해 빠르고 안정적이며 안전한 플랫폼을 제공하여, 사용자의 가정을 검증하고 CI/CD 구성에 정의된 기준과 대조합니다. 여기에는 단위 테스트, 엔드-투-엔드 테스트, 벤치마킹, 성능 검증, 코드 커버리지 적용 등이 포함됩니다. GitLab CI/CD가 전달하는 피드백은 사용자가 성공하기 위해 내려야 하는 기술적·비즈니스적 선택에 대해 충분한 정보를 바탕으로 결정을 내릴 수 있게 합니다. 지속적 통합이 미션 크리티컬(mission critical) 제품인 이유가 여기에 있습니다. GitLab CI/CD는 사용자와 고객에게 피드백을 전달하는 우리의 플랫폼입니다. 사용자는 .gitlab-ci.yml 지속적 통합 구성 파일을 통해 답을 얻고 싶은 질문들을 정의합니다. 누군가 커밋을 푸시하거나 파이프라인을 트리거할 때마다, CI/CD 구성에서 제기된 매우 중요한 질문들에 대한 답을 찾아야 합니다. 이러한 질문들에 답하지 못하거나, 더 나쁜 경우 잘못된 답을 제공하면 사용자가 잘못된 결정을 내릴 수 있습니다. 이러한 잘못된 결정은 매우 심각한 결과를 초래할 수 있습니다. CI/CD 플랫폼의 핵심 원칙 # 플랫폼에서 생성되는 데이터는 다음과 같아야 합니다: 정확해야 합니다. 내구성이 있어야 합니다. 접근 가능해야 합니다. 플랫폼 자체는 다음과 같아야 합니다: 안정적이어야 합니다. 안전해야 합니다. 결정론적이어야 합니다. 신뢰할 수 있어야 합니다. 빨라야 합니다. 단순해야 합니다. GitLab CI/CD가 시작된 이래 우리는 이러한 원칙들을 지켜왔으며, 이는 우리와 우리 사용자에게 잘 적용되고 있습니다. 이 원칙들의 몇 가지 예시는 다음과 같습니다: GitLab CI/CD가 전달하는 피드백과 플랫폼이 생성하는 데이터는 정확해야 합니다. job이 실패했는데 사용자에게 성공했다고 알리면 심각한 부정적 결과가 발생할 수 있습니다. 피드백은 사용자가 필요할 때 사용 가능해야 하며, 엔지니어가 필요로 할 때 데이터가 예상치 않게 사라져서는 안 됩니다. 플랫폼이 안전하지 않아 자격 증명이나 시크릿이 유출된다면 이 모든 것은 의미가 없습니다. 사용자가 CI/CD 구성 형태로 사전 조건 세트를 제공하면, 파이프라인이 실행될 때마다 결과가 결정론적이어야 합니다. 그렇지 않으면 플랫폼이 신뢰할 수 없게 됩니다. 빠르고 사용하기 단순하며 뛰어난 UX를 갖추면 사용자에게 잘 서비스할 수 있습니다. Verify에서 구현하기 # 최적화 전에 측정하고, 데이터 기반 결정을 내리세요 # 측정할 수 없는 것을 최적화하기는 매우 어렵습니다. 성공 여부나 성공의 중요도를 어떻게 알 수 있을까요? 성능 또는 안정성 개선 작업을 할 때는 최적화 전에 반드시 측정부터 해야 합니다. 가장 좋은 측정 방법은 Pro