!원문 캡처 · blog.cloudflare.com

Deno 팀이 Cloudflare에 합류해 Workers 런타임 workerd와 Deno의 자체 호스팅 플랫폼 celld를 결합한다. 양측은 이를 통해 Durable Objects를 여러 머신에서 확장해 운영할 수 있도록 하고, Workers 프로그래밍 모델을 자체 인프라에서도 쓰기 쉽게 만들 계획이다.

Deno 공동 창립자 Ryan Dahl은 Deno 블로그 글에서 합류 배경을 설명했다. 그는 Durable Objects가 단일 스레드 JavaScript 실행 환경과 각 객체별 SQLite 데이터베이스를 제공해, 예를 들어 채널마다 객체를 두는 채팅 앱을 확장하기 쉽게 만든다고 밝혔다. 이 추상화 위에 큐, KV, Durable Execution, Git 저장소 같은 서비스도 구축할 수 있다고 설명했다.

다만 Cloudflare 밖에서 이 모델을 운영하기는 어려웠다. workerd는 오픈소스지만 Durable Objects 지원은 단일 인스턴스로 제한돼 확장할 수 없었다. Dahl은 celld를 Rust로 작성된 단일 바이너리로 만들고, 외부 서비스 의존성을 객체 저장소 하나로 두는 방향을 택했다고 밝혔다. 운영자는 celld 인스턴스 여러 개와 객체 저장소 버킷 하나를 관리하는 구상을 제시했다.

Cloudflare의 Distinguished Engineer Kenton Varda는 celld가 Workers와 Durable Objects를 호환되게 구현하면서 자체 호스팅과 확장에 초점을 맞춘 점을 합류의 계기로 들었다. 그는 Workers가 다른 클라우드 플랫폼과 다른 설계인 것은 사용자를 가두기 위해서가 아니라, Cloudflare가 더 나은 프로그래밍 모델이라고 믿기 때문이라고 주장했다. Cloudflare는 여러 지역에서 애플리케이션을 운영하는 비용과 효율성, 외부 리소스 연결을 설정하는 방식, 실시간 협업 및 분산 시스템 구축을 그 장점으로 꼽았다.

Cloudflare는 workerd가 실제 서비스에 쓰는 런타임과 같은 코드라고 밝히며, 이미 이를 이용해 다른 곳으로 이전한 고객도 있다고 설명했다. 반면 자체 호스팅 생태계와 도구가 충분하지 않았고, 특히 Durable Objects의 단일 인스턴스 구현이 운영 환경에서 확장되지 않는 한계가 있었다고 인정했다.

계획에 따르면 Ryan Dahl과 Bert Belder가 workerd의 자체 호스팅을 정식 지원 방식으로 만드는 작업을 이끈다. celld의 코드와 아이디어를 workerd에 통합할 예정이며, Cloudflare는 향후 몇 달 안에 추가 내용을 발표하겠다고 밝혔다. 그 전에도 celld나 workerd로 자체 호스팅을 시작할 수 있다고 안내했다.

관련 자료: celld, workerd 저장소, Cloudflare Workers 작동 방식, Workers의 live 환경 설계와 bindings, Durable Objects 설명, Workers for Platforms, Shopify의 Oxygen 구축 사례, workerd 오픈소스 발표.