Top Banner
44

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

Jan 07, 2017

Download

Technology

Naoki SATO
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: [Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~
Page 2: [Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~

目的

ゴール

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

開発言語

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

ネットワークサービス

コンピューティング

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

データサービス

データ周辺サービス

仮想ネットワーク(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

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

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 パターン

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

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

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

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

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

DB × 1AP × 4

ILB

社内 LAN

ルータ

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

ILB

A)

B)

AzureWeb × 2

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

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

DB × 1AP × 4

ILB ILB

AzureWeb × 2

社内 LAN

ルータ

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

社内 LAN

ルータ

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

DB × 1AP × 4

ILB ILB

AzureWeb × 2

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

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

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

管理ポータル

Throttling パターン

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

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

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

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

Competing Consumers パターン

AP × 4

ILB ILB

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

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

データストアキャッシュ

DB × 1

社内 LAN

ルータ

ILB

Cache-Aside パターン

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

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

証券システム 概要

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

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

証券システム 構成例

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

Azure

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

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

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

Queue-Based Load Leveling パターン

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

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

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

Retry パターン

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

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

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

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

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

Circuit Breaker パターン

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

縮退処理( Open )

準縮退処理( Half-Open)

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

Circuit Breaker パターン

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

通常処理( Close )

準縮退処理( Half-Open)

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

Circuit Breaker パターン

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

通常処理( Close )

縮退処理( Open )

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

Circuit Breaker パターン

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

縮退処理( Open )

準縮退処理( Half-Open)

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

Circuit Breaker処理

Closed 状態

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

結果を返す

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

Exit/

Open 状態

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

Do失敗を返す

Exit/

Half-Open 状態

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

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

else失敗を返す

Exit/

成功の閾値に達した

失敗の閾値に達した

操作が失敗した

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

Circuit Breaker パターン

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

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

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

Sharding パターン

シャーディング処理

一般的なゲームの処理

シャーディング処理

一般的なゲームの処理

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

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

# 観点 概要

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

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

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

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

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

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

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

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

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

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

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

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

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

https://msdn.microsoft.com/dn630664

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