Azureアーキテクチャガイドまとめ 3 【Webキューワーカー】

はじめに

Azureクラウドアプリケーションアーキテクチャガイドより、7つあるアーキテクチャスタイルの一つ、Webキューワーカーに関してまとめます。

※前回記事

Azureアーキテクチャガイドまとめ 1 【はじめに】

Azureアーキテクチャガイドまとめ 2【N層】

概要

このアーキテクチャスタイルのコアコンポーネントは以下の3点。

クライアント要求にこたえるWebフロントエンド

バッチジョブを実行するワーカー

もしくはCPUを集中的に使用するタスク

非同期メッセージキュー

これらに加えて、一般的に以下のコンポーネントが組み込まれます。

システムの要件にフィットする範囲で、特定の機能を分離し、各種マネージドサービスを組み合わせる、というイメージです。

1つまたは複数のデータベース

DB読み取り高速化のためのキャッシュ

静的コンテンツを提供するCDN

1つまたは複数のデータベース

DB読み取り高速化のためのキャッシュ

静的コンテンツを提供するCDN

構成図は以下の通り。

以下のような特徴を持つアプリケーションに適しています。

・比較的単純なドメインのアプリケーション

・時間のかかるワークフローやバッチ操作があるアプリケーション

利点

・理解しやすい比較的単純なアーキテクチャ

・展開と管理の容易さ

・フロントエンドとワーカーは独立に拡張可

・懸念事項の明確な分離

課題

情報の入出力が多いコンポーネントでは、システムの要望に応じてコードが肥大化しやすい傾向があります。

・フロントエンドとワーカーが、複数の機能を持った単一のコンポーネントになりやすい (= モノリシックコンポーネント)

・フロントエンドとワーカーがデータスキーマやコードモジュールを共有している場合、隠れた依存関係が存在する可能性あり

ベストプラクティス

各マネージドサービスでベストプラクティスが用意されています。

・適切であれば、複数のストレージ技術を混在させる

・以下のベストプラクティス設計に準ずる

API 設計のベストプラクティス

自動スケールのベストプラクティス

キャッシングのベストプラクティス

CDN のベストプラクティス

ジョブに最適なデータストアの使用 データのパーティション分割のベストプラクティス

対応するAzureサービス

核となるサービスは、App Serviceです。

WebjobsはApp Serviceのサービスの一つで、ワーカーの役割を果たします。これらをQueue StorageもしくはService Busでつなげる形です。

アイコンと概要をまとめます。

先ほどの構成図にあるアーキテクチャを組んだ場合、以下のような構成になります。

※ 図ではDocumentDBになっていますが、現在はCosmosDBとしてリニューアルされていますのでご注意を。

まとめ

Webキューワーカーの特徴と、使用されるサービスについて見ていきました。次回はCQRSについてまとめます。お楽しみに!

参考リンク

Azureアーキテクチャセンター

Azureクラウドアプリケーションアーキテクチャガイド ダウンロードページ

この記事を書いた人

azure-recipe-user