Azure アーキテクチャセンターでは、Azure Well-Architected Framework が公開されています。
docs.microsoft.com
Azure Well-Architected Framework
一言でいえば、Azure をベースとしたシステムを構築する際に役立つアーキテクチャ設計のガイダンスです。
Azure が提供する PaaS や Serverless のリソースを使えば、簡単かつ短期間にシステムを動かすことはできますが、
- 本番環境でそのシステムを継続的に稼働させるための運用を想定していますか?
- 想定されるセキュリティ脅威への対策が組み込まれていますか?
このような留意事項が最初から考慮されているシステムは、意外と少ないのではないでしょうか?
Azure Well-Architected Framework では、フレームワークの柱とされる 5 つの設計観点が紹介されています。
- コストの最適化
- オペレーショナル エクセレンス
- パフォーマンス効率
- 信頼性
- セキュリティ
非機能要件の網羅性を検討する際には、ISO9126 の品質特性や IPA の非機能要求グレードを使うことが多いかと思います。その中でもクラウドで重要な項目に特化したものが、この 5 つの柱となります。
それに加えて、設計原則と具体的なソリューションのベストプラクティスも紹介されており、Azure のシステム設計に関わる人であれば、一読しておきたい内容です。
Azure Advisor
Azure Portal には、Azure Advisor という機能があり、構築したリソースの構成内容を分析し、最適なソリューションを提案してくれます。
このカテゴリが Azure Well-Architected Framework の 5 つの設計観点となっているため、うまくリンクさせて活用したい機能です。
検知された影響度合いでアラート通知を設定することもできます。最初はちゃんと構成を組んだけど、それ以降はおざなりになることはよくあるので、継続的に構成を監視してくれるのは助かります。
azure.microsoft.com
ラーニングパス
Azure アーキテクチャセンターのドキュメントを読む以外にも、Microsoft Learn にラーニングパスが用意されているので、こちらのコンテンツもお勧めです。
まとめ
漠然とクラウドらしい優れたアーキテクチャを設計しようと考えても、なかなか難しいものです。Azure Well-Architected Framework を使うことで、非機能要件を抜け漏れなく網羅的に検討できると思います。
- システムといっても範囲は広いので、インフラ、アプリケーション、データのようにレイヤーを分けて考える必要がありますし、共同責任モデルの話も関連してきます。
- この 5 つの設計観点を完全に満たしたシステムを構築するためには、コストがかかりますし、構造も複雑化するので、トレードオフが発生します。設計の選択に影響を与える方針や優先事項は、システムごとに異なります。
これらも考慮したうえで、設計を決めた根拠を明確にし、その結果に責任を持てるようにしたいです。