kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Viva Goalsの目標管理とAzure DevOpsを連携させよう - Azure DevOpsのセットアップ

お断り: OKRはViva Goalsを通じてしか知らないので、実際のOKRの運用は専門家に相談してください。

これはAzure DevOps アドベントカレンダー1日目の記事です。

qiita.com

Microsoft 365 ファミリーのアドオンとなるViva Suiteをご存じでしょうか。Viva Suiteの一つであるViva GoalsはOKRを管理するソリューションの一つです。

www.microsoft.com

Azure DevOpsの機能の一つであるAzure Boardsもビジネス上の目標を設定して、タスクとして管理するところは同じです。ということは連携したいと思うのが人情です。はい、できるのです。Azure DevOps以外にもGitHubやGitLabなどとも連携できます。

learn.microsoft.com

Viva Suiteには体験版がありませんが、単体のGoalsには60日体験版があるので、アクティベートでして使ってみましょう。簡単に試してみましたが、Viva Goalsよりも先にAzure DevOpsのタスクをどうやってGoalsと連携するか運用ルールを考えておいたほうがいいと思います。もちろんこれはOKRを定義するチームごとに変わっていてもかまわないでしょう。あくまでもOKRを管理するのはViva Goalsであり、イニシアチブとなるタスクをAzure Boardsのタスクから連携するという形だからです。

Azure DevOps拡張機能インストール

marketplace.visualstudio.com

Viva Goalsの拡張機能があるので追加します。

連携方法を検討する

ドキュメントにもある通り、使うケースとしては以下の三種類です。

  1. タスクを使用してイニシアチブの進行状況を追跡する。
  2. KPI を使用してイニシアチブの進行状況を追跡する。
  3. キー結果の進行状況を追跡する

