CloudFlare, Durable Objects 베타 공개
(blog.cloudflare.com)- Serverless를 위한 'Unique Durable Objects'
ㅤ→ Objects : OOP 개념 그대로, 클래스의 인스턴스이며 코드와 상태 포함
ㅤ→ Unique : UUID를 가짐. 전세계 다른 Worker에서 ID만 알면 해당 개체로 메시지 가능
ㅤ→ Durable : 일반 객체와 달리 디스크에 영구적인 상태 저장 가능. 레이턴시 없이 접근하여 사용
- 두개의 메인 기능
ㅤ→ Storage : 강력한 Transactional Consistency 제공. 큰 DB를 여러개의 작은 단위로 분리 가능. 유지 관리 부담없이 확장
ㅤ→ Coordination : 서버리스 요청들은 보통 무작위로 로드밸런신 되므로 두개의 클라이언트가 동일한 워커와 연결되는게 불가능 했지만, 이제 가능.
ㅤㅤ즉, 실시간 채팅, 공동 편집, 화상 회의, Pub/Sub 메시지 큐, 게임 세션등을 서버리스에서 구현 가능
ㅤㅤWebSocket을 사용하려면 이런 Coordnation이 필요했는데 DO를 통해 가능해지면서 Workers 에 WebSocket 도 지원 시작
- Durable Objects 는 Region 개념이 없이 전세계 대상 ( 클라우드 플레어가 알아서 가까운 위치로 전송하고 관리 )
적용 분야
- 킬러앱은 대규모 인원이 사용하는 실시간 문서편집 협업도구 같은 것이 될 것
- Atomic Counter : 여러 클라이언트가 동시에 요청해도 증가/감소 에 대한 손실이 없는 동시 처리 카운터
- 채팅 : 초대규모 대화방도 몇백줄의 코드로 가능하며, 각 IP당 레이트 리밋도 가능
- 쇼핑카트, 게임서버, IoT Coordination, 소셜 피드, 코멘트/채팅 위젯
Durable Objects 의 미래 : 진정한 Edge 데이터베이스
현재는 베타 초대를 받아야 사용 가능
가격은 아직 고민중이지만, AWS DynamoDB 나 Google Cloud Firestore 보다 저렴할 예정이라고 ( PM인 Greg 가 HN에 남긴 댓글에서 )
서버리스가 대부분 Stateless 한 것들에 주로 적용되어 왔는데, Coordination 필요한 부분들까지 포함하도록 더 확장하는 거네요.
요즘 클라우드플레어의 행보는 무척 흥미롭습니다.
CloudFlare, Workers Unbound 서버리스 베타 시작 https://news.hada.io/topic?id=2543
CloudFlare가 Workers의 콜드 스타트 시간을 0으로 만든 방법 https://news.hada.io/topic?id=2567
Cloudflare가 자체 글로벌 네트웍을 이용하는 24시간 생방송 TV서비스 런칭 https://news.hada.io/topic?id=2227