Slide 1

Slide 1 text

Well-Architected Framework を活⽤した Azure 設計パターン あつまれ未来のアーキテクト︕ クラウドでのアプリケーションアーキテクチャー設計を知ろう @kazuyukimiyake

Slide 2

Slide 2 text

About Me 三宅 和之 @kazuyukimiyake 株式会社ゼンアーキテクツ CTO Microsoft MVP ( for Microsoft Azure ) Vue.js ⽇本ユーザーグループ運営 PaaS がかりの部屋(Blog): https://k-miyake.github.io/blog/

Slide 3

Slide 3 text

Agenda 1. Microsoft Azure Well-Architected Framework について 2. Well-Architected Framework を活⽤した Azure 設計 オペレーショナルエクセレンス観点 パフォーマンス効率観点 信頼性観点 セキュリティ観点 コスト最適化観点 3

Slide 4

Slide 4 text

Azure Well-Architected Framework について

Slide 5

Slide 5 text

アーキテクチャを取り巻く環境の変化 従来 オンプレミス前提のフルカスタマイズ(≒ オレオレアーキテクチャ) 現在 クラウド前提のアーキテクチャ -> アーキテクチャもパターンやフレームワークを活⽤する時代 すべてをゼロから考える必要がなくなる(⾞輪の再発明防⽌) 実証済のベストプラクティスを流⽤できる 5

Slide 6

Slide 6 text

Azure Well-Architected Framework(W-AF) とは 安全で、信頼性が⾼く、効率的なアプリケーションの設計、構築、およ び継続的な改善を促進するためのベストプラクティス https://docs.microsoft.com/ja-jp/azure/architecture/framework/ 5 つの観点 オペレーショナルエクセレンス パフォーマンス効率 信頼性 セキュリティ コスト最適化 6

Slide 7

Slide 7 text

なぜ W-AF なのか︖(三宅流解釈) Well-Architected Framework が必要となった背景 ⾃前で作る箇所を減らすべき ベストプラクティスをできるだけ再利⽤すべき Well-Architected Framework のねらい ⾮機能要件の実現ベストプラクティス集 「個別システムでゼロから考えないでください集」 W-AF に定義されていることで外して嬉しいことはほとんどない 7

Slide 8

Slide 8 text

Azure Well-Architected Framework を活⽤する

Slide 9

Slide 9 text

W-AF を活⽤した Azure アーキテクチャ設計パターン ⾮機能要件を実現するためのパターンとして活⽤できる 開発リソースをビジネス⾯(機能⾯)にフォーカスできる 9

Slide 10

Slide 10 text

「パフォーマンス効率」観点での Azure 設計 リソースをスケーリングできるようにする 潜在的なボトルネックを識別して最適化する 10

Slide 11

Slide 11 text

「パフォーマンス効率」: 関連 Azure サービス Event Hubs Storage Queue App Service/Functions Cosmos DB ... 11

Slide 12

Slide 12 text

スケーリング 12

Slide 13

Slide 13 text

パフォーマンスの最適化 13

Slide 14

Slide 14 text

「パフォーマンス効率」: リファレンス W-AF ドキュメント - パフォーマンス効率 https://docs.microsoft.com/ja-jp/azure/architecture/framework/scalability/overview 関連するクラウド設計パターン キュー ベースの負荷平準化パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/queue- based-load-leveling コマンド クエリ責務分離 (CQRS) パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/cqrs 14

Slide 15

Slide 15 text

「信頼性」観点での Azure 設計 アップタイムを維持する データ損失や⼤規模災害から復旧する 15

Slide 16

Slide 16 text

「信頼性」: 関連 Azure サービス Azure Storage SQL DB Cosmos DB Front Door/App Gateway ... 16

Slide 17

Slide 17 text

⾼可⽤性アーキテクチャ 17

Slide 18

Slide 18 text

障害からの復旧が可能なアーキテクチャ 18

Slide 19

Slide 19 text

