SlideShare uma empresa Scribd logo
1 de 56
Azure アーキテクチャー祭り
Cloud Design Patterns 編
Takekazu Omi
takekazu.omi@kyrt.in
2018/4/21 R1.0.0
Azure Architecture Center
https://docs.microsoft.com/ja-jp/azure/architecture/
2018/4/20 kyrt inc 2
Azure Architecture Center
kyrt inc 32018/4/20
Azure Application Architecture Guide
顧客とのエンゲージメントから学んだ実証済みのプラクティスに基づ
いた、スケーラブル、レジデント、可用性の高いアプリケーションを設
計するためのガイド
Azure Reference Architectures
Azureで推薦されるアーキテクチャセット。各アーキテクチャには、ベ
ストプラクティス、規範的な手順、展開可能なソリューションを提示
https://github.com/mspnp/reference-architectures
Cloud Design Patterns
クラウド内の信頼性の高いスケーラブルで安全なアプリケーションを
構築のためのデザインパターン集 +8 = 32
Cloud Design Patterns
クラウド設計パターン
2018/4/20 kyrt inc 4
2014年6月
 Microsoft patterns & practices
 Cloud Design Patterns: Prescriptive
Architecture Guidance for Cloud
Applications
 http://msdn.microsoft.com/en-
us/library/dn568099.aspx
 翻訳が、2014年6月に出ました
 クラウドデザインパターン Azureを例としたク
ラウドアプリケーション設計の手引き
 http://ec.nikkeibp.co.jp/item/books/P98330.html
 日経BP
kyrt inc 52018/4/20
概要
クラウドアプリケーション設計の頻出課題集
Software design pattern の Cloud Application 版
24のパターン
10のガイダンス
ポスター
 http://azure.microsoft.com/en-
us/documentation/infographics/cloud-design-patterns/
kyrt inc 62018/4/20
kyrt inc 72018/4/20
2018年4月現在
32パターン、8つのChallenge
 信頼性の高い、スケーラブルで安全なアプリケー
ションの構築
 問題、適用に関する考慮事項、 Azure に基づいた
例を説明
 幾つかのパターンには、Azure 上の実装コード サン
プルを含む
 パターンのほとんどは、クラウド プラットフォームに
非依存
kyrt inc 82018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/
8つのChallenge
Challengeを課題と訳すと超えがたい問題という風に感じませんか
2018/4/20 kyrt inc 9
とりあえず表にした
kyrt inc 102018/4/20
名前 内容
1 Availability 可用性
アプリケーションの可用性が最大限になるように設計および実装する。可用性は、システム エラー、インフラストラ
クチャの問題、悪意ある攻撃、およびシステムの負荷によって影響を受ける。
2 Data Management データ管理
データ管理は重要な要素であり品質属性のほとんどに影響する。 通常、パフォーマンス、スケーラビリティ、また
は可用性の理由から、データは複数のサーバーにまたがって保存されるが、これによって、様々な問題が発生す
る。データの分散配置は整合性と同期の必要性を生じさせる。
3
Design and
Implementation
設計と実装
コンポーネントの設計とデプロイの一貫性や統一性、管理と開発を簡素化する保守容易性、コンポーネントやサ
ブシステムを他のアプリケーションやシナリオで利用できる再利用性は、アプリケーションやサービスの品質と総
保有コストに大きな影響を及ぼす
4 Messaging メッセージング
クラウド アプリケーションのスケーラビリティでは、コンポーネントとサービスが 疎結合的に接続できるメッセージ
ング インフラストラクチャが重要です。 非同期メッセージングには多くの利点がありますが、メッセージの順序、有
害メッセージの管理、べき等など、課題も多くある。
5
Management and
Monitoring
管理と監視
クラウド アプリケーションは、リモートのデータセンターで実行され、自分でそのインフラストラクチャや、オペレー
ティング システムを、完全に制御することはできないため、オンプレミス よりも管理と監視は難しくなる。 アプリ
ケーションは、管理と監視に使用できる情報を公開する必要がある。
6
Performance and
Scalability
パフォーマンスとス
ケーラビリティ
パフォーマンスは、規定の期間内に任意の処理を実行するシステムの応答性を示し、スケーラビリティは、パ
フォーマンスに影響を与えずに負荷の増加を処理するか、または利用可能なリソースを容易に増やすことで対応
する能力である。 通常ワークロードやアクティビティのピークは変動しており、予測することは困難。(特にマルチ
テナント シナリオでは)このような環境では、アプリケーションは、要求に対応できるように制限範囲内でスケール
アウト、スケールインできることが要求される。
7 Resiliency 回復性
回復性とは、障害を正常に処理して復旧するシステムの機能。 クラウド ホスティングでは、マルチテナントのアプ
リケーションが多い、共有プラットフォームを使用する、リソースと帯域幅が競合する、インターネットで通信する、
コモディティ ハードウェア上で実行する、という特性がある。これらの特性は、一時的な障害と永続的な障害の両
方が発生しやすくなることを意味する。そのため 迅速かつ効率的に障害を検出して復旧することが、回復性を維
持する上で重要となる。
8 Security セキュリティ
セキュリティとは、設計された用途以外の悪意あるアクションや偶発的なアクションを防ぎ、情報の漏えいや損失
を防ぐシステムの機能。アプリケーションの設計とデプロイでは、悪意のある攻撃から保護し、承認したユーザー
のみにアクセスを制限し、機密データを保護する必要がある。
kyrt inc 112018/4/20
Availability -可用性
 システムが機能し動作している時間の割合
 稼働時間の比率として計測
 システム エラー、インフラストラクチャの問題、悪意ある攻撃、
およびシステムの負荷によって影響を受ける
 最大限になるように設計および実装する
 システム エラー、インフラストラクチャの問題、悪意ある攻撃、
およびシステムの負荷に影響される
kyrt inc 122018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/availability
Data Management -データ管理
 データ管理はクラウド アプリケーションの重要な要
素で、品質属性のほとんどに影響
 パフォーマンス、スケーラビリティ、または可用性の
要件から、データは分散してホストされる
 分散は、整合性の維持、同期の問題を生む
kyrt inc 132018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/data-management
Design and Implementation
-設計と実装
 設計要素
 コンポーネントの設計
 デプロイの一貫性、統一性
 管理および開発を容易にする保守性
 他のアプリケーションやシナリオでの再使用可能性
 設計および実装フェーズは、品質と総保有コストに大き
な影響がある
kyrt inc 142018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/design-implementation
Messaging -メッセージング
スケーラビリティでは、コンポーネントとサービ
スの疎結合にメッセージング インフラが重要
非同期メッセージングには多くの利点がある
が、メッセージの順序、有害メッセージの管理、
べき等など、課題も多い
kyrt inc 152018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/messaging
Management and Monitoring
-管理と監視
 クラウド アプリケーションは、リモートのデータセン
ターで実行
 インフラストラクチャや、オペレーティング システム
の制御は制限され、オンプレミス よりも管理と監視
は難しくなる
 アプリケーションも、管理と監視に使用できる情報を
公開する必要がある
kyrt inc 162018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/management-monitoring
Performance and Scalability
-パフォーマンスとスケーラビリティ
 パフォーマンスは、規定の期間内に任意の処理を実行する応答性
 スケーラビリティは、パフォーマンスに影響を与えずに負荷の増加
を処理、または利用可能なリソースを容易に増やすことで対応す
る能力
 通常ワークロードやアクティビティのピークは変動し、予測すること
は困難(マルチテナント シナリオ)
 アプリケーションは、要件に対応できるように制限範囲内でスケー
ルアウト、スケールインが要求
kyrt inc 172018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/performance-scalability
Resiliency - 回復性
 回復性とは、障害を正常に処理して復旧する機能
 クラウド ホスティングの特性
 マルチテナントのアプリケーションが多く共有プラットフォームを使用
 リソースと帯域幅が競合
 インターネットで通信
 コモディティ ハードウェア上での実行
 これらの特性は、一時的な障害と永続的な障害の両方が発
