Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Chaos Studio を使おう!

mihohoi
June 27, 2024
120

Azure Chaos Studio を使おう!

2024/6/22 Azure Travelers で発表した内容です。
https://jat.connpass.com/event/308087/

mihohoi

June 27, 2024
Tweet

Transcript

  1. Miho Kurimoto (mihohoi) • 日本マイクロソフト Cloud Solution Architect • 出身:名古屋

    • 特に好きな分野 • Kubernetes などコンテナー製品 • 運用と監視、IaC (とにかく運用が楽になる事) • SNS • Twitter:@Danny_miho • Zenn:https://zenn.dev/mihohoi • 技術書典に出店しました(本はこちら) • 趣味 • 編み物 • 将棋(観る将) • JOJO が好きです! https://www.youtube.com/watch?v=PFUy3W-FeAY&t=662s
  2. カオスエンジニアリングとは  システムの信頼性や回復力を向上させる ための実践手法  意図的にシステムに障害や「異常な状 態」を引き起こさせて、状態を確認し、シ ステムがどのように対処(または意図し た動作)になるかを確認する手法 

    目的  システムが予期せぬ障害に対しても適 切に対応し、サービスの中断を最小限に 抑える  システムの信頼性と回復力が向上し、 実際の障害が発生したときにも迅速に 対処できるようになる カオスエンジニアリング https://www.oreilly.co.jp/books/9784873119885/
  3. カオスエンジニアリングの原則 ▪ 「カオスエンジニアリングの原則」というガイドラインがある(日本語もある) ✓https://principlesofchaos.org/ja/ ▪ これは何? ✓Casey (https://twitter.com/caseyrosenthal) と Netflix

    のカオスエンジニアリングチームが開発した概念お よびガイドライン ▪ 何が載っているの? ✓5つの応用的な実践方法  定常状態における振る舞いの仮説を立てる  実世界の事象は多様である  本番環境で検証を実行する  継続的に実行する検証の自動化  影響範囲を局所化する
  4. 仕組み ▪ Chaos Studio では 2 種類の方法がサポートされている ✓サービス直接  エージェントのインストールやインストルメンテーションが不要で、Azure

    リソースに対して直接実行できる  リソースの再起動などで選択できる方法 ✓エージェント ベース  仮想マシンなどに対しエージェントをインストールすることで、実行できる  細かい障害(メモリの負荷など)を実行できる ▪ 設定できる障害の例 ✓次ページで紹介 エージェントが入った仮想マシン
  5. 障害(フォルト)の例 対象 障害名 シナリオ 仮想マシン CPUに負荷をかける コンピューティング容量の損失、リソースの負荷 プロセスの強制終了 依存関係の中断 ネットワークの切断

    ネットワークの中断 時刻の変更 時刻同期の問題 App Service App Service の停止 サービスの中断 AKS Pod の停止 コンテナーの中断 Event Hub 状態変更 メッセージング インフラストラクチャの構成の誤り/中断 Key Vault 証明書の無効化 証明書の中断 Service Bus キュー状態の変更 メッセージング インフラストラクチャの構成の誤り/中断 サブスクリプション状態の 変更 メッセージング インフラストラクチャの構成の誤り/中断 ▪ 上記以外にも頻度高くフォルトが追加されています
  6. 設定 Step1: VM Branch1 : XXサービスの停止 Action: フォルトの記載 Branch2 :

    仮想メモリの負荷 Action: フォルトの記載 Step2: CosmosDB Branch1 : CosmosDB のフェールオーバー Action: フォルトの記載 カオス実験 ▪ 1つの「カオス実験」の中に複数の 障害を入れられる ▪ ターゲットリソースも複数入れられる ✓つまり、1連のシナリオとして実行できる ▪ Step > Branch > Action
  7. 利用するタイミング ▪ 検証時 ✓アプリケーションの開発初期段階からカオス実験を導入することで、設計の弱点や潜在的な問題を早期に 発見できます。これにより、後の開発段階で大きな修正が必要となるリスクを低減できます。 ▪ 本番環境へのリリース前 ✓本番環境へのリリース前に、カオス実験を実施してシステムの信頼性と回復力を検証します。これにより、実 際のユーザーが影響を受ける前に問題を発見して解決できます。 ▪

    システムアップデートや変更時 ✓システムのアップデートや大規模な変更を行う際に、カオス実験を実施して新しい変更がシステムの安定性に 与える影響を評価します。 ▪ 障害対応訓練として ✓チームの障害対応能力を向上させるために、意図的に障害を発生させて対応手順を確認する訓練としてカ オス実験を利用します。これにより、実際の障害発生時に迅速かつ効果的に対応できるようになります。
  8. まとめ ▪ Azure Chaos Studio の障害(フォルト)は徐々 に種類が増えてきています ▪ カオスエンジニアリングの本質を理解してワークロード に加えいきましょう

    >Azure Chaos Studio のドキュメント https://learn.microsoft.com/ja-jp/azure/chaos-studio/ >クイック スタート: Azure Chaos Studio を使用してカオス実験を作成して実行する https://learn.microsoft.com/ja-jp/azure/chaos-studio/chaos-studio-quickstart-azure-portal