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