例えば、1番のようにイニシアチブの配下にあるタスクのみAzure Boardsの内容を持ってくればいい、ということになるとAzure BoardsのTaskのみ連携するというのも考えです。上位のEpicや```Feature````と連携させて、配下のタスクをすべてViva Goalsと連携させるのもいいでしょう。

今回はEpicから連携していくことにします。個人的にはShared Queryを使うことをお勧めしたいと思います。

Shared Queryを用意する

いろいろやり方はあると思いますが、既存のプロジェクトを壊さずGoalsと連携するWork Itemにタグをつけるのがいいでしょう。タグ配下のタスクも自動的にGoalsへ読み込まれるので、配下すべてにタグをつける必要はありません。最初からGoalsを使う想定でAzure Boards作るならプロジェクトテンプレートのカスタマイズも便利です。例えばイニシアチブの進捗をProduct backlogで管理するとすると、Goalsと連携するみたいな項目を作っておいて、有効にしたものだけGoalsで管理するというやり方ですね。

こんなクエリを作ってShared Queryに保存しておけばほかの皆も使えるので便利です。

次回はViva Goalsのセットアップをしてみます。

Azure DevOps 2023/11/16の更新

Azure DevOps Sprint 230リリースノートの翻訳を行いました。多分次のSprint 231が今年最後になるんじゃないかなと思います。オリジナルはこちらからご覧ください。

learn.microsoft.com

Web SDKが更新されるそうです。Webベースの拡張機能を提供している人は要対応ですね。拡張機能といえば、ビルドタスクはnode.js 16を前提にしていますが、OpenSSLの都合でEOLが前倒しされて、今後はNode 20を前提にするようです。Node 20になったらArm版でも動きそうです。

タスクといえば結構廃止されるタスクも多いので、気を付けましょう。IISWebAppDeploymentとかDotNetCoreInstallerV1SqlServerDacpacDeploymentV1あたりは使っている人いるかもしれませんね。2024/1/31までなので急ぎましょう。

AzureRmWebAppDeploymentタスクがEntraに対応したそうです。ただし、Windows Server 2022のホストイメージじゃないとだめだそうです。気を付けてください。

承認関係も強化されました。通常リリースは適切なワークフローを回す必要がありますが、そうもいかない場合もままあります。夜間の緊急のセキュリティ修正とか、インフラ系の変更への追従などです。そういう時に回避するのがバイパス機能です。誰でもできるわけではなくて、チェックを定義した管理者のみです。

テンプレート機能は必須のチェックを強制するために便利な機能ですが、今までGitHub, Azure Repos, BitbucketだけでしたがGitHub Enterprise Serverも含まれるそうです。便利な機能なのでぜひ使ってください。

同じく承認でAzure Functionsを使って、デプロイ先がデプロイ可能かどうかチェックする(sanity checkというそうです)機能を実装することがありますが、チェック時だめでももう一度再実行できるようにんあるそうです。これはいいですね。

GitHubのissueとの連携もより信頼性高くなるそうで、使っている人はぜひプライベートプレビュー申し込んでみましょう。

今回も信頼性とかメンテナンス系が多いですが次回もお楽しみに。ではまた三週間後。

translate to Japanese to Azure DevOps release not…

TestBase for Microsoft 365を試してみる

TestBaseとは

for Office 365といわれていたころから一応あることは知っていましたが、Entraに紐づくサブスクリプションがなかったのと、ちょっとお高めのイメージがあったので、使えなかったんですよね。お仕事で試せる機会があればと思っていましたが、Armデバイスのプレビューが始まった時に申し込みの機会があったので申し込んでみました。今回はArmでのテストではありません(プレビュー通ればやってみます)。

learn.microsoft.com

ドキュメントに「Azureサービスです」と書かれている通り、使うのはAzureポータルからです。サインアップすると100時間くらいの無料枠が付いてくるようです。なんでAzureに含まれるサービスではありますが、Intuneへのデプロイ前にカスタムアプリケーションのテストに使えるので、E2Eテスト環境として最適です。

似たものとしてAzure PipelineがサポートするDeployment Groupおよび、Azure Playwrite Testingサービス(プレビュー)というものがあります。

learn.microsoft.com

azure.microsoft.com

TestBase Deployment Group PlayWrite Testing
テスト対象 - クライアントOS
- サーバーOS
- プレビューOS
いずれもWindows
任意のOS PlayWriteでサポートされているWindows/Linux
独自OSイメージ 不可
対象アプリ Storeおよび、Windowsアプリ, Webも頑張れば? デプロイ対象で動くもの任意 Webのみ
価格 無料枠ありの有料 対象VMの料金とPipelineの料金 最初の100分は30日無料。そのあと分単位の従量課金
CI統合 SDKはあるので頑張る サポート サポート

用途に応じてサービスを使い分けることになります。TestBaseとしては組織内や販売するアプリケーションの展開前テストという意味合いが強いでしょうか。もちろんMicrosoft 365 Apps(Officeアプリ)も含まれるので、Officeアプリケーションのアドイン(もう基本的に廃止方向ですが)との互換テストにもいいと思います。ただ、OSは英語になるはずなので、自分で言語設定変えるスクリプト入れ込むか、カスタムイメージを用意するとなるとちょっとつらいでしょうね。

使用してみる

AzureポータルからTestBaseアカウントを作ってパッケージをアップロードしてみます。今回はMicrosoftが用意しているサンプル(テストスクリプトが入っているzipをアップロードしてテストする)でやってみます。

github.com

アカウント作成後、Upload pre-build packageを選択します。どれを選んでも次の画面で変更できるので問題ありません。

所定のフォルダー構成とスクリプト名で圧縮したzipファイルを選択してアップロード、パッケージ名とバージョンを決めます。セマンティックバージョン推奨です。なお、余談ですがこの画面で「やっぱりやめた」とキャンセルするとTestBaseのNew Package一覧にごみが残るので気を付けてください(気づいたら数個残っていた…)。

packega sourceでIntuneのパッケージや普通のwin32アプリケーション、wingetのリポジトリからも選択可能です。

例えばPackerとか。一つ注意しなければならないのは、「WinGetに公開されているバージョンが即時反映されていないっぽい」ということです。例えばGoLang 1.20.8や1.20.9がありません。wingetレポジトリにはあります。

github.com

同期されていないこともあるようです。

次は何のテストをするかです。今回はOut of Box(スクリプト外のアプリ)のテストを選びます。ちなみにMicrosoftのサンプルではストアのToDoアプリをテストします。Functional(機能テスト)やFlow Drivenも同時に選択可能です。

今回は使いませんが、Office入りが必要であれば、Pre-install Microsoft appsを有効にして対象のOfficeのアーキテクチャやチャネルを選択します。

テストスクリプトにはルールがあります。終了時(close)、インストール時(install)、起動時(launch)、削除時(uninstall)それぞれに従ってスクリプトの編集を行います。今回は出来上がったスクリプトの名前から自動判定してくれたので、そのままです。

Windowsには毎月パッチと年に一度の機能更新があります。そのどちらか、あるいは両方をテストするかどうかです。

セキュリティ更新の対象となるOS、機能更新の対象となるOSを一つ以上選択します。

これはどのOSからの更新かというベースラインイメージの選択です。OSの機能更新を選択した場合は必須です。

これで保存すれば完了です。

Varidationが実行されます。これがかなり長いです。割と単純なスクリプトだと思ったのですが1時間くらいしてやっとreadyになりました。

右端のRun on requestをクリックしてもまだComming soonでした…。

でも一応varidationが終わった時点で動き出しているようで、ちゃんとこんな風にテスト中の状態が見えます。

まとめ

複数のバージョンのWindows Client OSやServer OSを用意して、インストールテストするのは大変だと思います。TestBaseはそういうところでうまく使えそうです。

CIと絡めたパッケージの更新やIntune使った展開もやってみたいですね。

2023/11/5 追記(テスト結果)

8時間くらいかかって終了していました。今回のパッチではセキュリティパッチ検証1台につき1時間ちょっとかかっていますね。機能更新でも同じくらいかかっています。Build versionもしっかり10月のBパッチを使っていますね。

こちらは実行したときの様子です。信頼性、メモリ使用量(8GBのVMですね)、CPU使用状況の比較もできます。同じTo DoでもOSバージョンによって結構誓いが見て取れます。今回は起動テストだけですね。

ログや実行したときの動画もダウンロードできます。割と大きいファイルになります。今回どちらも60MBくらいのzipでした。アプリ起動までに結構待つもんですね。スクリプトなのかな。今回のテストでは800x600くらいの動画になっていましたが、変えられるのかな。

結構面白いですね。セキュリティパッチどのくらいでTestBaseにリリースされるのかわかりませんが、CIと関連させてテストできれば使いどころはあると思います。

Azure DevOps 2023/10/26の更新

Azure DevOps Sprint 229のリリースノートの翻訳を行いました。オリジナルはこちらからご覧ください。

learn.microsoft.com

…かなり少ないですね。Ignite前だからでしょうか。記事中にはAdvanced Securityのドキュメント公開した、と書かれていますが、該当のURLをクリックしてもトップページに飛ぶだけです。TOC経由で見てもありません。ちょっと聞いてみますが、しばらくお待ちください、でしょうね。learnのビルドとコンテンツ公開って数日から一週間レベルでかかるらしいですし。

GitHubからforkしたレポジトリの自動ビルドを無効化しているそうです。これはちょっと困る人も多いと思いますが、これは仕方ないんでしょうね。私も一つ作ったばかりでしたが先日有効化しました。

NuGet関連のタスクが二つ(Installerとrestore)の古いバージョンが廃止になるそうです。2023/11/27以降失敗するとのことなのでお早めに。

Advanced Securityのドキュメントは早く公開されるのを待っています。あんなことやこんなことをやりたい(できるかどうかはまだわからない)。

ではまた三週間後…となるとIgnite後ですね。期待です。

translate to Japanese to Azure DevOps release not…