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