kkamegawa's weblog

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

Azure DevOps 2022年振り返り

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

qiita.com

特に大きく宣伝していたわけでもなかったのですが、たくさんの方に参加していただけました。ありがとうございます。カレンダーに登録されていないけど、12月中に書かれた記事もいくつか見かけました。

正直ね、もうGitHubの勢いがすごくてほんとに終わると思っていましたよ。GtiHub (Enterprise)が代わりになるにはあと2-3年はかかるかなぁとは思っていましたが、予想よりも早く終わらせるのかなとも思っていたので、Buildとかで発表されるのかとほんとにドキドキしていましたが、なんとIgniteでDefender for DevOpsが登場、BoardsやPipelinesもぼちぼち強化が続き、どうやら併用していく方針のようです。Code ScanningやSeacret Scanningがないことが困っていたので本当に助かります。

統合したほうが開発リソースなどもいいのでしょうけれど、そうもいかないエンタープライズでの活用が大きく、無視できなかったんですかね。

今年リリースされた機能はリリースノートを数えた(機能数をExcelにコピペしてグラフ化)によると82。

去年が80だったので、かろうじて増えたという感じですね。2022年上半期(1-6月)は半分行ってなかったので、後半になってから増えたという感じです。BoardとPipelinesおよびセキュリティが改良の中心ですけど。来年にはビルドエージェントが.NET 6へ移行するし、Azure DevOps Server 2022も出たし、arm64も飛躍するし(まだかな…)、やることはいっぱいありそうです。

セキュリティ回り

細かい穴というか、より細かく制御できるようにした感じでしょうか。

  • Create personal access tokens to deploy to the Marketplace
  • Pipeline Agent supports Group Managed Service Accounts as service account
  • Fixed looping login issue due to incorrectly configured IP conditional access policies
  • New PAT scope required to update pipeline General Settings

など

Boards

New Boards Hubがパブリックプレビューになり、Preview Featureで有効にすると様々なプレビュー機能が有効になります。リリースノートに書かれている新機能はほぼこのプレビューに依存しているので、試してみてはどうでしょうか。

Delivery Plansも着実に強化されています。

  • New Boards Hub now available in public preview
  • Visualize all dependencies on Delivery Plans
  • Last Accessed column on Delivery Plans page
  • Increase Delivery Plans team limit from 15 to 20

GitHubのissueやProjectもだいぶ良くなりましたが、Boardsのほうが便利なところもあるので複数の利害関係者が割と近いセキュリティ境界において、複数プロジェクトをみるならまだBoardsのほうがいいかなぁとは思います。来年末くらいになるとわからないですが。

Pipelines

macOSは毎年xxxx-latestが入れ替わります。macOSのhosted agent使う人は気を付けましょう。UbuntuとWindowsは5年ですかね。YAMLのみに制限できるようになりました。classic移行のカウントダウンでしょうか。まだGUIを使っている人はそろそろ慣れましょう。Managed Identityのサポートが徐々に始まったことも非常に助かります。

  • Ensure your organization only uses YAML pipelines
  • Service hook for job state change
  • Template Expressions in Container Resource Definition
  • Template Expressions in Repository Resource Definition
  • Container Registry service connections can now use Azure Managed Identities

おわりに

来年の計画の主なものは公開されています。もちろん隠し玉的なものもあるのでしょう。そういうものはBuildやIgniteでの発表をお楽しみに、ですかね。

learn.microsoft.com

GitHubといい影響を与え合うのか、食い合うのかわかりませんが😅。ちなみに初めてこういうものを使うのであればGitHubの方が覚えることやややこしいことがないので、いいとおもいます。

Azure DevOps 2022/12/8の更新

今年最後となるであろうAzure DevOps Sprint 213リリースノートの翻訳を行いました。オリジナルはこちらからご覧ください。

learn.microsoft.com

例年通りであれば来年先頭のスプリントはスキップされるかもしれません。今年も16回のリリースノートの翻訳になりましたね。来年もぼちぼちやっていこうと思います。

BoardsのコメントのURLがとれるようになったのは助かりますね。特定のコメントをほかに共有しやすくなります。

Pipelinesはほぼセキュリティ強化ですね。Container Registry接続時にMSIが使えるようになるのは本当に助かります。MSIの活用はほかの機能でも予定されているので、楽しみです。