生しやすくなることを意味する
 迅速かつ効率的に障害を検出して復旧することが、回復性
を維持する上で重要
kyrt inc 182018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/resiliency
Security -セキュリティ
 セキュリティとは、設計された用途以外の悪意ある
アクションや偶発的なアクションを防ぎ、情報の漏え
いや損失を防ぐシステムの機能
 アプリケーションの設計とデプロイでは、悪意のある
攻撃から保護し、承認したユーザーのみにアクセス
を制限し、機密データを保護する必要がある
kyrt inc 192018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/security
Patternsと8つのChallenge
PatternとChallengeの表
2018/4/20 kyrt inc 20
とりあえず表にした
kyrt inc 212018/4/20
No Pattern Availability
Data
Manageme
nt
Design and
Implementa
tion
Messaging
Manageme
nt and
Monitoring
Performanc
e and
Scalability
Resiliency Security
1 Ambassador アンバサダー ◯ ◯
2
Anti-Corruption
Layer
破損対策レイヤー ◯ ◯
3
Backends for
Frontends
フロント エンド用
バックエンド
◯
4 Bulkhead バルクヘッド ◯
5 Cache-Aside キャッシュ アサイド ◯ ◯
6 Circuit Breaker
サーキット ブレー
カー
◯
7
Compensating
Transaction
補正トランザクション ◯
8
Competing
Consumers
競合コンシューマー ◯
kyrt inc 222018/4/20
No Pattern Availability
Data
Manageme
nt
Design and
Implementa
tion
Messaging
Manageme
nt and
Monitoring
Performanc
e and
Scalability
Resiliency Security
9
Compute Resource
Consolidation
コンピューティン
グ リソース統合
◯
10 CQRS
コマンド クエリ責
務分離 (CQRS)
◯ ◯ ◯
11 Event Sourcing
イベント ソーシン
グ
◯ ◯
12
External
Configuration Store
外部構成ストア ◯ ◯
13 Federated Identity
フェデレーション
ID
◯
14 Gatekeeper ゲートキーパー ◯
15
Gateway
Aggregation
ゲートウェイ集約 ◯ ◯
16 Gateway Offloading
ゲートウェイ オフ
ロード
◯ ◯
kyrt inc 232018/4/20
No Pattern Availability
Data
Manageme
nt
Design and
Implementa
tion
Messaging
Manageme
nt and
Monitoring
Performanc
e and
Scalability
Resiliency Security
17 Gateway Routing
ゲートウェイ ルー
ティング
◯ ◯
18
Health Endpoint
Monitoring
正常性エンドポイント
の監視
◯ ◯ ◯
19 Index Table
インデックス テーブ
ル
◯ ◯
20 Leader Election リーダー選定 ◯
21
Materialized
View
具体化されたビュー ◯ ◯
22 Pipes and Filters パイプとフィルターの ◯ ◯
23 Priority Queue Priority Queue ◯ ◯
24
Queue-Based
Load Leveling
キュー ベースの負荷
平準化
◯ ◯ ◯ ◯
kyrt inc 242018/4/20
No Pattern Availability
Data
Manageme
nt
Design and
Implementa
tion
Messaging
Manageme
nt and
Monitoring
Performanc
e and
Scalability
Resiliency Security
25 Retry 再試行 ◯
26
Scheduler Agent
Supervisor
Scheduler Agent
Supervisor
◯ ◯
27 Sharding シャーディング ◯ ◯
28 Sidecar サイドカー ◯ ◯
29
Static Content
Hosting
静的コンテンツ ホス
ティング
◯ ◯ ◯
30 Strangler ストラングラー ◯ ◯
31 Throttling 調整 ◯ ◯
32 Valet Key バレット キー ◯ ◯
kyrt inc 252018/4/20
Patterns
2018/4/20 kyrt inc 26
とりあえず表にした
ざっとみる
kyrt inc 272018/4/20
pattern 概要
1 Ambassador ◯
コンシューマーサービスまたはアプリケーションの代わりにネットワーク要求を送信するヘル
パーサービスを作成
2 Anti-corruption Layer ◯ 現代のアプリケーションと従来のシステムとの間にファサードまたはアダプタ層を実装
3 Backends for Frontends ◯
特定のフロントエンドアプリケーションまたはインタフェースで消費される個別のバックエンド
サービスを作成
4 Bulkhead ◯ アプリケーションの要素をプールに分離し、障害が発生した場合でも他の要素が機能を継続
5 Cache-Aside オンデマンドでデータをデータストアからキャッシュにロード
6 Circuit Breaker
リモートサービスまたはリソースに接続するときに修正するまでに多少の時間がかかる障害を
処理
7 Compensating Transaction 一連のステップによって実行された作業を元に戻すと、最終的に一貫した操作を定義
8 Competing Consumers 同じメッセージングチャネルで受信したメッセージを複数のコンカレントコンシューマで処理
kyrt inc 282018/4/20
pattern 概要
9
Command and Query Responsibility Segregation
(CQRS)
別のインターフェイスを使用してデータを更新する操作からデータを読み取る操作
を分離
10 Compute Resource Consolidation 複数のタスクまたは操作を1つの計算単位に統合
11 Event Sourcing
追加専用ストアを使用して、ドメイン内のデータに対するアクションを記述する一
連のイベントを記録
12 External Configuration Store アプリケーション展開パッケージから構成情報を一元的な場所に移動
13 Federated Identity 外部IDプロバイダへの認証を委任
14 Gatekeeper
クライアントとアプリケーションまたはサービス間のブローカとして機能する専用ホ
ストインスタンスを使用してアプリケーションとサービスを保護し、要求の検証とサ
ニタイズ、要求とデータの受け渡しを実施
15 Gateway Aggregation ◯ ゲートウェイを使用して、複数の個別の要求を1つの要求に集約
16 Gateway Offloading ◯ 共有または特殊なサービス機能をゲートウェイ・プロキシーにオフロード
kyrt inc 292018/4/20
pattern 概要
17 Gateway Routing ◯ 1つのエンドポイントを使用して複数のサービスに要求をルーティング
18 Health Endpoint Monitoring
外部ツールが公開されたエンドポイントを介して定期的にアクセスできるアプリ
ケーションで機能チェックを実装
19 Index Table クエリで頻繁に参照されるデータストア内のフィールドにインデックスを作成
20 Leader Election
1つのインスタンスをリーダーとして選択し、他のインスタンスを管理する責任を担
うことによって、分散アプリケーションの共同作業タスク・インスタンスの集合によっ
て実行されるアクションを調整
21 Materialized View
必要なクエリ操作のためにデータが理想的にフォーマットされていない場合、1つ
または複数のデータストア内のデータにあらかじめ作成されたビューを生成
22 Pipes and Filters 複雑な処理を実行するタスクを、再利用可能な一連の独立した要素に分割
23 Priority Queue
優先度の高い要求が優先度の低いものより速く受信され、処理されるように、
サービスに送信される要求に優先度を処理
24 Queue-Based Load Leveling
断続的な重い負荷を円滑にするために、タスクとそのサービスが呼び出すサービ
スの間のバッファーとして機能するキューを使用
kyrt inc 302018/4/20
pattern 概要
25 Retry
失敗した操作を透過的に再試行してサービスまたはネットワークリソースに接続、
予期した一時的な障害をアプリケーションが処理
26 Scheduler Agent Supervisor
分散した一連のサービスと他のリモートリソースにわたって一連のアクションを調
整
27 Sharding データストアを水平パーティションまたはシャードのセットに分割
28 Sidecar
アプリケーションのコンポーネントを別のプロセスまたはコンテナに配置し、分離と
カプセル化を提供
29 Static Content Hosting
静的コンテンツをクラウドベースのストレージサービスに展開します。クラウドベー
スのストレージサービスは、クライアントに直接配信
30 Strangler ◯
徐々に特定の機能を新しいアプリケーションやサービスに置き換えて、レガシーシ
ステムを段階的に移行
31 Throttling
アプリケーションのインスタンス、個々のテナント、またはサービス全体で使用され
るリソースの消費を制御
32 Valet Key
クライアントに特定のリソースまたはサービスへの直接アクセスが制限されている
トークンまたはキーを使用
kyrt inc 312018/4/20
増えた8個を
掘り下げる
kyrt inc 322018/4/20
Ambassador - アンバサダー
 日本語で言うと、「大使」
 特命全権大使は、外交使節団の長で最上級の階級であ
