次のセッションは David Aiken によるスケーラブルなクラウドアプリケーションの構築です。
David Aiken、超おちゃめ。
まずはインスタンスの増加によるスケールアウトについて。
スケールアウトは管理ポータルからでもインスタンス数を変更することで簡単に行えます。
その際、セッション状態の共有が必要であればAppFabric Cacheサービスなどを使ってセッション情報を共有する必要があります。
スケールアウトすることでロードテストした際、スループットが向上しています。
お次はタスクの分離。重い処理をキュー経由でバックグラウンドのワーカーロールに任せることでフロントの処理を軽くします。
今までリクエストを受けてそのままシーケンシャルに処理していたのをQueueにメッセージを投げて処理を委譲しています。
基本的に非同期になるので即結果を得ることはできませんがタスクを分離できるのでクライアントへのレスポンスはよくなります。
3つ目は静的コンテンツのキャッシュについて
コンテンツをサーバー上でキャッシュさせるだけでなくCDNを利用することで低レイテンシでユーザーにキャッシュされたコンテンツを提供することができます。
4つ目はTraffice Managerによる拠点間の冗長化とスケールアウト。
Traffice ManagerはDNSのレコードをうまく管理することでクライアントに近いデータセンターに接続するように応答を返したり、アプリがダウンした場合に別の拠点のアプリに振り替えたりすることができます。
デモでは実際にダウンさせて振り返る様子を。まぁDNS絡みのLiveデモはちょっとしんどいですよね…w
5つ目はSQL Azure Data Syncによるデータの同期。
アプリケーションはデータセンターまたがってスケールアウトできてもデータが1か所のままだとスケールアウトならないですよね。ということでData Syncつかって同期とればいいよ!という感じ。
といった5つの考え方の説明でした。
まぁあくまで概要なので、こういう考え方なりを念頭に置いて自分たちのアプリケーションに適切に適用しないといけないのは当然ですがデモもあるしわかりやすいんじゃないでしょうか。