クラウドデザインパターンのススメ
株式会社ネクストスケープ
アーキテクト 上坂貴志
2015/02/27
SanSan x ネクストスケープ合同勉強会
アジェンダ
• AWS, Azureのクラウドデザインパターンの違い
• Azureクラウドデザインパターンについて
1. SLA100%未達への対処
1. Retryパターン
2. Circuit Breakerパターン
3. Scheduler Agent Supervisor パターン
2. スケーリングへの対処
1. Compute Resource Consolidationパターン
2. External Configuration Storeパターン
3. Runtime Reconfiguration パターン
3. 実装例
1. Retry パターン
2. Circuit Breaker パターン
自己紹介
• 上坂貴志(うえさかたかし)
• 学生時代にWindows95発売してたっけ?な年齢
• 学生時代のアルバイトがプログラマーだったのが運のつ
き
• 保守運用があまりに辛くて、どうしたものかとWebを彷
徨っていた頃に流行っていたのがITアーキテクトという
言葉
• これぞ銀の弾丸か!と思ってITアーキテクトになろうと
それ以来、孤軍奮闘
• そんな訳でいまだにアーキテクチャと格闘しています。
(もはや趣味か)
• 重要なのはシステムアーキテクチャじゃなくて、ソフト
ウェアアーキテクチャである、と思っています
• ここ数年はクラウドどっぷりなシステム開発
• 機会があればセッションしてます
• 過去のセッション
 BuildInsider オフラインイベント
 Qcon
 デブサミ夏・冬 etc
 株式会社ネクストスケープ
人材募集中です!
AWSクラウドデザインパターンと
Azureクラウドデザインパターンの違い
AWS CDP
 2012年発表
 システムアーキテクチャパ
ターン集
 クラウドの啓蒙を目的として
いる
 クラウド入門に最適
Azure CDP
 2014年発表
 PaaSを前提とした設計・実装
パターン集
 オンプレでも使えるパターン
が多い
 クラウドの弱点に着目
SLA100%未達への対処
SLA100%未達への対処
Retry パターン
SLA100%未達への対処
Circuit Breaker パターン
成功の閾値に
達した
失敗の閾値に
達した
操作が失敗した
タイムアウトタ
イマーが期限切
れになった
SLA100%未達への対処
Scheduler Agent Supervisor パターン
スケジューラは
ワークフローとして
タスクを構成する
ステップを調整し、
実行する
スケジューラは
開始時と完了時に、
それぞれのステップの
状態を状態ストアに
保持する
スケジューラ
状態ストア
スーパーバイザー
エージェント
エージェント
リモート
ソース
リモート
ソース
スーパーバイザーは、
状態ストアにあるステップ
の状態を監視し、ステップの
状態を適宜更新する
スーパーバイザーは、
スケジューラーが失敗した
ステップの再試行を
要求する
ワークフロー内のステップはリ
モートリソースにアクセスするか、
リモートサービスを呼び出すよう
にエージェントに要求を送信でき
る。リクエストとレスポンスは通
常、非同期に送信される。
エージェントはリモートソースま
たはリモートサービスにアクセス
する。エラー処理やリトライのロ
ジックはエージェントが持つべき
である。
スケーリング時の問題対処
スケーリング時の問題対処
OnStart時
にリソース
の初期化
Runでタスク
を作成して完
了を待つ
OnStop時にリソース
のクリーンアップ
Compute Resource Consolidation パターン
スケーリング時の問題対処
External Configuration Store パターン
外部の構成ストア
代替オプション
スケーリング時の問題対処
Runtime Reconfiguration パターン
構成情報
update
構成情報
ファイル
実行中に
変更を反映
アプリケーション
再起動
実行中の反映が
できないので
変更をキャンセル
まとめ
• クラウドデザインパターンを知っておけば、典
型的な失敗を防げる。
• 典型的な失敗を知らないと・・・
– 運用に入ってから気づく
– 修正範囲が広くて後から直すのは大変
• Retry処理なんて、あちこちに入れないといけない
– とてもつらい運用が待っている
• しばしば監視が必要。何かあったら手動リカバリ
そしてクラウド嫌いになる・・・かも。
実装例
• 実演します
ありがとうございました!
ネクストスケープうえさかでした!

クラウドデザインパターンのススメ