る。接受国の元首に対して派遣され、外交交渉、全権代
表としての条約の調印・署名、滞在する自国民の保護な
どの任務を行う。国際連合などの国際機関の政府代表部
に対しても派遣される。(Wikipedia)
 代表して外部との交渉をおこなう
kyrt inc 332018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/ambassador
Ambassador - 概要
kyrt inc 342018/4/20
ネットワーク要求を送信す
るヘルパー サービス
監視、ログ記録、ルーティング、セキュリティ (TLS など)、回復性パ
ターン等の、クライアント接続のタスクをオフロードするのに有効
リトライ
サーキットブレーカー
モニター
セキュリティー
Ambassador - 問題と注意事項
 プロキシは待機時間のオーバーヘッドがある
 プロキシの汎用的な機能実装の影響を考慮
 再試行を処理する場合、すべての操作がべき等でない限り、それは安全で
はないかも
 クライアントがなんらかのコンテキスト情報をプロキシに渡す
 例:再試行を除外や、または再試行の最大回数を指定する HTTP 要求ヘッ
ダーや、プロキシでの再試行回数を返すレスポンスヘッダーなど
 プロキシのパッケージ化とデプロイ方法
 クライアントとプロキシのマッピング1:1にするかプロキシを共有にする
か等
kyrt inc 352018/4/20
Ambassador – 使い時
アプリケーションの変更に制限がある
レガシーアプリケーション
複数の言語が実装に使われている
通信のオーバーヘッドの影響が少ない
案件の対応チームが異なる
アプリチームでは無くインフラチームで対応など
kyrt inc 362018/4/20
Ambassador - 感想
単一言語で書かれていれば、ライブラリを共通
化し、アプリケーション内でインプロセスで実装
する方が問題が少ない
複数インスタンスを跨ってリモートサービスへの
アクセスを制限する必要がある場合は有用(接
続先のスロットリング要件が厳しい場合とか)
概念的な出番はよくあるパターンで重要
kyrt inc 372018/4/20
Anti-corruption Layer – 破損対策レイヤー
kyrt inc 382018/4/20
異なるサブシステム間にアダプター レイヤーを実装。サブシステム間の要
求を変換する。パターンを使用すると、アプリケーションの設計の外部サブ
システムへの依存関係が緩和される
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/anti-corruption-layer
Anti-corruption Layer –問題と注意事項
 待機時間の増加、多くの場合問題となる
 管理および保守するサービスの増加は、システムの複雑性の増加となる
 スケーリングの実装、パーティション分割が必要になる可能性がある
 トランザクションおよびデータの整合性の担保
 管理、監視、リリース、および構成プロセスの統合
 処理範囲の検討
 異なるサブシステム間のすべての通信か、または機能のサブセットのみか
 アプリケーション移行戦略の一部である場合は、そのレイヤーを永続的
に使うか、すべてのレガシ機能が移行された時点で使用をやめるのかを
検討
kyrt inc 392018/4/20
Anti-corruption Layer –使い時
 サブシステムの移行に伴って、統合が壊れることを
防ぎたい
 Subsystem Bが、Version 1.xから2.xに移行する場合な
どの場合レイヤーを追加してSubsystem Aが利用してい
る機能のみを1.xから2.xへ変換等
 複数のサブシステムで構成されている場合
 Subsystem A,Bで構成されている、Bには旧システムの
データが存在する。アクセスはA経由としてB上のデータ
も提供する
kyrt inc 402018/4/20
Backends for Frontends
-フロント エンド用バックエンドのパターン
kyrt inc 412018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/backends-for-frontends
Backends for Frontends - 概要
フロント エンド毎に個別のバックエンド サー
ビスを作成する
 複数のインターフェイスのために 1 つのバッ
クエンドをカスタマイズすることが非効率な場
合に使う
Sam Newman の記事がオリジナル
kyrt inc 422018/4/20
https://samnewman.io/patterns/architectural/bff/
Sam NewmanのBFFから
General-Purpose API Backend
通常、単一のサーバーサイドAPIを提供し、複数
のタイプのUIに対応することから始める(左)
UIが似てるうちは良いが、モバイル、デスクトップ、
APIなどアフォーダンスが異なる。
モバイルとデスクトップはだいぶ違う
kyrt inc 432018/4/20
Backends for Frontends – 使うとき
 共有または汎用目的のバックエンド サービスを保守するために、多大な開発
オーバーヘッドがある
 特定のクライアント インターフェイスの要件に合わせて、バックエンドを最適化す
る必要がある
 複数のインターフェイスに対応するために、汎用バックエンドのカスタマイズが行
われている
 他のユーザー インターフェイスのバックエンドには、別の言語を使用したほうが
望ましい
このパターンは、次の場合には適切ではない
 各インターフェイスが、バックエンドに対して同一または類似の要求をする。
 バックエンドとのやりとりに使用されされるインターフェイスが 1 つしかない。
kyrt inc 442018/4/20
Bulkhead - バルクヘッド
kyrt inc 452018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/bulkhead
Bulkhead - 隔壁
 アプリケーションの要素をプールに分離し、1 つの
要素が失敗しても、他の要素が引き続き機能できる
ようにします。
 バルクヘッド (隔壁) という名前は、区分けされた船
体部分に似ていることから来ている
 船体が傷つけられた場合、水浸しになるのは破損し
た部分だけで、これによって船が沈むのを防ぐ
kyrt inc 462018/4/20
kyrt inc 472018/4/20
http://bit.ly/2HhCJbv
Bulkhead - 使うとき
 バックエンド サービスのセットを使用するのに使われているリソー
スを分離する。特に、サービスのいずれかが応答していない場合
でも、アプリケーションがなんらかのレベルの機能を提供できる場
合
 標準的なコンシューマーから重要なコンシューマーを分離
 エラーの連鎖からアプリケーションを保護
このパターンは、次の状況では適切でない
 プロジェクト内で、効率性の低いリソース使用は受け入れられない。
 複雑さを追加する必要はない。
kyrt inc 482018/4/20
Gateway系が2つ(OffloadとRouting)追加され
ているが、例がnginx で、lua スクリプト
\(^o^)/
kyrt inc 492018/4/20
Gateway Offloading -
kyrt inc 502018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/gateway-offloading
Gateway Routing -
kyrt inc 512018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/gateway-routing
Strangler - ストラングラー
機能の特定の部分を新しいアプリケーションや
サービスに徐々に置き換えて段階的に移行
レガシシステムからの機能が置き換えられていく
と、新しいシステムは最終的に古いシステムの
機能すべてを置き換え、古いシステムを停止で
きるようにする
日本語で言うと、段階移行ってやつ
kyrt inc 522018/4/20
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/strangler
Strangler - ストラングラー
kyrt inc 532018/4/20
もともとは
StranglerApplication by Martin Fowler
https://www.martinfowler.com/bliki/StranglerA
pplication.html
絞め殺しの木(Strangler Fig)
https://ja.wikipedia.org/wiki/%E7%B5%9E%E
3%82%81%E6%AE%BA%E3%81%97%E3%
81%AE%E6%9C%A8
kyrt inc 542018/4/20
Strangler - 使うとき
 バックエンド アプリケーションを新しいアーキテクチャ