とうとうClassic Pipeline(GUIで設定するパイプライン)廃止の準備なのか、OrganiztionもしくはプロジェクトレベルでClassicパイプラインの新規構築を不可にできるようになりました。すでにあるパイプラインの実行や編集は問題ありません。REST APIも失敗するようになるので注意してください。当面オプトインしなければならないので、問題ありません。新規作成Organiztionもデフォルトは無効です。

Pipelineのジョブの状態変化でService Hook設定できるのも便利ですね。利用方法がいろいろ考えられます。

Generalへの更新を行う場合、PATのスコープ設定に変更があるので注意してください。

今までパイプラインエージェントを使うには「全部」か「特定のパイプライン」しかなく、一度与えると取り消す方法がなかったのですが、改善されたようです。

GitHubのforkレポジトリのPull Request時に変更されているとマージ時に困るので、アクセストークンを読み取り専用にしたそうです。注意してください。

macOSとUbuntuのlastestバージョンが変更されました。-latestを指定してビルドしている場合、入っているツールセットによっては失敗することになる(特にXcode)ので、注意しましょう。おそらくGitHub Actionsも同じでしょう。

ではまた来年。

translate to Japanese to Azure DevOps release not…

Visual Studio 2022で .NET 6 Webアプリが作れなかった話

Visual Studio 2022(普段使いはPreviewですがStableでも同じです)で、.NET 6のWeb Appを作ろうとしたんですよ。

作成したプロジェクトを開くとCreateBuilderがエラーになってしまう。

あれ?プレビューだから?と思ってStableでやっても同じ。cliでやってみるかと思ったら、.NET 7入れているからglobal.jsonを設定しないとつかってくれないな、正確なバージョンが必要だったなぁと思って、dotnet --list-sdksで見てみると…あれ?

learn.microsoft.com

….NET 7しか入ってないやんけ。この前まで確かに入れていたような記憶があるのですが、消えたのですかね?仕方ないのでwingetで.NET 6 SDKをインストール。

dotnet newで新規プロジェクトを作るとちゃんと開けました。

※ もちろんVisual Studioで作っても問題ありません。

いつ消えたのかなぁ?Visual Studio更新時にEOLになったコンポーネントを自動的に削除する設定にしていますが、まだこれは大丈夫なはずなんだけど。

Azure 用Windows 日本語版コミュニティイメージを公開する

qiita.com

いささかずるいですが😅、内容がDevOpsに近いということで。Azure Compute Galleryに全世界誰でも使えるコミュニティイメージを提供する機能が追加されました(2022/12/1現在プレビュー)。これでやってみたかったのが、「日本語Windowsイメージを作って共有する」です。Azureなどのイメージを日本語化する記事はそれこそたくさんあるのですが、もうめんどくさいですよね。

learn.microsoft.com

プレビュー申請すればだれでも使えます。イメージ生成する料金(ビルド用VM)はかかりますが、コミュニティイメージの保持やトラフィックは無料です。使用方法はWindowsのVMイメージ選ぶ際に「コミュニティイメージ」を選択して、発行元(Publisher)でkkamegawaをキーにして検索してください。

こんな感じで一つだけ出てきます。今は日本語イメージのプレビューテストということで制限がいくつかあります。解決方法知っている人がいたら教えてください。

イメージの制限

  • ログインしてもMS IMEが追加されていません。設定から追加してください。

リリースの制限

  • バージョン番号はプレビュー中なのでちょっと適当です(自動生成)。
  • 毎月パッチがリリースされた後イメージを更新します。
  • Japan Eastのみで提供しているのでJapan East以外でこのイメージを使ったVMは作れません(Azure Compute Galleryの制限)。ほかのリージョンも希望があれば複製します。
  • Gen 1イメージかつWindows Server 2019のみです。Windows Server 2022(Azure Edition)やGen 2イメージはそのうち
  • インストールされているのは.NET Framework 4.8のみです。ほかのソフトも多くの人の需要があり(Azure CLI/PowerShell Coreなど)、ライセンス上問題がない(Visual Studioなどは不可)ものだけインストールします。

実際に使っているAzure Image Builderのソースも公開しています。

github.com

追加してほしいもの、small disk版が欲しいなどがあればGitHubのissueに書いてください。MS IMEを追加した状態で起動するPRもお待ちしています。

残念ながらAzure Pipelinesではhosted agentの制限時間(60分)を超えてしまうため、self hostを用意しなくてはならないので、CIはそのうち…。ということで、DevOpsネタに関連付けます😅。