kkamegawa's weblog

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

Azure DevOps オンライン Vol.4を開催しました

久しぶりにオンラインイベントやってみて疲れました…いつものラジオでは掛け合いができるのですが、一人でしゃべるのはなかなか難しいですね。

直前でTeams URL変更してしまったにもかかわらず、参加していただいた皆様、YouTubeでご覧になった皆さん、配信を手伝っていただいたAzure Rock Starプログラムの皆様ありがとうございます。

(追記)動画を追加しました。


www.youtube.com

資料を公開しています。ちょっと前にTwitterでデプロイと承認について聞かれたので、いい機会かと思ってまとめてみました。次回の内容は未定ですが、これまた使っている人が少ないものの、使うと非常に便利なAnalytics Viewとかいいかなぁと思っています。使われている方少ないかもしれませんが、使うと非常に強力な視覚化ができます。

以前のオンプレミスのAzure DevOps ServerではSQL Reportingつかっていましたが、今はAnalytics Viewが推奨のはずです。インストールもオプションになっていますし、そもそもSQL Server内蔵でもなく、別インストールになりました。

https://colinsalmcorner.com/work-item-hierarchy-reports-in/colinsalmcorner.com

海外のMVPの人が作ったやつですが、Power BI使ってこんな感じに作れるんですよ。

Azure DevOps 2020/8/19の更新

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

docs.microsoft.com

今回も少ないですね…翻訳その日にほとんどできていたんですが公開を忘れてました😅。LinuxのScale set agentってEnvironment上書きできなかったんですね。これでPremium SSDをworkspaceに指定できるようになりますね。

Delivery Plansとユーザーピッカーでの細かいバグ修正などだけのようです。前回から2週間でのリリースなのでこんなものなんですかね。

ではまた三週間後。

Translate to Japanese to Azure DevOps release not…

Teamsで画面共有するときはHDRビデオストリーミングをオフに

ここしばらくYouTubeの配信で「マウススクロールすると画面がバタつく」とか「色が飛んでますね?」という指摘をいただいていたのですが、いろいろ調べてやっとわかりました。

結論から言うと、HDRストリーミングが使える場合、Windows 10の設定でHDRを有効にしていると起きるようです。私はDellのU3219QとU2720Qを使っていて、U2720QはフルHD解像度で画面全体を共有して配信しています。

f:id:kkamegawa:20210822105051p:plain

HDRオンの状態でU2720Qを共有すると、こんな感じに色が白くなっていますね。動画ではないのですが、マウス使ってスクロールすると画面がばたばたバタつきます。

f:id:kkamegawa:20210822105055p:plain

HDRをオフにすると、こんな風に普通の(?)状態になります。マウスでスクロールしても大丈夫です。このU2720QはHDRサポートしているので、PS4のYouTubeやAmazon Prime VideoアプリつないでもHDR有効にするといいですよ的なことを言われました(なんかアプリチェックがうまくいかなかったので無効にしてますが)。

設定でここにあるHDRをオフにします。

f:id:kkamegawa:20210822105100p:plain

これで画面共有してマウススクロールしてもバタつかなくなりました。うーん、これHDRオンにしても何とかならないのかな。

Azure PipelinesでEnvironmentsの排他デプロイ時挙動の違い

Azure PipelinesでEnvironmentsを使った場合、様々なチェックがかけられます。

  • 承認
  • デプロイ時間制限
  • コンテナーイメージ入手元チェック
  • Azure Policy評価
  • Gitブランチチェック
  • Azure Functionを実行
  • REST API呼び出し
  • Azure Monitorでの呼び出し先評価
  • パイプラインのテンプレートに所定のものを使っているか
  • 排他制御

この中で最後の排他制御というのは複数の人間が同時にコミットした場合でも、順番に一つずつデプロイを実施するという機能です。ドキュメントではすごく簡単に書かれていますが、わかりづらいですよね。

docs.microsoft.com

今までの挙動としては、「一番最後にデプロイしたもののみがデプロイされる」という挙動になっています。

master/mainやreleaseブランチのように修正が必ず累積的になっている場合はこれでいいのですが、緊急修正のパッチのように、特定の箇所だけ修正してリリースすることになると、必ずしも修正が累積的になっていない場合があります。それで最後のhotfixのリリースだけデプロイされると途中のhotfixが本番に入らないことになって問題になります。

この問題を解決するのがSprint 190の新機能lockBehaviorです。

docs.microsoft.com

f:id:kkamegawa:20210815183402p:plain

イメージではこうなります。下のlockBehavior: runLatestが今までの挙動で、同じEnvironmentにデプロイする場合「最新の」ものだけデプロイされます。図ではhotfix/2ブランチのコミットがデプロイされないという挙動です。

Sprint 190の新機能lockBehavior: sequentialをYAMLで指定すると、Environmentへのデプロイすべてが順番に行われることになります。

f:id:kkamegawa:20210815165206p:plain

Environmentを作成して、Exclusive Lockを指定します。次にYAMLにlockBehavior: sequentialを指定します。stageでもpipeline全体どちらでもいいのですが、実験した範囲ではpipeline全体に指定しないと動かなかったような…もうちょっと調べてみます。

f:id:kkamegawa:20210815165225p:plain

lockBehavior: sequentialを指定した場合、hotfix/1348,hotfix/1349,hotfix/1350それぞれのブランチがデプロイされました。

今度は逆にlockBehavior: runLatestもしくは、指定しない場合、最初と最後のデプロイだけ実行されます。

f:id:kkamegawa:20210815165215p:plain

真ん中のhotfix/1349ブランチのデプロイが行われていません。

f:id:kkamegawa:20210815165219p:plain

詳細を見ても、キャンセルされたと表示されています。大きなデプロイでこの挙動を使うと安全にhotfixのデプロイができるようになるのでぜひ使ってみてください。

(追加)
GitHubに使ったYAMLを含めたサンプルを用意しました

github.com