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. The development, release, and timing of any products, features, or functionality may be subject to change or delay and 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)를 구축하는 데 사용할 기술 스택을 결정해야 합니다.

Context

GitLab에서는 일반적으로 GitLab Rails 주변에 Go로 위성 서비스를 구축합니다. 이는 특히 동시성 및 캐싱을 적극적으로 활용할 수 있는 서비스에 대한 기술 선택으로 특히 좋은 선택입니다. 캐시는 비동기적으로 무효화/새로 고침될 수 있습니다.

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

Decision

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

Consequences

GitLab Secrets Manager 기능을 담당할 팀은 Go 전문 지식을 더 많이 습득해야 합니다.

Alternatives

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