SlideShare uma empresa Scribd logo
1 de 20
Azure Cloud Design Patterns
の歩き方
Takekazu Omi
takekazu.omi@kyrt.in
2017/9/9 R1.0.1
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
以下、CDP本と記述
kyrt inc 22017/9/9
概要
クラウドアプリケーション設計の頻出課題集
Software design pattern の Cloud Application 版
24のパターン
10のガイダンス
ポスター
 http://azure.microsoft.com/en-
us/documentation/infographics/cloud-design-patterns/
kyrt inc 32017/9/9
kyrt inc 42017/9/9
2017年9月現在
Azure Architecture Center
https://docs.microsoft.com/en-us/azure/architecture/
2017/9/9 kyrt inc 5
Azure Architecture Center
kyrt inc 62017/9/9
Azure Application Architecture Guide
スケーラブル、レジデント、可用性の高いアプリケーションをAzureで
設計するための構造化アプローチ
Azure Reference Architectures
シナリオ毎のリファレンスアーキテクチャ、展開可能なソリューション
https://github.com/mspnp/reference-architectures
Cloud Design Patterns
クラウド内の信頼性の高いスケーラブルで安全なアプリケーションを
構築のためのデザインパターン集 +8
Azure Architecture Center
kyrt inc 72017/9/9
Azure Application Architecture Guide
スケーラブル、レジデント、可用性の高いアプリケーションをAzureで
設計するための構造化アプローチ
Azure Reference Architectures
シナリオ毎のリファレンスアーキテクチャ、展開可能なソリューション
https://github.com/mspnp/reference-architectures
Cloud Design Patterns
クラウド内の信頼性の高いスケーラブルで安全なアプリケーションを
構築のためのデザインパターン集
Guidance
Infrastructure
Pattern
Azure Application Architecture
Guide
2017/9/9 kyrt inc 8
 Architecture styles(アーキテクチャスタイル)
7つの異なるアーキテクチャスタイル
 Technology Choices(技術選択)
アーキテクチャ全体に影響があるComputingと
Storageの2つの技術選択を早期に決定
 Design principles(デザイン原則)
自己修復、冗長構成、コーディネート最小化、ス
ケールアウト、パーティーションに関連する制限、
運用デザイン、マネージドサービスの利用、最適
なデータストアの選択、進化のための設計、ビジ
ネスニーズに沿った構築
 Pillars of software quality(品質の柱)
Scalability, Availability, Resiliency,
Management, Security
 Cloud Design Patterns
