Microsoft Azure Virtual Training Day: Well-Architected 受講メモ

株式会社船井総研デジタルのよもぎたと申します。よろしくお願いします。
Microsoft Azure Virtual Training Day:Well-Architected を受講しましたので、そのレポートです。

# トレーニングの概要

## スケジュールと申し込み方法

* 2日にわけて、3時間＋2時間半の講義が用意されたオンラインセミナーです。
* 申し込みはMicrosoftの[こちらのページ](https://www.microsoft.com/ja-jp/events/top/training-days/)から行えます。
* イベント名としては **Microsoft Azure Virtual Training Day: Well-Architected** が該当します。10/5現在、残念ながら次の開催は未定のようです。

## 何が分かるトレーニングか

* Microsoft/AzureのWell-Architectedフレームワーク（WA-FW）は何ものか、その活用の最初の一歩になるトレーニングです。

* [Microsoft Azure Well-Architected Frameworkのサイトはこちら。](https://learn.microsoft.com/ja-jp/azure/architecture/framework/)

## この記事について

* このトレーニングの概要をお伝えします。
  * どんな講義がされたか、トピック、見出しレベルの記載
  * どんなデモがあったかのご紹介
* 資料や講義の文字起こし的な内容はございません。
* AWSのフレームワークとの比較も気になるところですが、手を出せません。


# トレーニングの構成・アジェンダ

トレーニングはの概要を紹介し、WA-FWを構成する五つの柱について解説する、という構成をとっています。1日目でWell-Architected の概要の説明と二つの柱の説明、2日目で残りの三つの柱を説明する構成となっています。

* Well-Architected の概要

WA-FWの五つの柱は次の通りです。

* セキュリティの柱
* パフォーマンス効率の柱
* オペレーショナル エクセレンスの柱
* 信頼性の柱
* コスト最適化の柱

> どこかでみたことあるな。

---

# トレーニングレポート

## WA-FWの概要説明

* 優れたアーキテクチャでワークロードを設計・実行することがなぜ必要かの説明がまずありました。
* WA-FWでユーザーがなにをできるようになるのか？の説明。具体的には、次の三つのことができるようになると説明されました。
  * 実証済みのベストプラクティスによってワークロードを構築できるようになる。
  * パフォーマンスの高いワークロードを設計できるようになる。
  * 実用的な分野に重点を置いてワークロードを最適化できるようになる。

* WA-FWは、次の六つの要素の中心に位置するものと説明されました。
  * Azure WA レビュー
  * Azure Advisor
  * ドキュメンテーション
  * パートナー、サポート、サービスオファー
  * リファレンスアーキテクチャ
  * 設計の原則

私は、ユーザーにより上手くクラウドを使ってもらうためのエコシステムの中心、と理解しました。　

### デモ

実際に、WA-FWのレビューについてのデモもありました。
チェックリストに回答 → レポートが提供されて、チームで共有可能とのことです。
レポートには技術的なガイドが提供されていることです。

また、各柱の質問についても概観し、各柱でいくつかの質問をピックアップして紹介・掘り下げがされました。

質問はかなりの量があり、細かなことまでヒアリングされるので、答えるのは大変だと感じました。組織内で誰がそれに答えられるのか？ そこから考えないといけないと思われる質問も多くありました。それに見合ったアドバイザリーが提供されることを期待したいものです。

## セキュリティの柱について

Microsoftのセキュリティに関するアドバンテージとして、つぎのことが紹介されていました。
* 多額の投資をしていること
* 総合的なセキュリティソリューションを提供していること
* 膨大な量の脅威インテリジェンスを蓄積して活用していること

> [先週のDigital Summit 2022でも、Microsoftは世界最大のセキュリティベンダと言っていましたしね。](https://qiita.com/t_ymgt/items/8ddbf77d82eefce1cbfe)

それに続いて米国でのユーザー事例の紹介の紹介がありました。

そして、セキュアなワークロードを構築、運用していくために何をしていくべきか、それを支援するためにAzureは何を提供しているか、が紹介されました。

## パフォーマンス効率の柱について

モノリシックなアプリケーションからマイクロサービスで構成されるアプリケーションにシフトしたことにより、より高度で専門的な知識と監視・計測が必要になることが指摘されていました。

パフォーマンス効率を低下させるアンチパターンを蓄積してカタログ化していてることも紹介されていました。パフォーマンスの問題にを発見し、対処するために提供されているツールも紹介されていました。パフォーマンス効率性の追及がコスト効率の追及にもつながることが示唆されていました。

Day1はここまでです。

---

続いて、Day2の概要・紹介です。Day2は、残りの3つの柱についての説明です。

## オペレーショナルエクセレンスの柱について

持続可能なアプリケーション環境を構築するためのがどラインを提供することが目的として挙げられていました。

そのためのキーになるのは、次のような事柄です。
* アジャイルで正確なプロセス
  具体的には、IaC、CI/CD、テスト自動化
* 包括的な監視。具体的には、
  * 構築とリソースのプロセスの監視
  * インフラとアプリの正常性の監視
  * ワークロードの正常性を把握してビジネス目標への影響を監視する

## 信頼性の柱

信頼性が重要な理由として、 **「パブリッククラウドでは障害が必ず起きるため」** をされていました。

別にクラウドに限らず、オンプレデータセンタでもオフィスビルのサーバルームでも、障害は起きると思いますけれどね。あえてそこには触れないのでしょう。

> 私自身は、**ハードウェアは壊れるし、ソフトウェアはバグがあるし、人はミスをする**ものと思ってます。

強いて言えば、「**パブリッククラウドなら障害は起きない** 」という誤解をしている、妄想を抱いている人にクギをさすのが目的でしょうか。

信頼性の柱の目標としては、障害の局所化、ダウンタイムの最小化、データロストの回避があげられていました。
そのために次のことが重要と指摘されていました。
* 信頼性を念頭に置いて設計する
* 可用性と回復性をテストする
* 監視と診断を行う

また、この柱の紹介では英国企業の事例紹介がありました。

個人的な感想としては、責任共有モデルなので、サービスプロバイダーが提供するものを最大限活用し、ユーザーはユーザ自身が取り組まなければならないことに集中するのがよいと感じました。

## コスト最適化の柱

この柱の前提として、次の二点が紹介されていました。
* ユーザー企業から、ITコストの最適化が優先事項の一つであると指摘されていること。
* 調査企業のレポートでも、コスト最適化・削減が5年連続でトップの課題であることが分かっていること。

この柱でも、米国内のユーザー企業事例が紹介がありました。

コストの監視、最適化は一時的・一回限りの取り組みではなくて、継続的な取り組みが必要と指摘されていました。

コストを把握・監視する、制御する、アラートを受け取る、同じサービスをより安価に利用するための手段・オファーが多数、提供されていることも紹介されました。

また、設計段階からコスト最適化を考慮する必要があることも指摘されました。

個人的な感想としては、高可用性やセキュリティ強化の追及はコスト増につながることが多いですが、だからといって、単純にコスト削減ばかり追求すると可用性やセキュリティが損なわれることになりかねません。ビジネス目的に応じて適切な判断をすることが必要だと感じました。エンジニアとしては、その材料を分かりやすく提供できるようになる、そのためにツールとオファーを理解するとともに、両立するための手段を多く確保していけるようになりたいと考えました。

---

私の目標である、セキュリティに強いクラウドインフラエンジニアかつ、先週の[Digital Trust Summit 2022 Day1視聴メモ](https://qiita.com/t_ymgt/items/8ddbf77d82eefce1cbfe)で書いた「IT/DX投資に見合った、出来ればそれ以上のリターンを得ていただけるのをお手伝いができるエンジニア」になるためには、このフレームワークを理解し活用していくことが必要だと感じました。

このセミナーは、WA-FWの全体像を紹介する、第一歩といいった内容でした。今後、継続的なウォッチ・学習対象に入れて、実務に役立てられるようにしていきたいと思います。

以上です、最後までお付き合いいただきありがとうございました。