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 data stores | - |
Cells ADR 001: Cloudflare Workers를 사용한 라우팅 기술
컨텍스트
https://gitlab.com/groups/gitlab-org/-/epics/11002에서 먼저 여러 옵션을 논의하고 우리의 상위 2대 기술, Cloudflare Worker 및 Istio를 조사했습니다.
우리는 Cloudflare Worker PoC를 선호하였고 다중 라우팅 규칙을 갖기 위해 Cell 1.0 제안로 PoC를 확장했습니다. 이러한 PoC는 https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142397에서 승인된 라우팅 서비스 청사진을 검증하는 데 도움이 되었으며, 요청 버퍼링 및 라우트 학습을 거부했습니다.
결정
Cloudflare Workers를 사용하여 JavaScript/TypeScript로 요청을 올바른 Cell로 라우팅하는 데 사용하며, 승인된 라우팅 서비스 청사진을 따릅니다.
Cloudflare Workers는 Self-managed
를 제외한 모든 요구 사항을 충족합니다. Self-managed
는 우선순위가 낮은 요구 사항입니다.
Cloudflare workers에 대한 자세한 분석은 https://gitlab.com/gitlab-org/gitlab/-/issues/433471#results를 참조하십시오.
결과
- 모든 Self-managed 고객을 지원하지 않을 것을 알고 기술 스택을 선택하게 될 것입니다.
- Cloudflare와의 벤더 락이 더 많아지지만 우리는 이미 그들에게 많은 의존성을 가지고 있습니다.
- GCP 외부의 새로운 플랫폼에서 컴퓨팅을 실행하지만 이미 Cloudflare를 사용하고 있습니다.
- 결정이 변경된다면 라우팅 서비스를 다시 작성해야 할 수도 있습니다. 하지만 라우팅 서비스가 매우 작고 간단하다고 예상하기 때문에 큰 리스크가 될 것으로 예상하지는 않습니다. (코드 최대 1000줄)
대안
- Istio를 고려했지만 적합하지 않은 것으로 결론을 내렸습니다.
- 요청 버퍼링을 고려했습니다.
- 라우트 학습을 고려했습니다.
- Cloudflare workers에 WASM을 사용하는 대안인데, 잘못된 선택입니다: https://blog.cloudflare.com/webassembly-on-cloudflare-workers#whentousewebassembly