클라우드 통합을 위한 엔드 투 엔드 테스트 인프라
이 콘텐츠는 GitLab QA 테스트 시나리오와 통합되는 인프라에 대한 내용입니다.
우리가 사용하는 인프라는 무엇인가요?
현재 우리는 몇 가지 엔드 투 엔드 시나리오를 테스트하기 위해 GCP 및 AWS 플랫폼을 사용하고 있습니다. 이러한 테스트는 자동화된 테스트 실행을 넘어가는 리소스의 실수적인 삭제를 방지하기 위해 다른 샌드박스 프로젝트와 분리되어 있습니다. 이미 해당 계정에 액세스하지 못했다면, 액세스 요청을 생성할 수 있습니다. GCP에서는 group-qa-tests-566cc6
를 사용하고, AWS에서는 클라우드 계정 eng-quality-ops-ci-cd-shared-infra-498dbd5a
를 사용합니다.
이러한 플랫폼이 필요한 테스트 시나리오가 있다면, 기존 인프라와 계정을 사용하도록 권장하여 엔드 투 엔드 테스트 스위트를 효율적으로 통합 및 유지보수할 수 있도록 합니다.
이 인프라를 왜 유지하고 있나요?
GitLab에는 잘 알려진 클라우드 제공업체와 잘 통합되는 여러 기능이 있습니다. 이 통합을 완전히 테스트하기 위해 GitLab QA와 해당 제공업체를 연결하는 인프라가 구축되어 있습니다.
현재 우리는 GCP를 사용하여 Cloud Storage 리소스를 사용하여 Object Storage (GCS)를 테스트하고 Kubernetes 클러스터를 생성합니다. 또한, AWS를 사용하여 Object Storage (S3)를 테스트합니다.
이 인프라를 어떻게 유지하고 있나요?
우리는 GCP의 자원이 테스트에 실패하여 제거되지 않은 경우 정리되도록 하는 Janitor 프로젝트를 운영 중입니다. Janitor 작업은 GCP group-qa-tests-566cc6
에 대해서만 매일 예약된 파이프라인에서 실행됩니다.
AWS는 객체를 1일 후에 삭제하기 위해 라이프사이클 관리 규칙을 사용합니다. 우리는 누구나 이러한 환경에 액세스할 수 있도록 자격을 회전시키는 프로세스를 구축했습니다.