0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-07-26

はじめに

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

連載目次

Azureアーキテクチャガイドまとめ 1 【はじめに】
Azureアーキテクチャガイドまとめ 2【N層】
Azureアーキテクチャガイドまとめ 3 【Webキューワーカー】 → 本記事
Azureアーキテクチャガイドまとめ 4 【マイクロサービス】
Azureアーキテクチャガイドまとめ 5 【CQRS】
Azureアーキテクチャガイドまとめ 6 【イベントドリブンアーキテクチャ】
Azureアーキテクチャガイドまとめ 7 【ビッグデータアーキテクチャ】
Azureアーキテクチャガイドまとめ 8 【ビッグコンピューティングアーキテクチャ】

概要

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

  • クライアント要求にこたえるWebフロントエンド
  • バッチジョブを実行するワーカー
    • もしくはCPUを集中的に使用するタスク
  • 非同期メッセージキュー

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

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

  • 1つまたは複数のデータベース
  • DB読み取り高速化のためのキャッシュ
  • 静的コンテンツを提供するCDN

構成図は以下の通り。

image.png

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

  • 比較的単純なドメインのアプリケーション
  • 時間のかかるワークフローバッチ操作があるアプリケーション

利点

  • 理解しやすい比較的単純なアーキテクチャ
  • 展開と管理の容易さ
  • フロントエンドとワーカーは独立に拡張可
  • 懸念事項の明確な分離

課題

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

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

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

ベストプラクティス

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

対応するAzureサービス

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

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

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

03.jpg

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

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

image.png

まとめ

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

参考リンク

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

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?