に段階的に移行する場合に、このパターンを使用する
次の状況では適切ではない
 バックエンド システムへの要求がインターセプトできな
い場合
 システム全体の置き換えの複雑さが少ない、小規模
なシステムの場合
kyrt inc 552018/4/20
kyrt inc 562018/4/20
End

Mais conteúdo relacionado

Mais procurados

Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Big query and elasticsearch insight at scale
Big query and elasticsearch insight at scaleBig query and elasticsearch insight at scale
Big query and elasticsearch insight at scaleShotaro Suzuki
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudShotaro Suzuki
 
アーキテクトが主導するコンテナ/マイクロサービス/サーバーレスのセキュリティ
アーキテクトが主導するコンテナ/マイクロサービス/サーバーレスのセキュリティアーキテクトが主導するコンテナ/マイクロサービス/サーバーレスのセキュリティ
アーキテクトが主導するコンテナ/マイクロサービス/サーバーレスのセキュリティEiji Sasahara, Ph.D., MBA 笹原英司
 
Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Ayumu Inaba
 
Elastic7.10 newfeaturesintroduce 1216
Elastic7.10 newfeaturesintroduce 1216Elastic7.10 newfeaturesintroduce 1216
Elastic7.10 newfeaturesintroduce 1216Shotaro Suzuki
 
この先生きのこるためのログ管理
この先生きのこるためのログ管理この先生きのこるためのログ管理
この先生きのこるためのログ管理Miho Yamamoto
 
Apm enables python app observability
Apm enables python app observabilityApm enables python app observability
Apm enables python app observabilityShotaro Suzuki
 
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~de:code 2017
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視Takanori Suzuki
 
Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)Takeshi Fukuhara
 
こわくない!Azure 運用管理
こわくない!Azure 運用管理こわくない!Azure 運用管理
こわくない!Azure 運用管理Miho Yamamoto
 
あらゆる検索を叶えるElastic Workplace Search
あらゆる検索を叶えるElastic Workplace Searchあらゆる検索を叶えるElastic Workplace Search
あらゆる検索を叶えるElastic Workplace SearchElasticsearch
 
Elastic observabilitycansmartlymanagetheappsonkubernetes
Elastic observabilitycansmartlymanagetheappsonkubernetesElastic observabilitycansmartlymanagetheappsonkubernetes
Elastic observabilitycansmartlymanagetheappsonkubernetesShotaro Suzuki
 
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiGpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiShotaro Suzuki
 
Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...Shotaro Suzuki
 
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn08277.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827Shotaro Suzuki
 
Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5Shotaro Suzuki
 
Learn, build, and scale with elastic - realizing great programming experience...
Learn, build, and scale with elastic - realizing great programming experience...Learn, build, and scale with elastic - realizing great programming experience...
Learn, build, and scale with elastic - realizing great programming experience...Shotaro Suzuki
 
こわくない!Azure IaaS 運用管理
こわくない!Azure IaaS 運用管理こわくない!Azure IaaS 運用管理
こわくない!Azure IaaS 運用管理Miho Yamamoto
 

Mais procurados (20)

Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
 
Big query and elasticsearch insight at scale
Big query and elasticsearch insight at scaleBig query and elasticsearch insight at scale
Big query and elasticsearch insight at scale
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
 
アーキテクトが主導するコンテナ/マイクロサービス/サーバーレスのセキュリティ
アーキテクトが主導するコンテナ/マイクロサービス/サーバーレスのセキュリティアーキテクトが主導するコンテナ/マイクロサービス/サーバーレスのセキュリティ
アーキテクトが主導するコンテナ/マイクロサービス/サーバーレスのセキュリティ
 
Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221Power app custom api v0.1.21.1221
Power app custom api v0.1.21.1221
 
Elastic7.10 newfeaturesintroduce 1216
Elastic7.10 newfeaturesintroduce 1216Elastic7.10 newfeaturesintroduce 1216
Elastic7.10 newfeaturesintroduce 1216
 
この先生きのこるためのログ管理
この先生きのこるためのログ管理この先生きのこるためのログ管理
この先生きのこるためのログ管理
 
Apm enables python app observability
Apm enables python app observabilityApm enables python app observability
Apm enables python app observability
 
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
[DI10] IoT を実践する最新のプラクティス ~ Azure IoT Hub 、SDK 、Azure IoT Suite ~
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
 
Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)Azure IoT 関連最新情報 (Microsoft Build 2020版)
Azure IoT 関連最新情報 (Microsoft Build 2020版)
 
こわくない!Azure 運用管理
こわくない!Azure 運用管理こわくない!Azure 運用管理
こわくない!Azure 運用管理
 
あらゆる検索を叶えるElastic Workplace Search
あらゆる検索を叶えるElastic Workplace Searchあらゆる検索を叶えるElastic Workplace Search
あらゆる検索を叶えるElastic Workplace Search
 
Elastic observabilitycansmartlymanagetheappsonkubernetes
Elastic observabilitycansmartlymanagetheappsonkubernetesElastic observabilitycansmartlymanagetheappsonkubernetes
Elastic observabilitycansmartlymanagetheappsonkubernetes
 
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiGpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
 
Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...
 
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn08277.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
 
Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5
 
Learn, build, and scale with elastic - realizing great programming experience...
Learn, build, and scale with elastic - realizing great programming experience...Learn, build, and scale with elastic - realizing great programming experience...
Learn, build, and scale with elastic - realizing great programming experience...
 
こわくない!Azure IaaS 運用管理
こわくない!Azure IaaS 運用管理こわくない!Azure IaaS 運用管理
こわくない!Azure IaaS 運用管理
 

Semelhante a 20180421 Azure Architecture Cloud Design Patterns

Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADjunichi anno
 
Azure IoT Edge - ALGYAN Dec 2022.pdf
Azure IoT Edge - ALGYAN Dec 2022.pdfAzure IoT Edge - ALGYAN Dec 2022.pdf
Azure IoT Edge - ALGYAN Dec 2022.pdfYasuhiroHanda2
 
Microsoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses versionMicrosoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses versionTakeshi Fukuhara
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティjunichi anno
 
セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)
セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)
セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)Eiji Sasahara, Ph.D., MBA 笹原英司
 
SCORER Partner Summit 2018_ Strategy
SCORER Partner Summit 2018_ Strategy SCORER Partner Summit 2018_ Strategy
SCORER Partner Summit 2018_ Strategy Future Standard
 
[Cloud OnAir] Google Cloud Next '18 振り返り。 インフラストラクチャはこう変わる! 2018年10月25日 放送
[Cloud OnAir] Google Cloud Next '18 振り返り。 インフラストラクチャはこう変わる! 2018年10月25日 放送[Cloud OnAir] Google Cloud Next '18 振り返り。 インフラストラクチャはこう変わる! 2018年10月25日 放送
[Cloud OnAir] Google Cloud Next '18 振り返り。 インフラストラクチャはこう変わる! 2018年10月25日 放送Google Cloud Platform - Japan
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?Akira Inoue
 
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送Google Cloud Platform - Japan
 
オンライン技術勉強会 20201216 QSEoWサーバー管理者向けトレーニング_2
オンライン技術勉強会 20201216 QSEoWサーバー管理者向けトレーニング_2オンライン技術勉強会 20201216 QSEoWサーバー管理者向けトレーニング_2
オンライン技術勉強会 20201216 QSEoWサーバー管理者向けトレーニング_2QlikPresalesJapan
 
CSP パートナー向け向け Azure マネージド サービス プレイブック
CSP パートナー向け向け Azure マネージド サービス プレイブックCSP パートナー向け向け Azure マネージド サービス プレイブック
CSP パートナー向け向け Azure マネージド サービス プレイブックMPN Japan
 
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampクラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampMasahiro NAKAYAMA
 
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」Kohei Ogawa
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascriptTakao Tetsuro
 