32
kyrt inc 92017/9/9
Azure Reference Architectures
https://docs.microsoft.com/en-us/azure/architecture/reference-
architectures/
2017/9/9 kyrt inc 10
kyrt inc 112017/9/9
kyrt inc 122017/9/9
https://github.com/mspnp/reference-architectures
Cloud Design Patterns
2017/9/9 kyrt inc 13
pattern 概要
Ambassador ○
コンシューマーサービスまたはアプリケーションの代わりにネットワーク要求を送信するヘ
ルパーサービスを作成します。
Anti-corruption Layer ○ 現代のアプリケーションと従来のシステムとの間にファサードまたはアダプタ層を実装する。
Backends for Frontends ○
特定のフロントエンドアプリケーションまたはインタフェースで消費される個別のバックエ
ンドサービスを作成します。
Bulkhead ○
アプリケーションの要素をプールに分離し、障害が発生した場合でも他の要素が機能し続け
るようにします。
Cache-Aside オンデマンドでデータをデータストアからキャッシュにロードする
Circuit Breaker
リモートサービスまたはリソースに接続するときに修正するまでに多少の時間がかかる障害
を処理します。
Command and Query Responsibility
Segregation (CQRS)
別のインターフェイスを使用してデータを更新する操作からデータを読み取る操作を分離し
ます。
Compensating Transaction
一連のステップによって実行された作業を元に戻すと、最終的に一貫した操作が定義されま
す。
Competing Consumers
同じメッセージングチャネルで受信したメッセージを複数のコンカレントコンシューマで処
理できるようにする。
Compute Resource Consolidation 複数のタスクまたは操作を1つの計算単位に統合する
kyrt inc 142017/9/9
pattern 概要
Event Sourcing
追加専用ストアを使用して、ドメイン内のデータに対するアクションを記述する一連の
イベントを記録します。
External Configuration Store アプリケーション展開パッケージから構成情報を一元的な場所に移動します。
Federated Identity 外部IDプロバイダへの認証を委任します。
Gatekeeper
クライアントとアプリケーションまたはサービス間のブローカとして機能する専用ホス
トインスタンスを使用してアプリケーションとサービスを保護し、要求の検証とサニタ
イズ、要求とデータの受け渡しを行います。
Gateway Aggregation ○ ゲートウェイを使用して、複数の個別の要求を1つの要求に集約します。
Gateway Offloading ○ 共有または特殊なサービス機能をゲートウェイ・プロキシーにオフロードする。
Gateway Routing ○ 1つのエンドポイントを使用して複数のサービスに要求をルーティングします。
Health Endpoint Monitoring
外部ツールが公開されたエンドポイントを介して定期的にアクセスできるアプリケー
ションで機能チェックを実装する。
Index Table クエリで頻繁に参照されるデータストア内のフィールドにインデックスを作成します。
Leader Election
1つのインスタンスをリーダーとして選択し、他のインスタンスを管理する責任を担うこ
とによって、分散アプリケーションの共同作業タスク・インスタンスの集合によって実
行されるアクションを調整します。
kyrt inc 152017/9/9
pattern 概要
Materialized View
必要なクエリ操作のためにデータが理想的にフォーマットされていない場合、1つまたは
複数のデータストア内のデータにあらかじめ作成されたビューを生成します。
Pipes and Filters 複雑な処理を実行するタスクを、再利用可能な一連の独立した要素に分割します。
Priority Queue
優先度の高い要求が優先度の低いものより速く受信され、処理されるように、サービス
に送信される要求に優先度を付けます。
Queue-Based Load Leveling
断続的な重い負荷を円滑にするために、タスクとそのサービスが呼び出すサービスの間
のバッファーとして機能するキューを使用します。
Retry
これまでに失敗した操作を透過的に再試行してサービスまたはネットワークリソースに
接続しようとすると、予期した一時的な障害をアプリケーションが処理できるようにし
ます。
Scheduler Agent Supervisor
分散した一連のサービスと他のリモートリソースにわたって一連のアクションを調整し
ます。
Sharding データストアを水平パーティションまたはシャードのセットに分割します。
Sidecar
アプリケーションのコンポーネントを別のプロセスまたはコンテナに配置し、分離とカ
プセル化を提供します。
Static Content Hosting
静的コンテンツをクラウドベースのストレージサービスに展開します。クラウドベース
のストレージサービスは、クライアントに直接配信できます。
Strangler ○
徐々に特定の機能を新しいアプリケーションやサービスに置き換えて、レガシーシステ
ムを段階的に移行します。
kyrt inc 162017/9/9
pattern
Throttling
アプリケーションのインスタンス、個々のテナント、またはサービス全体で使用される
リソースの消費を制御します。
Valet Key
クライアントに特定のリソースまたはサービスへの直接アクセスが制限されているトー
クンまたはキーを使用します。
kyrt inc 172017/9/9
その他
2017/9/9 kyrt inc 18
 Best Practices
 API design, API implementation, Autoscaling, Background jobs, Caching, Content
Delivery Network, Data partitioning, Monitoring and diagnostics, Naming conventions,
Retry guidance for specific services, Transient fault handling
 Performance Antipatterns
 Busy Database, Busy Front End, Chatty I/O, Extraneous Fetching, Improper
Instantiation, Monolithic Persistence, No Caching. Synchronous I/O
 Design Review Checklists
 Availability, DevOps, Resiliency, Scalability
 Design for Resiliency
 Designing resilient applications, Resiliency checklist, Failure mode analysis
 Scenario guides
 Azure for AWS Professionals, Manage Identity in Multitenant Applications, Migrate
from Cloud Services to Service Fabric, Run Elasticsearch on Azure, Extend Azure
Resource Manager Template Functionality
kyrt inc 192017/9/9
kyrt inc 202017/9/9
End

Mais conteúdo relacionado

Destaque

5分では終わりそうにないfunctionsの話
5分では終わりそうにないfunctionsの話5分では終わりそうにないfunctionsの話
5分では終わりそうにないfunctionsの話Yoshiyuki Taniguchi
 
[de:code 2017] ダウンタイムを最小に! 〜 Azure における障害/災害に耐えうるアーキテクチャ設計のポイント 〜
[de:code 2017] ダウンタイムを最小に! 〜 Azure における障害/災害に耐えうるアーキテクチャ設計のポイント 〜[de:code 2017] ダウンタイムを最小に! 〜 Azure における障害/災害に耐えうるアーキテクチャ設計のポイント 〜
[de:code 2017] ダウンタイムを最小に! 〜 Azure における障害/災害に耐えうるアーキテクチャ設計のポイント 〜Naoki (Neo) SATO
 
Azure Search クックブック
Azure Search クックブックAzure Search クックブック
Azure Search クックブックKazuyuki Miyake
 