「信頼性」: リファレンス W-AF ドキュメント - 信頼性 https://docs.microsoft.com/ja-jp/azure/architecture/framework/resiliency/overview 関連するクラウド設計パターン バルクヘッド パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/bulkhead サーキット ブレーカー パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/circuit- breaker 19

Slide 20

Slide 20 text

"オペレーショナルエクセレンス"観点での Azure 設計 アプリケーションがどのように実⾏中であるかを完全に表⽰可能にする 開発とリリースの実務をより機敏なものにする 20

Slide 21

Slide 21 text

オペレーショナルエクセレンス: 関連 Azure サービス GitHub Actions/Azure Pipelines Terraform App Insights Monitor ... 21

Slide 22

Slide 22 text

DevOps DevOps は、エンド ユーザーへの価値の継続的デリバリーを可能にする 22

Slide 23

Slide 23 text

モニタリング 23

Slide 24

Slide 24 text

「オペレーショナルエクセレンス」: リファレンス W-AF ドキュメント - オペレーショナルエクセレンス https://docs.microsoft.com/ja-jp/azure/architecture/framework/devops/overview 関連するクラウド設計パターン 外部構成ストア パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/external- configuration-store 正常性エンドポイントの監視パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/health- endpoint-monitoring 24

Slide 25

Slide 25 text

「セキュリティ」観点での Azure 設計 ゼロトラストモデルを前提としたセキュリティ設計を推奨する 多層防御の観点から複数のセキュリティ対策を導⼊する 25

Slide 26

Slide 26 text

「セキュリティ」: 関連 Azure サービス Azure Active Directory/AAD B2C App Gateway VNet ExpressRoute ... 26

Slide 27

Slide 27 text

ID とアクセス管理 ゼロトラストモデルを前提に、ID がセキュリティ保証の基礎を提供する 27

Slide 28

Slide 28 text

ネットワークセキュリティ 28

Slide 29

Slide 29 text

「セキュリティ」: リファレンス W-AF ドキュメント - セキュリティ https://docs.microsoft.com/ja-jp/azure/architecture/framework/security/overview 関連するクラウド設計パターン フェデレーション ID パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/federated- identity ゲートキーパー パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/gatekeeper 29

Slide 30

Slide 30 text

「コスト最適化」観点での Azure 設計 スケーラブルなコスト、従量課⾦制のメリットを⽣かせる構成 適切なリソース、適切なサイズでプロビジョニングする 継続的にコストの監視と最適化を⾏う 30

Slide 31

Slide 31 text

「コスト最適化」: 関連 Azure サービス API Management Cost Management Azure Functions Azure SQL DB ... 31

Slide 32

Slide 32 text

コスト最適化を考慮した設計 リソースの需要と技術要件は時間の経過と共に変化することを前提に設計する 32

Slide 33

Slide 33 text

コストの監視と分析 ビジネス、アプリケーションの変化にあわせてコストを継続的に最適化する 33

Slide 34

Slide 34 text

「コスト最適化」: リファレンス W-AF ドキュメント - コスト最適化 https://docs.microsoft.com/ja-jp/azure/architecture/framework/cost/ 関連するクラウド設計パターン スロットリングパターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/throttling コンピューティング リソース統合パターン https://docs.microsoft.com/ja-jp/azure/architecture/patterns/compute- resource-consolidation 34

Slide 35

Slide 35 text

まとめ W-AF を教科書的に学んだり覚えたりする必要はない ⾮機能要件からの設計時に W-AF を参考にしてみる 実際の Azure サービスと紐づけるとイメージしやすい アーキテクチャパターン を活⽤する 35

Slide 36

Slide 36 text

Well-Architected Framework のホワイトペーパー 「Azure Light-up Well-Architected Framework テクニカルパート概要編」 発⾏: ⽇本マイクロソフト株式会社 監修: ゼンアーキテクツ 三宅 和之 ダウンロード: https://zenarchitects.co.jp/posts/azure-well-architected- framework-whitepaper 36

Slide 37

Slide 37 text

zenarchitects.co.jp