Azure Cloud Application Design and Implementation Guidance の紹介
Azure Cloud Application Design and Implementation Guidance の紹介Azure Cloud Application Design and Implementation Guidance の紹介
Azure Cloud Application Design and Implementation Guidance の紹介Takekazu Omi
 
Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報Yasuhiro Kobayashi
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfMasahiko Umeno
 
クラウド時代のロードバランサとは? ~ 変貌するL4-L7スイッチング ~
クラウド時代のロードバランサとは? ~ 変貌するL4-L7スイッチング ~クラウド時代のロードバランサとは? ~ 変貌するL4-L7スイッチング ~
クラウド時代のロードバランサとは? ~ 変貌するL4-L7スイッチング ~Citrix Systems Japan
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識Minoru Naito
 

Semelhante a 20180421 Azure Architecture Cloud Design Patterns (20)

Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
Azure IoT Edge - ALGYAN Dec 2022.pdf
Azure IoT Edge - ALGYAN Dec 2022.pdfAzure IoT Edge - ALGYAN Dec 2022.pdf
Azure IoT Edge - ALGYAN Dec 2022.pdf
 
Microsoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses versionMicrosoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses version
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティ
 
セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)
セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)
セキュアなサーバーレスアーキテクチャ設計手法の概説 (v0)
 
SCORER Partner Summit 2018_ Strategy
SCORER Partner Summit 2018_ Strategy SCORER Partner Summit 2018_ Strategy
SCORER Partner Summit 2018_ Strategy
 
[Cloud OnAir] Google Cloud Next '18 振り返り。 インフラストラクチャはこう変わる! 2018年10月25日 放送
[Cloud OnAir] Google Cloud Next '18 振り返り。 インフラストラクチャはこう変わる! 2018年10月25日 放送[Cloud OnAir] Google Cloud Next '18 振り返り。 インフラストラクチャはこう変わる! 2018年10月25日 放送
[Cloud OnAir] Google Cloud Next '18 振り返り。 インフラストラクチャはこう変わる! 2018年10月25日 放送
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
 
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
[Cloud OnAir] Google Cloud Next '18 in Tokyo サーバレス特集 2018年9月27日 放送
 
オンライン技術勉強会 20201216 QSEoWサーバー管理者向けトレーニング_2
オンライン技術勉強会 20201216 QSEoWサーバー管理者向けトレーニング_2オンライン技術勉強会 20201216 QSEoWサーバー管理者向けトレーニング_2
オンライン技術勉強会 20201216 QSEoWサーバー管理者向けトレーニング_2
 
