【Ignite2025】PowerShell と CLI を AI と組み合わせて使用​​し、資産を管理する

概要

Azureの管理において、手動操作からスクリプトによる自動化、さらにはIaCへの移行を支援するための新機能とAI活用法の紹介です。

DORA指標を改善することを焦点に置いたツール群が紹介されました。

DORA指標(DevOps Research and Assessment)とは

Deployment Frequency(デプロイ頻度)

  • 定義: 本番環境へのソフトウェアのリリース頻度。
  • 詳細: 「週に1回」より「1日に複数回」の方が望ましい状態です。一度に大量の変更をリリースするのではなく、小さな変更を頻繁にリリースすることで、フィードバックのサイクルを速め、リスクを分散させることができます。

Lead Time for Changes(変更のリードタイム)

  • 定義: コードがコミット(確定)されてから、本番環境で稼働するまでの所要時間。
  • 詳細: 「数ヶ月」かかる状態から「数日」「1時間未満」を目指します。これが短いほど、顧客の要望やバグ修正に対して迅速に対応できていることを意味します。

Change Failure Rate(変更失敗率)

  • 定義: 本番環境へのデプロイが原因で障害が発生し、修正(ホットフィックス、ロールバックなど)が必要になった割合。
  • 詳細: 0%〜15%程度が理想とされています。これが高いと、新しい機能をリリースするたびにチームが障害対応に追われることになります。

Time to Restore Service / MTTR(サービス復旧時間)

  • 定義: 本番環境で障害が発生した際、サービスを復旧させるまでにかかる時間。
  • 詳細: 「1日以上」から「1時間未満」を目指します。障害をゼロにすることは不可能ですが、起きたとしてもすぐに直せる体制(自動化された復旧手順やIaCによる環境再構築など)があるかが問われます。

背景

これまでのポータルやコマンドによる運用にはいくつか課題があるので、その課題解決に向けて取り組んでいます。

課題1:ポータル操作(ClickOps)は簡単だがヒューマンエラーが多く、繰り返し作業や共同作業に不向き

解決策1:ClickOpsからIaCへ移行し、Azure CLIやPowerShellで簡単かつ迅速にデプロイを行う

課題2:スクリプト作成は構文やパラメータなど、難易度が高い

解決策2:Azure Copilotでスクリプトの作成や実行を自動化する

課題3:自分が削除しようとしている対象が本当に正しいのか、コマンドを実行する瞬間の恐怖心やストレスがある

解決策3:変更をプレビューする

課題4:コマンドで実行する作業をIaCに落とし込む作業難易度が高い

解決策4:実行したコマンドからBicepファイルをエクスポートする

新機能の紹介

Azure CopilotとCloud Shellの統合

単純にCopilotに聞いてコマンドを教えてもらうだけでなく、PortalでCloud Shellを開いてコマンドの編集や実行をおこなうことができるようになりました。

<真ん中のプレースホルダーで編集、プレースホルダー横のRunを押せばCloud Shellで実行される>

コマンドにWhat ifパラメータを追加

Azure CLIにwhat ifパラメータを、PowerShellにdry runパラメータが追加されます。

–what-if (-DryRun) とは?

コマンドを実行する前に、「何が作成、変更、削除されるか」をシミュレーションし、差分(Diff)を表示するパラメータです。内容によって差がありますが、解析に1分くらいかかります。

コマンドの末尾に–what-ifと付けると解析が始まり、diffコマンドのようにこれから起こる差分を表示します。

コマンドにexport-bicep パラメータを追加

Azure CLIやPower Shellでの操作は「命令的コーディング」と呼ばれるもので、スクリプトを作成してステップバイステップで行うアプローチです。

命令的コーディングは手順のようなもので、これまで通り進めてきたステップを再現できることです。

一方で、IaCでは「宣言型のコーディング」と言われるBicepで管理されることがほとんどであり、プロセスではなく「最終的な構成結果」を記述します。

この命令型のコーディングから宣言型のコーディングへの落とし込みが、非常に負担のかかる作業になっていました。

–export-bicepパラメータ

通常の実行コマンドに–export-bicepというパラメータを追加することで、これから作られるリソースのBicepファイルを自動生成しエクスポートしてくれます。

Mac使ってるやんこの人・・・

出力したファイルはこんな感じでBicepファイルとして見れます。

このように、コマンドのパラメータに含めることで命令型のコードから宣言型のコードへ簡単に変換することができるようになります。

まとめ

これらの内容はプレビューのため、使いたい場合は以下のQRコードからFormsに飛んで連絡を取る必要があるみたいです。

コメント