コールと従来のSFU
Cloudflare Callsは、分散型リアルタイムデータプレーンを活用することで、リアルタイムアプリケーションの構築におけるパラダイムシフトを表しています。これは、従来の地理的制約やスケーラビリティの懸念を超えた、シームレスなリアルタイムコミュニケーション体験を提供します。Callsは、地域スケーリングやサーバー管理の複雑さに深入りすることなく、WebRTC機能をサーバー・クライアントアーキテクチャに統合したい開発者向けに設計されています。
選択的フォワーディングユニット(SFU)は、ビデオ通話の参加者にメディアストリームを選択的に転送することでWebRTC接続を管理する重要な役割を果たします。しかし、その中央集権的な性質は固有の制限をもたらします:
-
地域依存性: 中央集権型SFUは特定の地域での展開を必要とし、選択された地域に近いユーザーを除いて、グローバルユーザーに対してレイテンシの問題を引き起こします。
-
スケーラビリティの懸念: 中央集権型SFUをグローバルな需要に合わせてスケールさせることは困難で非効率的であり、しばしば追加のインフラストラクチャと複雑さを必要とします。
Cloudflare Callsは、Cloudflareのグローバルネットワークインフラストラクチャを活用することで、これらの制限に対処します:
-
地域なしのグローバル分散: 従来のSFUとは異なり、Cloudflare Callsは地域の制約なしにグローバルに運用されます。Cloudflareの250以上のロケーションからなる広範なネットワークを利用して、低レイテンシのビデオ転送を実現し、世界中のユーザーにとって迅速かつ効率的です。
-
分散型アーキテクチャ: Calls専用のサーバーは存在しません。Cloudflareのネットワーク内のすべてのサーバーがCallsの処理に貢献し、スケーラビリティと信頼性を確保します。このアプローチは、1.1.1.1 DNSやCloudflareのCDNなど、Cloudflareの製品の分散型の性質を反映しています。
リアルタイムコミュニケーションセッションを開始するために、エンドユーザーのクライアントは最寄りのCloudflareロケーションにWebRTC PeerConnectionを確立します。この接続は、最適なレイテンシを実現するためにAnycastルーティングの恩恵を受けます。
-
シグナリングのためのHTTPS API: Cloudflare Callsは、シンプルなHTTPS APIを使用してシグナリングを簡素化します。このAPIは、メディアストリームの開始と調整を管理し、クライアントが新しいMediaStreamTracksをプッシュしたり、サーバーからこれらのトラックを要求したりできるようにします。
-
効率的なメディア処理: 従来のアプローチでは、異なるクライアントからの異なるメディアストリームのために複数の接続が必要ですが、Cloudflare Callsはクライアントごとに単一のPeerConnectionを維持します。この合理化されたプロセスは、複雑さを軽減し、メディアのプッシュとプルを単一の接続で処理することでパフォーマンスを向上させます。
Cloudflare Callsは、状態管理と参加者追跡の責任をアプリケーション層に委任します。開発者は、参加者の参加やメディアストリームの更新などのイベントを処理するためのロジックを設計することができ、アプリケーション内でのカスタマイズされた体験を創造する柔軟性を提供します。
Cloudflare Callsをアプリケーションに統合することは、地域スケーラビリティやサーバー管理の障害を取り除き、世界中のユーザーに魅力的なリアルタイム体験を提供することに集中できる、簡単で効率的なプロセスを約束します。