Cloud Native Application on DEIS by using 12 factor
Cloud Native Application on DEIS by using 12 factorCloud Native Application on DEIS by using 12 factor
Cloud Native Application on DEIS by using 12 factorYoshio Terada
 
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計de:code 2017
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Kuniteru Asami
 

Destaque (6)

5分では終わりそうにないfunctionsの話
5分では終わりそうにないfunctionsの話5分では終わりそうにないfunctionsの話
5分では終わりそうにないfunctionsの話
 
[de:code 2017] ダウンタイムを最小に! 〜 Azure における障害/災害に耐えうるアーキテクチャ設計のポイント 〜
[de:code 2017] ダウンタイムを最小に! 〜 Azure における障害/災害に耐えうるアーキテクチャ設計のポイント 〜[de:code 2017] ダウンタイムを最小に! 〜 Azure における障害/災害に耐えうるアーキテクチャ設計のポイント 〜
[de:code 2017] ダウンタイムを最小に! 〜 Azure における障害/災害に耐えうるアーキテクチャ設計のポイント 〜
 
Azure Search クックブック
Azure Search クックブックAzure Search クックブック
Azure Search クックブック
 
Cloud Native Application on DEIS by using 12 factor
Cloud Native Application on DEIS by using 12 factorCloud Native Application on DEIS by using 12 factor
Cloud Native Application on DEIS by using 12 factor
 
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
[AC08] 新世代のアーキテクチャに移行せよ。富士フイルムの事例に学ぶ、クラウドネイティブソリューションのビジョンと設計
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
 

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
 
20180421 Azure Architecture Cloud Design Patterns
20180421 Azure Architecture Cloud Design Patterns20180421 Azure Architecture Cloud Design Patterns
20180421 Azure Architecture Cloud Design PatternsTakekazu 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
 

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+
 
20180421 Azure Architecture Cloud Design Patterns
20180421 Azure Architecture Cloud Design Patterns20180421 Azure Architecture Cloud Design Patterns
20180421 Azure Architecture Cloud Design Patterns
 
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 概要
 

