44

[Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~

Embed Size (px)

Citation preview

目的

ゴール

クラウド知識の無いマネージャ

既存システムをクラウドに移行するのだ!運用が効率化し、システム拡張も容易になるはずだ

今のシステム構成はクラウド移行むずいのでは?

クラウドを聞いたことのある経営者

クラウドを利用すればコストが抑えられるそうだ!これからはクラウドだ!!

それ、うちとシステム構成が全然違う事例じゃん

クラウド知識が多少ある経営者

クラウドを利用すればリソース拡張も余裕!今までのサイジング工数、無駄なハード購入ともおさらばだ!

それをどうやって実現するのさぁ・・・

開発言語

アプリケーションサービス

ネットワークサービス

コンピューティング

認証 システム連携 キャッシュ

データサービス

データ周辺サービス

仮想ネットワーク(VNet to VNet)

仮想ネットワーク(Site to Site)

仮想ネットワーク(Point to Site)

CDN キャッシュサービスバス キューBizTalkサービス

多要素認証Azure Active

Directory

アクセス コントロールサービス

DRサービス

Webサイト(PaaS)

クラウドサービス(PaaS)

仮想マシン(IaaS)

モバイルサービス(PaaS)

Blob テーブル SQLデータベース

マシンラーニング

StorSimple

メディアサービスVisual Studioオンライン

API管理 通知ハブ スケジューラ オートメーション サイト リカバリー

Intelligent Systems Service (IoT) HPC

ExpressRoute(専用線)

Azureサーチ

Traffic Manager

RemoteApp

Azureバックアップ

HDInsight(Hadoop)

ドキュメントDB

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13. Leader Election パターン

14. Materialized View パターン

15. Pipes and Filters パターン

16. Priority Queue パターン

17. Queue-Based Load Leveling パターン

18. Retry パターン

19. Runtime Reconfiguration パターン

20. Scheduler Agent Supervisor パターン

21. Sharding パターン

22. Static Content Hosting パターン

23. Throttling パターン

24. Valet Key パターン

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

https://github.com/mspnp/azure-guidance

DB × 1AP × 4

ILB

社内 LAN

ルータ

キャンペーンシステム概要

ILB

A)

B)

AzureWeb × 2

クラウド利用時に良くあるハマりポイント

DB × 1AP × 4

ILB ILB

AzureWeb × 2

社内 LAN

ルータ

社内 LAN

ルータ

クラウドの特性を生かした解決方法

DB × 1AP × 4

ILB ILB

AzureWeb × 2

典型的な解決法は名づけられたパターンとガイダンスが存在する!①

管理ポータル

Throttling パターン

閾値に達した際、即座にはリソースが確保されない

本来は T1 時点でリソースが欲しいが、リソースが追加されるのは T2 時点

T1 ~ T2 区間でのリソース使用量をThrottling パターンで制御

Competing Consumers パターン

AP × 4

ILB ILB

高負荷処理をキューに分散

データストアキャッシュ

DB × 1

社内 LAN

ルータ

ILB

Cache-Aside パターン

キャッシュを利用してオンプレミスのデータを格納

証券システム 概要

日経QUICK、ブルームバーグ、ロイター等情報提供ベンダ

証券システム 構成例

日経QUICK、ブルームバーグ、ロイター等情報提供ベンダ

Azure

証券システムで利用するパターン、ガイダンス①

Queue-Based Load Leveling パターン

様々な頻度でリクエストが送付される

メッセージは一定の頻度で処理される

Retry パターン

※注 長く続く障害に対しては、Circuit Breaker パターンを適用することで縮退した機能を提供する

エラーが一定回数になるまでリトライ処理を行う

リトライ処理は一定の間隔をあけて再送する

深刻なエラーの場合はリトライ処理を停止する

Circuit Breaker パターン

Circuit Breaker 処理一般的な業務処理

縮退処理( Open )

準縮退処理( Half-Open)

Circuit Breaker パターン

Circuit Breaker 処理一般的な業務処理

通常処理( Close )

準縮退処理( Half-Open)

Circuit Breaker パターン

Circuit Breaker 処理一般的な業務処理

通常処理( Close )

縮退処理( Open )

Circuit Breaker パターン

Circuit Breaker 処理一般的な業務処理

縮退処理( Open )

準縮退処理( Half-Open)

Circuit Breaker処理

Closed 状態

Entry/ 失敗数カウンターをリセットDo/if 操作の呼び出しに成功

結果を返す

else失敗カウンターをインクリメント結果を返す

Exit/

Open 状態

Entry/ タイムアウトタイマーを開始

Do失敗を返す

Exit/

Half-Open 状態

Entry/ 成功数カウンターをリセットDo/if 操作の呼び出しに成功

成功数カウンターをインクリメント結果を返す

else失敗を返す

Exit/

成功の閾値に達した

失敗の閾値に達した

操作が失敗した

タイムアウトタイマーが期限切れになった

Circuit Breaker パターン

スマートフォンゲームで利用するパターン、ガイダンス①

Sharding パターン

シャーディング処理

一般的なゲームの処理

シャーディング処理

一般的なゲームの処理

# 観点 概要

1 可用性 システムの稼働率向上

2 データ管理 複数拠点間のデータ処理

3 設計及び実装 品質、総所有コストの改善

4 メッセージング コンポーネントの疎結合化

5 管理および監視 リモートの監視強化

6 パフォーマンスおよびスケーラビリティ

ピーク変動、マルチテナント対応

7 回復性 システム障害の検知、回復

8 セキュリティ 情報漏えい、紛失対策

http://ec.nikkeibp.co.jp/item/books/P98330.html

https://github.com/mspnp/azure-guidance

https://msdn.microsoft.com/dn630664