Deno 팀, Cloudflare 종속 없는 자체 호스팅 분산 Durable Objects 'celld' v0.1.0 공개
- celld는 Deno 팀이 만든 오픈소스 프로젝트로, Cloudflare Workers의 Durable Objects를 자체 인프라에서 구현한 분산 시스템임
- 각 객체(cell)는 이름으로 식별되는 독립 SQLite 데이터베이스이며 사용자가 소유한 S3 호환 버킷에 복제되고, 별도 컨트롤 플레인이나 합의 알고리즘 없이 노드들이 이 버킷 하나로만 조정됨
- V8 아이솔레이트 기반이라 유휴 비용이 매우 낮고, deno_core 없이 새로 만든 런타임을 사용함
- v0.1.0에서 로드 셰딩이 재구축되어 상주 셀 한도가 하드캡으로 바뀌고 RSS/CPU 압박 기반으로 셰딩이 작동하며 기본값은 가용 메모리 80%, 라이선스는 Apache-2.0으로 변경됨
- PR을 비활성화하고 git format-patch 방식만 받는데, 코딩 에이전트가 만든 저맥락 대형 변경이 유지보수 부담을 키운다는 이유를 명시함
Hacker News opinions
Cloudflare OS 블로그 글이랑 타이밍 겹치는 게 신기하네. celld는 V8 아이솔레이트 기반이라 유휴 비용이 엄청 낮은 거고, deno_core 없이 완전히 새 런타임을 만든 거임. 메모리 크런치 시대에 딱 맞게 나온 느낌이라 신기함.
이거 완전 옛날 SOA 느낌인데, 데이터 교환이 서비스만큼이나 확률적이 되는 구조네.
이 정도 규모 줄인 건 진짜 놀라운데.
spot instance에서 돌릴 방법만 있으면 완벽할 듯.
spot instance 죽으면 람다가 새 인스턴스 띄워주는 방식 쓰면 되지 않나, 항상 하나는 떠 있게.
'컨트롤 플레인도 합의도 없다'면서 결국 S3가 그 역할 하는 거 아님? 그냥 스택 아래로 떠넘긴 거지.
Cloudflare는 전 세계 즉각적인 지역간 동기화 되는데 celld로 그거 하려면 대륙마다 베어메탈 사야 하나 싶음.
durable object는 원래 생성된 데이터센터에 고정되는 거라 애초에 geo-sync 개념이 아님.
S3 CAS 기반 코디네이션은 대부분 조직에 이미 있는 흔한 인프라라 오히려 괜찮은 선택이고, litestream으로 분산 얻은 것도 좋은 픽임. V8 샌드박싱 덕에 VM 없이도 공유 호스팅에서 잘 돌아감.
celld가 Cloudflare 완전 대체품은 아니고 한 리전에서 워커 여러 개 돌리고 싶은 사람용인 듯.
Cloudflare Workers/Durable Objects는 대부분의 사용 사례에서 과한 스펙이고, 그 과한 지점이 바로 celld가 들어맞는 자리임.
드디어 특정 벤더에 안 묶인 durable object 구현이 나왔네. 이름으로 식별되고 S3 호환 버킷에 복제되는 자체 SQLite DB라는 개념 자체가 강력하고 단순함.
S3 설정 없이 로컬에서 바로 돌려볼 수 있으면 좋겠는데.
그런 용도면 Wrangler가 더 나을 수도.
celld랑 workerd 차이가 뭐임?
workerd에는 스케줄러가 없음, 노드 간 배치를 담당하는 게 celld의 핵심임. 각 durable object의 DB는 오브젝트 스토리지에 있고 RPO=0을 보장함.
PR을 아예 막아놓은 게 눈에 띄네, 코딩 에이전트가 만든 맥락 없는 대형 패치 막으려는 거고 git format-patch로 보내라는 거임.
그럼 이제 개발자 메일링 리스트 부활하는 거 아니냐.