Último

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Último (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

2017 9/9 JAZUG 7周年 LT Azure CDP の歩き方

  • 1. Azure Cloud Design Patterns の歩き方 Takekazu Omi takekazu.omi@kyrt.in 2017/9/9 R1.0.1
  • 2. 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 以下、CDP本と記述 kyrt inc 22017/9/9
  • 3. 概要 クラウドアプリケーション設計の頻出課題集 Software design pattern の Cloud Application 版 24のパターン 10のガイダンス ポスター  http://azure.microsoft.com/en- us/documentation/infographics/cloud-design-patterns/ kyrt inc 32017/9/9
  • 6. Azure Architecture Center kyrt inc 62017/9/9 Azure Application Architecture Guide スケーラブル、レジデント、可用性の高いアプリケーションをAzureで 設計するための構造化アプローチ Azure Reference Architectures シナリオ毎のリファレンスアーキテクチャ、展開可能なソリューション https://github.com/mspnp/reference-architectures Cloud Design Patterns クラウド内の信頼性の高いスケーラブルで安全なアプリケーションを 構築のためのデザインパターン集 +8
  • 7. Azure Architecture Center kyrt inc 72017/9/9 Azure Application Architecture Guide スケーラブル、レジデント、可用性の高いアプリケーションをAzureで 設計するための構造化アプローチ Azure Reference Architectures シナリオ毎のリファレンスアーキテクチャ、展開可能なソリューション https://github.com/mspnp/reference-architectures Cloud Design Patterns クラウド内の信頼性の高いスケーラブルで安全なアプリケーションを 構築のためのデザインパターン集 Guidance Infrastructure Pattern
  • 9.  Architecture styles(アーキテクチャスタイル) 7つの異なるアーキテクチャスタイル  Technology Choices(技術選択) アーキテクチャ全体に影響があるComputingと Storageの2つの技術選択を早期に決定  Design principles(デザイン原則) 自己修復、冗長構成、コーディネート最小化、ス ケールアウト、パーティーションに関連する制限、 運用デザイン、マネージドサービスの利用、最適 なデータストアの選択、進化のための設計、ビジ ネスニーズに沿った構築  Pillars of software quality(品質の柱) Scalability, Availability, Resiliency, Management, Security  Cloud Design Patterns 32 kyrt inc 92017/9/9
  • 14. pattern 概要 Ambassador ○ コンシューマーサービスまたはアプリケーションの代わりにネットワーク要求を送信するヘ ルパーサービスを作成します。 Anti-corruption Layer ○ 現代のアプリケーションと従来のシステムとの間にファサードまたはアダプタ層を実装する。 Backends for Frontends ○ 特定のフロントエンドアプリケーションまたはインタフェースで消費される個別のバックエ ンドサービスを作成します。 Bulkhead ○ アプリケーションの要素をプールに分離し、障害が発生した場合でも他の要素が機能し続け るようにします。 Cache-Aside オンデマンドでデータをデータストアからキャッシュにロードする Circuit Breaker リモートサービスまたはリソースに接続するときに修正するまでに多少の時間がかかる障害 を処理します。 Command and Query Responsibility Segregation (CQRS) 別のインターフェイスを使用してデータを更新する操作からデータを読み取る操作を分離し ます。 Compensating Transaction 一連のステップによって実行された作業を元に戻すと、最終的に一貫した操作が定義されま す。 Competing Consumers 同じメッセージングチャネルで受信したメッセージを複数のコンカレントコンシューマで処 理できるようにする。 Compute Resource Consolidation 複数のタスクまたは操作を1つの計算単位に統合する kyrt inc 142017/9/9
  • 15. pattern 概要 Event Sourcing 追加専用ストアを使用して、ドメイン内のデータに対するアクションを記述する一連の イベントを記録します。 External Configuration Store アプリケーション展開パッケージから構成情報を一元的な場所に移動します。 Federated Identity 外部IDプロバイダへの認証を委任します。 Gatekeeper クライアントとアプリケーションまたはサービス間のブローカとして機能する専用ホス トインスタンスを使用してアプリケーションとサービスを保護し、要求の検証とサニタ イズ、要求とデータの受け渡しを行います。 Gateway Aggregation ○ ゲートウェイを使用して、複数の個別の要求を1つの要求に集約します。 Gateway Offloading ○ 共有または特殊なサービス機能をゲートウェイ・プロキシーにオフロードする。 Gateway Routing ○ 1つのエンドポイントを使用して複数のサービスに要求をルーティングします。 Health Endpoint Monitoring 外部ツールが公開されたエンドポイントを介して定期的にアクセスできるアプリケー ションで機能チェックを実装する。 Index Table クエリで頻繁に参照されるデータストア内のフィールドにインデックスを作成します。 Leader Election 1つのインスタンスをリーダーとして選択し、他のインスタンスを管理する責任を担うこ とによって、分散アプリケーションの共同作業タスク・インスタンスの集合によって実 行されるアクションを調整します。 kyrt inc 152017/9/9
  • 16. pattern 概要 Materialized View 必要なクエリ操作のためにデータが理想的にフォーマットされていない場合、1つまたは 複数のデータストア内のデータにあらかじめ作成されたビューを生成します。 Pipes and Filters 複雑な処理を実行するタスクを、再利用可能な一連の独立した要素に分割します。 Priority Queue 優先度の高い要求が優先度の低いものより速く受信され、処理されるように、サービス に送信される要求に優先度を付けます。 Queue-Based Load Leveling 断続的な重い負荷を円滑にするために、タスクとそのサービスが呼び出すサービスの間 のバッファーとして機能するキューを使用します。 Retry これまでに失敗した操作を透過的に再試行してサービスまたはネットワークリソースに 接続しようとすると、予期した一時的な障害をアプリケーションが処理できるようにし ます。 Scheduler Agent Supervisor 分散した一連のサービスと他のリモートリソースにわたって一連のアクションを調整し ます。 Sharding データストアを水平パーティションまたはシャードのセットに分割します。 Sidecar アプリケーションのコンポーネントを別のプロセスまたはコンテナに配置し、分離とカ プセル化を提供します。 Static Content Hosting 静的コンテンツをクラウドベースのストレージサービスに展開します。クラウドベース のストレージサービスは、クライアントに直接配信できます。 Strangler ○ 徐々に特定の機能を新しいアプリケーションやサービスに置き換えて、レガシーシステ ムを段階的に移行します。 kyrt inc 162017/9/9
  • 19.  Best Practices  API design, API implementation, Autoscaling, Background jobs, Caching, Content Delivery Network, Data partitioning, Monitoring and diagnostics, Naming conventions, Retry guidance for specific services, Transient fault handling  Performance Antipatterns  Busy Database, Busy Front End, Chatty I/O, Extraneous Fetching, Improper Instantiation, Monolithic Persistence, No Caching. Synchronous I/O  Design Review Checklists  Availability, DevOps, Resiliency, Scalability  Design for Resiliency  Designing resilient applications, Resiliency checklist, Failure mode analysis  Scenario guides  Azure for AWS Professionals, Manage Identity in Multitenant Applications, Migrate from Cloud Services to Service Fabric, Run Elasticsearch on Azure, Extend Azure Resource Manager Template Functionality kyrt inc 192017/9/9