This page contains information related to upcoming products, features, and functionality. It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. As with all projects, the items mentioned on this page are subject to change or delay. The development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.
Status Authors Coach DRIs Owning Stage Created
proposed devops verify -

GitLab Secrets Manager ADR 003: Go로 Secrets Manager 구현

ADR-002에서 GCP 서비스와 통합해야 하는 필요성을 강조한 뒤, GitLab Secrets Manager Service(GSMS)를 구축하기 위해 어떤 기술 스택을 사용할지 결정해야 합니다.

맥락

GitLab에서는 보통 GitLab Rails 주변에 Go로 위성 서비스를 구축합니다. 이 기술은 특히 동시성과 캐싱을 많이 활용할 수 있는 서비스에 적합합니다. 여기서 캐시는 비동기적으로 무효화/새로 고칠 수 있습니다.

Go 기반의 GCP KMS 클라이언트 라이브러리도 KMS에 신뢰할 수 있는 인터페이스를 노출하는 것으로 보입니다.

결정

Go로 GitLab Secrets Manager Service를 구현합니다. 위성 서비스에서 공통 기능을 제공하는 최소한의 라이브러리로 labkit을 사용합니다.

결과

GitLab Secrets Manager 기능을 소유할 팀은 Go 전문성을 더욱 갖추어야 할 것입니다.

대안

Ruby로 GitLab Secrets Manager Service를 구현하는 것을 고려했지만, Ruby를 사용하면 충분히 효율적인 서비스를 구축할 수 없을 것으로 판단했습니다.