Cloudflare、分散したCDNエッジ間でも強い一貫性を提供する「Durable Objects」正式リリース。ステートフルな分散アプリが容易に

2021年11月17日

Cloudflareは、分散したCDNエッジ間でも強い一貫性を維持するオブジェクトを提供する「Durable Objects」の正式リリースを発表しました

Cloudflareは、世界中に分散されたCDNエッジにJavaScriptのコードを配置し実行できる「Cloudflare Workers」を提供しています。

これによってクライアントに対して非常に高速にレスポンスを返すことができ、広範囲に分散された高い冗長性を持つ分散システムが構築可能になります。

参考:JavaScriptのコードとService Workerをユーザーに近いCDNのエッジで実行可能。Cloudflareが「Cloudflare Workers」を提供開始

ただしCloudflare Workersは分散したCDNエッジで実行されるという性質上、全体として一貫した状態を持つ、いわゆるステートフルなアプリの実現は容易ではありませんでした。

例えばCloudflare Workersには、手軽に扱えるNoSQLデータベースであるキーバリューストアのWorkers KVが用意されています。

しかしWorkers KVは結果整合性を採用しているため、別々のCDNエッジからの処理要求を受け取ると、後から書き込まれたデータがすでに書き込まれていたデータを上書きするなどの可能性があります。

これに対して、今回リリースされたDurable Objectsは強い一貫性を提供するため、別々のCDNエッジからの処理要求に対して、つねに適切な順番でデータが処理され、どの瞬間もデータの矛盾が生じないことが約束されています。

つまり分散されたCDNエッジ上で実行されるCloudflare Workersのアプリケーションでも、Durable Objectsを用いることで簡単に全体として一貫性のあるステートフルな振る舞いをするアプリケーションが実現できるということです。

下記はDurable Objectsが発表されたときのCloudflareのブログ「Workers Durable Objects Beta: A New Approach to Stateful Serverless」からの引用です。

Durable Objects provide a truly serverless approach to storage and state: consistent, low-latency, distributed, yet effortless to maintain and scale. They also provide an easy way to coordinate between clients, whether it be users in a particular chat room, editors of a particular document, or IoT devices in a particular smart home.

Durable Objectsは、ストレージとステートに対して本当の意味でサーバレスなアプローチを提供します。それはつねに一貫性があり、低レイテンシで、分散されていながら維持や拡張が容易です。これにより複数ユーザーによるチャットルーム、複数ユーザーによるドキュメントの同時編集、複数のIoTデバイスを備えたスマートホームなどにおけるクライアント間の調停を容易にする方法を提供します。

Cloudflareは、チケット販売サイトのようなアクセスが集中するWebサイトに対して、その手前でユーザーのアクセスをいったん保留にし、世界中のユーザーからのアクセスを順番待ちにしてもらうことでWebサイトの負荷を下げる「Cloudflare Waiting Room」と呼ばれるサービスを提供しています。

Durable Objectsはすでに、このCloudflare Waiting Roomの背後で使われているとのことです。

Tags: クラウド Cloudflare

このエントリーをはてなブックマークに追加
ツイート
follow us in feedly





タグクラウド

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本