CSP パートナー向け向け Azure マネージド サービス プレイブック
CSP パートナー向け向け Azure マネージド サービス プレイブックCSP パートナー向け向け Azure マネージド サービス プレイブック
CSP パートナー向け向け Azure マネージド サービス プレイブック
 
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampクラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
クラウド時代のものづくり(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
 
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
 
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
講演資料「Azure AI Update Ignite Fall 2021を振り返ろう!」
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
Azure Cloud Application Design and Implementation Guidance の紹介
Azure Cloud Application Design and Implementation Guidance の紹介Azure Cloud Application Design and Implementation Guidance の紹介
Azure Cloud Application Design and Implementation Guidance の紹介
 
Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報
 
Open Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdf
 
クラウド時代のロードバランサとは? ~ 変貌するL4-L7スイッチング ~
クラウド時代のロードバランサとは? ~ 変貌するL4-L7スイッチング ~クラウド時代のロードバランサとは? ~ 変貌するL4-L7スイッチング ~
クラウド時代のロードバランサとは? ~ 変貌するL4-L7スイッチング ~
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識
 

Mais de Takekazu Omi

jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key VaultTakekazu Omi
 
Bicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure DeployBicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure DeployTakekazu Omi
 
Bicep 入門 MySQL編
Bicep 入門 MySQL編Bicep 入門 MySQL編
Bicep 入門 MySQL編Takekazu Omi
 
//Build 2021 FASTER 紹介
//Build 2021 FASTER 紹介//Build 2021 FASTER 紹介
//Build 2021 FASTER 紹介Takekazu Omi
 
//build 2021 bicep 0.4
//build 2021 bicep 0.4//build 2021 bicep 0.4
//build 2021 bicep 0.4Takekazu Omi
 
bicep dev container
bicep dev containerbicep dev container
bicep dev containerTakekazu Omi
 
Introduction of Azure Docker Integration
Introduction of Azure Docker IntegrationIntroduction of Azure Docker Integration
Introduction of Azure Docker IntegrationTakekazu Omi
 
Cosmos DB Consistency Levels and Introduction of TLA+
Cosmos DB Consistency Levels and Introduction of TLA+ Cosmos DB Consistency Levels and Introduction of TLA+
Cosmos DB Consistency Levels and Introduction of TLA+ Takekazu Omi
 
Azure Application Insights とか
Azure Application Insights とかAzure Application Insights とか
Azure Application Insights とかTakekazu Omi
 
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編Takekazu Omi
 
Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Takekazu Omi
 
Global Azure Bootcamp 2017 DocumentDB Deep Dive
Global Azure Bootcamp 2017  DocumentDB Deep DiveGlobal Azure Bootcamp 2017  DocumentDB Deep Dive
Global Azure Bootcamp 2017 DocumentDB Deep DiveTakekazu Omi
 
Azure Storage Partition Internals
Azure Storage Partition  Internals Azure Storage Partition  Internals
Azure Storage Partition Internals Takekazu Omi
 
Azure Service Fabric Cluster の作成
Azure  Service Fabric Cluster の作成Azure  Service Fabric Cluster の作成
Azure Service Fabric Cluster の作成Takekazu Omi
 
Azure Service Fabric Actor
Azure Service  Fabric ActorAzure Service  Fabric Actor
Azure Service Fabric ActorTakekazu Omi
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要Takekazu Omi
 
Azure Fabric Service Reliable Collection
Azure Fabric Service Reliable CollectionAzure Fabric Service Reliable Collection
Azure Fabric Service Reliable CollectionTakekazu Omi
 

Mais de Takekazu Omi (20)

jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key Vault
 
bicep 0.5 pre
bicep 0.5 prebicep 0.5 pre
bicep 0.5 pre
 
Bicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure DeployBicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure Deploy
 
Bicep 入門 MySQL編
Bicep 入門 MySQL編Bicep 入門 MySQL編
Bicep 入門 MySQL編
 
//Build 2021 FASTER 紹介
//Build 2021 FASTER 紹介//Build 2021 FASTER 紹介
//Build 2021 FASTER 紹介
 
//build 2021 bicep 0.4
//build 2021 bicep 0.4//build 2021 bicep 0.4
//build 2021 bicep 0.4
 
bicep 紹介
bicep 紹介bicep 紹介
bicep 紹介
 
bicep dev container
bicep dev containerbicep dev container
bicep dev container
 
Introduction of Azure Docker Integration
Introduction of Azure Docker IntegrationIntroduction of Azure Docker Integration
Introduction of Azure Docker Integration
 
Cosmos DB Consistency Levels and Introduction of TLA+
Cosmos DB Consistency Levels and Introduction of TLA+ Cosmos DB Consistency Levels and Introduction of TLA+
Cosmos DB Consistency Levels and Introduction of TLA+
 
Azure Application Insights とか
Azure Application Insights とかAzure Application Insights とか
Azure Application Insights とか
 
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
 
life with posh
life with poshlife with posh
life with posh
 
Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編
 
Global Azure Bootcamp 2017 DocumentDB Deep Dive
Global Azure Bootcamp 2017  DocumentDB Deep DiveGlobal Azure Bootcamp 2017  DocumentDB Deep Dive
Global Azure Bootcamp 2017 DocumentDB Deep Dive
 
Azure Storage Partition Internals
Azure Storage Partition  Internals Azure Storage Partition  Internals
Azure Storage Partition Internals
 
Azure Service Fabric Cluster の作成
Azure  Service Fabric Cluster の作成Azure  Service Fabric Cluster の作成
Azure Service Fabric Cluster の作成
 
Azure Service Fabric Actor
Azure Service  Fabric ActorAzure Service  Fabric Actor
Azure Service Fabric Actor
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
 
Azure Fabric Service Reliable Collection
Azure Fabric Service Reliable CollectionAzure Fabric Service Reliable Collection
Azure Fabric Service Reliable Collection
 

Último

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Último (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

20180421 Azure Architecture Cloud Design Patterns

  • 1. Azure アーキテクチャー祭り Cloud Design Patterns 編 Takekazu Omi takekazu.omi@kyrt.in 2018/4/21 R1.0.0
  • 3. Azure Architecture Center kyrt inc 32018/4/20 Azure Application Architecture Guide 顧客とのエンゲージメントから学んだ実証済みのプラクティスに基づ いた、スケーラブル、レジデント、可用性の高いアプリケーションを設 計するためのガイド Azure Reference Architectures Azureで推薦されるアーキテクチャセット。各アーキテクチャには、ベ ストプラクティス、規範的な手順、展開可能なソリューションを提示 https://github.com/mspnp/reference-architectures Cloud Design Patterns クラウド内の信頼性の高いスケーラブルで安全なアプリケーションを 構築のためのデザインパターン集 +8 = 32
  • 5. 2014年6月  Microsoft patterns & practices  Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications  http://msdn.microsoft.com/en- us/library/dn568099.aspx  翻訳が、2014年6月に出ました  クラウドデザインパターン Azureを例としたク ラウドアプリケーション設計の手引き  http://ec.nikkeibp.co.jp/item/books/P98330.html  日経BP kyrt inc 52018/4/20
  • 6. 概要 クラウドアプリケーション設計の頻出課題集 Software design pattern の Cloud Application 版 24のパターン 10のガイダンス ポスター  http://azure.microsoft.com/en- us/documentation/infographics/cloud-design-patterns/ kyrt inc 62018/4/20
  • 8. 32パターン、8つのChallenge  信頼性の高い、スケーラブルで安全なアプリケー ションの構築  問題、適用に関する考慮事項、 Azure に基づいた 例を説明  幾つかのパターンには、Azure 上の実装コード サン プルを含む  パターンのほとんどは、クラウド プラットフォームに 非依存 kyrt inc 82018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/
  • 11. 名前 内容 1 Availability 可用性 アプリケーションの可用性が最大限になるように設計および実装する。可用性は、システム エラー、インフラストラ クチャの問題、悪意ある攻撃、およびシステムの負荷によって影響を受ける。 2 Data Management データ管理 データ管理は重要な要素であり品質属性のほとんどに影響する。 通常、パフォーマンス、スケーラビリティ、また は可用性の理由から、データは複数のサーバーにまたがって保存されるが、これによって、様々な問題が発生す る。データの分散配置は整合性と同期の必要性を生じさせる。 3 Design and Implementation 設計と実装 コンポーネントの設計とデプロイの一貫性や統一性、管理と開発を簡素化する保守容易性、コンポーネントやサ ブシステムを他のアプリケーションやシナリオで利用できる再利用性は、アプリケーションやサービスの品質と総 保有コストに大きな影響を及ぼす 4 Messaging メッセージング クラウド アプリケーションのスケーラビリティでは、コンポーネントとサービスが 疎結合的に接続できるメッセージ ング インフラストラクチャが重要です。 非同期メッセージングには多くの利点がありますが、メッセージの順序、有 害メッセージの管理、べき等など、課題も多くある。 5 Management and Monitoring 管理と監視 クラウド アプリケーションは、リモートのデータセンターで実行され、自分でそのインフラストラクチャや、オペレー ティング システムを、完全に制御することはできないため、オンプレミス よりも管理と監視は難しくなる。 アプリ ケーションは、管理と監視に使用できる情報を公開する必要がある。 6 Performance and Scalability パフォーマンスとス ケーラビリティ パフォーマンスは、規定の期間内に任意の処理を実行するシステムの応答性を示し、スケーラビリティは、パ フォーマンスに影響を与えずに負荷の増加を処理するか、または利用可能なリソースを容易に増やすことで対応 する能力である。 通常ワークロードやアクティビティのピークは変動しており、予測することは困難。(特にマルチ テナント シナリオでは)このような環境では、アプリケーションは、要求に対応できるように制限範囲内でスケール アウト、スケールインできることが要求される。 7 Resiliency 回復性 回復性とは、障害を正常に処理して復旧するシステムの機能。 クラウド ホスティングでは、マルチテナントのアプ リケーションが多い、共有プラットフォームを使用する、リソースと帯域幅が競合する、インターネットで通信する、 コモディティ ハードウェア上で実行する、という特性がある。これらの特性は、一時的な障害と永続的な障害の両 方が発生しやすくなることを意味する。そのため 迅速かつ効率的に障害を検出して復旧することが、回復性を維 持する上で重要となる。 8 Security セキュリティ セキュリティとは、設計された用途以外の悪意あるアクションや偶発的なアクションを防ぎ、情報の漏えいや損失 を防ぐシステムの機能。アプリケーションの設計とデプロイでは、悪意のある攻撃から保護し、承認したユーザー のみにアクセスを制限し、機密データを保護する必要がある。 kyrt inc 112018/4/20
  • 12. Availability -可用性  システムが機能し動作している時間の割合  稼働時間の比率として計測  システム エラー、インフラストラクチャの問題、悪意ある攻撃、 およびシステムの負荷によって影響を受ける  最大限になるように設計および実装する  システム エラー、インフラストラクチャの問題、悪意ある攻撃、 およびシステムの負荷に影響される kyrt inc 122018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/availability
  • 13. Data Management -データ管理  データ管理はクラウド アプリケーションの重要な要 素で、品質属性のほとんどに影響  パフォーマンス、スケーラビリティ、または可用性の 要件から、データは分散してホストされる  分散は、整合性の維持、同期の問題を生む kyrt inc 132018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/data-management
  • 14. Design and Implementation -設計と実装  設計要素  コンポーネントの設計  デプロイの一貫性、統一性  管理および開発を容易にする保守性  他のアプリケーションやシナリオでの再使用可能性  設計および実装フェーズは、品質と総保有コストに大き な影響がある kyrt inc 142018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/design-implementation
  • 16. Management and Monitoring -管理と監視  クラウド アプリケーションは、リモートのデータセン ターで実行  インフラストラクチャや、オペレーティング システム の制御は制限され、オンプレミス よりも管理と監視 は難しくなる  アプリケーションも、管理と監視に使用できる情報を 公開する必要がある kyrt inc 162018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/management-monitoring
  • 17. Performance and Scalability -パフォーマンスとスケーラビリティ  パフォーマンスは、規定の期間内に任意の処理を実行する応答性  スケーラビリティは、パフォーマンスに影響を与えずに負荷の増加 を処理、または利用可能なリソースを容易に増やすことで対応す る能力  通常ワークロードやアクティビティのピークは変動し、予測すること は困難(マルチテナント シナリオ)  アプリケーションは、要件に対応できるように制限範囲内でスケー ルアウト、スケールインが要求 kyrt inc 172018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/performance-scalability
  • 18. Resiliency - 回復性  回復性とは、障害を正常に処理して復旧する機能  クラウド ホスティングの特性  マルチテナントのアプリケーションが多く共有プラットフォームを使用  リソースと帯域幅が競合  インターネットで通信  コモディティ ハードウェア上での実行  これらの特性は、一時的な障害と永続的な障害の両方が発 生しやすくなることを意味する  迅速かつ効率的に障害を検出して復旧することが、回復性 を維持する上で重要 kyrt inc 182018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/resiliency
  • 19. Security -セキュリティ  セキュリティとは、設計された用途以外の悪意ある アクションや偶発的なアクションを防ぎ、情報の漏え いや損失を防ぐシステムの機能  アプリケーションの設計とデプロイでは、悪意のある 攻撃から保護し、承認したユーザーのみにアクセス を制限し、機密データを保護する必要がある kyrt inc 192018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/category/security
  • 22. No Pattern Availability Data Manageme nt Design and Implementa tion Messaging Manageme nt and Monitoring Performanc e and Scalability Resiliency Security 1 Ambassador アンバサダー ◯ ◯ 2 Anti-Corruption Layer 破損対策レイヤー ◯ ◯ 3 Backends for Frontends フロント エンド用 バックエンド ◯ 4 Bulkhead バルクヘッド ◯ 5 Cache-Aside キャッシュ アサイド ◯ ◯ 6 Circuit Breaker サーキット ブレー カー ◯ 7 Compensating Transaction 補正トランザクション ◯ 8 Competing Consumers 競合コンシューマー ◯ kyrt inc 222018/4/20
  • 23. No Pattern Availability Data Manageme nt Design and Implementa tion Messaging Manageme nt and Monitoring Performanc e and Scalability Resiliency Security 9 Compute Resource Consolidation コンピューティン グ リソース統合 ◯ 10 CQRS コマンド クエリ責 務分離 (CQRS) ◯ ◯ ◯ 11 Event Sourcing イベント ソーシン グ ◯ ◯ 12 External Configuration Store 外部構成ストア ◯ ◯ 13 Federated Identity フェデレーション ID ◯ 14 Gatekeeper ゲートキーパー ◯ 15 Gateway Aggregation ゲートウェイ集約 ◯ ◯ 16 Gateway Offloading ゲートウェイ オフ ロード ◯ ◯ kyrt inc 232018/4/20
  • 24. No Pattern Availability Data Manageme nt Design and Implementa tion Messaging Manageme nt and Monitoring Performanc e and Scalability Resiliency Security 17 Gateway Routing ゲートウェイ ルー ティング ◯ ◯ 18 Health Endpoint Monitoring 正常性エンドポイント の監視 ◯ ◯ ◯ 19 Index Table インデックス テーブ ル ◯ ◯ 20 Leader Election リーダー選定 ◯ 21 Materialized View 具体化されたビュー ◯ ◯ 22 Pipes and Filters パイプとフィルターの ◯ ◯ 23 Priority Queue Priority Queue ◯ ◯ 24 Queue-Based Load Leveling キュー ベースの負荷 平準化 ◯ ◯ ◯ ◯ kyrt inc 242018/4/20
  • 25. No Pattern Availability Data Manageme nt Design and Implementa tion Messaging Manageme nt and Monitoring Performanc e and Scalability Resiliency Security 25 Retry 再試行 ◯ 26 Scheduler Agent Supervisor Scheduler Agent Supervisor ◯ ◯ 27 Sharding シャーディング ◯ ◯ 28 Sidecar サイドカー ◯ ◯ 29 Static Content Hosting 静的コンテンツ ホス ティング ◯ ◯ ◯ 30 Strangler ストラングラー ◯ ◯ 31 Throttling 調整 ◯ ◯ 32 Valet Key バレット キー ◯ ◯ kyrt inc 252018/4/20
  • 28. pattern 概要 1 Ambassador ◯ コンシューマーサービスまたはアプリケーションの代わりにネットワーク要求を送信するヘル パーサービスを作成 2 Anti-corruption Layer ◯ 現代のアプリケーションと従来のシステムとの間にファサードまたはアダプタ層を実装 3 Backends for Frontends ◯ 特定のフロントエンドアプリケーションまたはインタフェースで消費される個別のバックエンド サービスを作成 4 Bulkhead ◯ アプリケーションの要素をプールに分離し、障害が発生した場合でも他の要素が機能を継続 5 Cache-Aside オンデマンドでデータをデータストアからキャッシュにロード 6 Circuit Breaker リモートサービスまたはリソースに接続するときに修正するまでに多少の時間がかかる障害を 処理 7 Compensating Transaction 一連のステップによって実行された作業を元に戻すと、最終的に一貫した操作を定義 8 Competing Consumers 同じメッセージングチャネルで受信したメッセージを複数のコンカレントコンシューマで処理 kyrt inc 282018/4/20
  • 29. pattern 概要 9 Command and Query Responsibility Segregation (CQRS) 別のインターフェイスを使用してデータを更新する操作からデータを読み取る操作 を分離 10 Compute Resource Consolidation 複数のタスクまたは操作を1つの計算単位に統合 11 Event Sourcing 追加専用ストアを使用して、ドメイン内のデータに対するアクションを記述する一 連のイベントを記録 12 External Configuration Store アプリケーション展開パッケージから構成情報を一元的な場所に移動 13 Federated Identity 外部IDプロバイダへの認証を委任 14 Gatekeeper クライアントとアプリケーションまたはサービス間のブローカとして機能する専用ホ ストインスタンスを使用してアプリケーションとサービスを保護し、要求の検証とサ ニタイズ、要求とデータの受け渡しを実施 15 Gateway Aggregation ◯ ゲートウェイを使用して、複数の個別の要求を1つの要求に集約 16 Gateway Offloading ◯ 共有または特殊なサービス機能をゲートウェイ・プロキシーにオフロード kyrt inc 292018/4/20
  • 30. pattern 概要 17 Gateway Routing ◯ 1つのエンドポイントを使用して複数のサービスに要求をルーティング 18 Health Endpoint Monitoring 外部ツールが公開されたエンドポイントを介して定期的にアクセスできるアプリ ケーションで機能チェックを実装 19 Index Table クエリで頻繁に参照されるデータストア内のフィールドにインデックスを作成 20 Leader Election 1つのインスタンスをリーダーとして選択し、他のインスタンスを管理する責任を担 うことによって、分散アプリケーションの共同作業タスク・インスタンスの集合によっ て実行されるアクションを調整 21 Materialized View 必要なクエリ操作のためにデータが理想的にフォーマットされていない場合、1つ または複数のデータストア内のデータにあらかじめ作成されたビューを生成 22 Pipes and Filters 複雑な処理を実行するタスクを、再利用可能な一連の独立した要素に分割 23 Priority Queue 優先度の高い要求が優先度の低いものより速く受信され、処理されるように、 サービスに送信される要求に優先度を処理 24 Queue-Based Load Leveling 断続的な重い負荷を円滑にするために、タスクとそのサービスが呼び出すサービ スの間のバッファーとして機能するキューを使用 kyrt inc 302018/4/20
  • 31. pattern 概要 25 Retry 失敗した操作を透過的に再試行してサービスまたはネットワークリソースに接続、 予期した一時的な障害をアプリケーションが処理 26 Scheduler Agent Supervisor 分散した一連のサービスと他のリモートリソースにわたって一連のアクションを調 整 27 Sharding データストアを水平パーティションまたはシャードのセットに分割 28 Sidecar アプリケーションのコンポーネントを別のプロセスまたはコンテナに配置し、分離と カプセル化を提供 29 Static Content Hosting 静的コンテンツをクラウドベースのストレージサービスに展開します。クラウドベー スのストレージサービスは、クライアントに直接配信 30 Strangler ◯ 徐々に特定の機能を新しいアプリケーションやサービスに置き換えて、レガシーシ ステムを段階的に移行 31 Throttling アプリケーションのインスタンス、個々のテナント、またはサービス全体で使用され るリソースの消費を制御 32 Valet Key クライアントに特定のリソースまたはサービスへの直接アクセスが制限されている トークンまたはキーを使用 kyrt inc 312018/4/20
  • 33. Ambassador - アンバサダー  日本語で言うと、「大使」  特命全権大使は、外交使節団の長で最上級の階級であ る。接受国の元首に対して派遣され、外交交渉、全権代 表としての条約の調印・署名、滞在する自国民の保護な どの任務を行う。国際連合などの国際機関の政府代表部 に対しても派遣される。(Wikipedia)  代表して外部との交渉をおこなう kyrt inc 332018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/ambassador
  • 34. Ambassador - 概要 kyrt inc 342018/4/20 ネットワーク要求を送信す るヘルパー サービス 監視、ログ記録、ルーティング、セキュリティ (TLS など)、回復性パ ターン等の、クライアント接続のタスクをオフロードするのに有効 リトライ サーキットブレーカー モニター セキュリティー
  • 35. Ambassador - 問題と注意事項  プロキシは待機時間のオーバーヘッドがある  プロキシの汎用的な機能実装の影響を考慮  再試行を処理する場合、すべての操作がべき等でない限り、それは安全で はないかも  クライアントがなんらかのコンテキスト情報をプロキシに渡す  例:再試行を除外や、または再試行の最大回数を指定する HTTP 要求ヘッ ダーや、プロキシでの再試行回数を返すレスポンスヘッダーなど  プロキシのパッケージ化とデプロイ方法  クライアントとプロキシのマッピング1:1にするかプロキシを共有にする か等 kyrt inc 352018/4/20
  • 38. Anti-corruption Layer – 破損対策レイヤー kyrt inc 382018/4/20 異なるサブシステム間にアダプター レイヤーを実装。サブシステム間の要 求を変換する。パターンを使用すると、アプリケーションの設計の外部サブ システムへの依存関係が緩和される https://docs.microsoft.com/ja-jp/azure/architecture/patterns/anti-corruption-layer
  • 39. Anti-corruption Layer –問題と注意事項  待機時間の増加、多くの場合問題となる  管理および保守するサービスの増加は、システムの複雑性の増加となる  スケーリングの実装、パーティション分割が必要になる可能性がある  トランザクションおよびデータの整合性の担保  管理、監視、リリース、および構成プロセスの統合  処理範囲の検討  異なるサブシステム間のすべての通信か、または機能のサブセットのみか  アプリケーション移行戦略の一部である場合は、そのレイヤーを永続的 に使うか、すべてのレガシ機能が移行された時点で使用をやめるのかを 検討 kyrt inc 392018/4/20
  • 40. Anti-corruption Layer –使い時  サブシステムの移行に伴って、統合が壊れることを 防ぎたい  Subsystem Bが、Version 1.xから2.xに移行する場合な どの場合レイヤーを追加してSubsystem Aが利用してい る機能のみを1.xから2.xへ変換等  複数のサブシステムで構成されている場合  Subsystem A,Bで構成されている、Bには旧システムの データが存在する。アクセスはA経由としてB上のデータ も提供する kyrt inc 402018/4/20
  • 41. Backends for Frontends -フロント エンド用バックエンドのパターン kyrt inc 412018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/backends-for-frontends
  • 42. Backends for Frontends - 概要 フロント エンド毎に個別のバックエンド サー ビスを作成する  複数のインターフェイスのために 1 つのバッ クエンドをカスタマイズすることが非効率な場 合に使う Sam Newman の記事がオリジナル kyrt inc 422018/4/20 https://samnewman.io/patterns/architectural/bff/
  • 43. Sam NewmanのBFFから General-Purpose API Backend 通常、単一のサーバーサイドAPIを提供し、複数 のタイプのUIに対応することから始める(左) UIが似てるうちは良いが、モバイル、デスクトップ、 APIなどアフォーダンスが異なる。 モバイルとデスクトップはだいぶ違う kyrt inc 432018/4/20
  • 44. Backends for Frontends – 使うとき  共有または汎用目的のバックエンド サービスを保守するために、多大な開発 オーバーヘッドがある  特定のクライアント インターフェイスの要件に合わせて、バックエンドを最適化す る必要がある  複数のインターフェイスに対応するために、汎用バックエンドのカスタマイズが行 われている  他のユーザー インターフェイスのバックエンドには、別の言語を使用したほうが 望ましい このパターンは、次の場合には適切ではない  各インターフェイスが、バックエンドに対して同一または類似の要求をする。  バックエンドとのやりとりに使用されされるインターフェイスが 1 つしかない。 kyrt inc 442018/4/20
  • 45. Bulkhead - バルクヘッド kyrt inc 452018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/bulkhead
  • 46. Bulkhead - 隔壁  アプリケーションの要素をプールに分離し、1 つの 要素が失敗しても、他の要素が引き続き機能できる ようにします。  バルクヘッド (隔壁) という名前は、区分けされた船 体部分に似ていることから来ている  船体が傷つけられた場合、水浸しになるのは破損し た部分だけで、これによって船が沈むのを防ぐ kyrt inc 462018/4/20
  • 48. Bulkhead - 使うとき  バックエンド サービスのセットを使用するのに使われているリソー スを分離する。特に、サービスのいずれかが応答していない場合 でも、アプリケーションがなんらかのレベルの機能を提供できる場 合  標準的なコンシューマーから重要なコンシューマーを分離  エラーの連鎖からアプリケーションを保護 このパターンは、次の状況では適切でない  プロジェクト内で、効率性の低いリソース使用は受け入れられない。  複雑さを追加する必要はない。 kyrt inc 482018/4/20
  • 50. Gateway Offloading - kyrt inc 502018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/gateway-offloading
  • 51. Gateway Routing - kyrt inc 512018/4/20 https://docs.microsoft.com/ja-jp/azure/architecture/patterns/gateway-routing
  • 54. もともとは StranglerApplication by Martin Fowler https://www.martinfowler.com/bliki/StranglerA pplication.html 絞め殺しの木(Strangler Fig) https://ja.wikipedia.org/wiki/%E7%B5%9E%E 3%82%81%E6%AE%BA%E3%81%97%E3% 81%AE%E6%9C%A8 kyrt inc 542018/4/20
  • 55. Strangler - 使うとき  バックエンド アプリケーションを新しいアーキテクチャ に段階的に移行する場合に、このパターンを使用する 次の状況では適切ではない  バックエンド システムへの要求がインターセプトできな い場合  システム全体の置き換えの複雑さが少ない、小規模 なシステムの場合 kyrt inc 552018/4/20

Notas do Editor

  1. Docs Microsoft .com に、アーキテクチャ関連を集めた、Azure Architecture Center っていうのがある。 いつからあるのか不明だけど、去年の夏ぐらいからある https://twitter.com/takekazuomi/status/901705468300582912 いまでは、日本語にもほぼなってる。 https://github.com/mspnp/architecture-center.ja-jp https://github.com/mspnp/architecture-center.ja-jp/pulls?q=is%3Apr+is%3Aclosed しかも、さとうなおきって人のチェックが入っている これは期待できる
  2. もう知ってる人も多いでしょうが、とりあえずAzure Architecture Center をさくっと見て、パターンにながれます。 https://docs.microsoft.com/ja-jp/azure/architecture/ ここを全部紹介したいところだけど、広すぎるので、デザインパターンだけに絞る。一時間だから
  3. 四年前
  4. 四年後の今
  5. 2つの側面がある。クラウドプラットフォームでは障害が起きやすい。SLA内での障害がある。可用性を高く保つには回復性が必要。
  6. 移行を目的としてアンチコラプションレイヤーを使うと、ストラングラーパターンかな
  7. モバイル機器のアフォーダンスは非常に異なる。 画面が小さいのでデータを表示は少なくなる。サーバー側のリソースへの接続をたくさん開くと、バッテリーの寿命や限られたデータプランの消費を招くなどの可能性がある。 モバイルデバイスの場合は、提供したいインタラクションの性質が大きく異なる可能性がある。 典型的な店舗販売の小売店考えると デスクトップアプリでは、販売する商品を見たり、オンラインで注文したり、店舗で予約したりする モバイルデバイスでは、店舗でバーコードをスキャンして価格比較をしたり、店頭でのオファーを受けたりする(クーポン的な)
  8. ストラングラー