kkamegawa's weblog

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

2019年にリリースされたAzure DevOps機能の振り返り

遅れましたが、Azure DevOpsアドベントカレンダー25日目の記事です。

qiita.com

今年はAzure DevOpsSprint 146からSprint 162までリリースされましたが、この一年を振り返ってどんな一年だったかまとめてみたいと思います。

一般

Sprint 147で新しいナビゲーション(垂直方向の新UI)が全員に対して展開されました。賛否両論あったUIですが、昔のUIはもう古いTFSでしか見ることができなくなっています。使っている技術も変わっているようですね。ただし、複雑なというか、掘りつくさないといけないUIは変わっていないので、もう少し整理が必要な気はします。

Sprint 148でAzure CLIにDevOps拡張機能が公開されました。基本的に今まであったPowerShellベースのほうからこちらに移行することになるのかな?という感じです。PowerShellは.NETベースのオブジェクトモデルを使っていたので、ほかのプラットフォームでは使えませんでした。Sprint 152ではazコマンドから直接REST APIを呼べるようになったのも便利です。

Sprint 150で流行りの(?)Darkテーマがサポートされました。私は使ってないんですが、たまにみかけますね。あと、docsのサイトもOSのテーマに追従するようになっていますね。突然ダークで表示されてちょっとびっくりします。

お買い上げの方法や、GitHubでのサインインが//Buildでアナウンスされました。GitHubアカウントでのサインインはやったことないですが、裏でMSアカウントを作っているはずなので、ちょっとだけ注意ですかね。Sprint 155ではGitHubをコラボレーターとして招待できるようにもなっています。

IPアドレスが明確化されたので、Firewallで制御しやすくなりました。サインイン用のアドレスは別途必要なので、IPアドレスだけですまないのですが、よくなったと思います。

VS Subscriptionを割り当てるグループを作っておけば自動的にorganizationで展開されるという、Azure ADと連携した自動的にサービスごとのロール設定できるようになったのも大規模では便利ですね。

後全般的に言えることですが、GitHubおよび、GitHub Enterprise, BitBucketなどの外部サービスの連携も非常に強化されました。

Azure Boards

大きいのはSlackおよび、Teamsアプリの公開でしょうか。あとGitHub側にもBoardアプリの提供が開始されました。issueに慣れている人は別にいいと思うんですが、複数のレポジトリを串刺しで管理したい場合、Boardsのほうが向いているとは思います。

従来のExcelでのタスク編集も便利だったのですが、Windowsのみだったので、クロスプラットフォームをサポートするCSV取り込みも便利ですね。Azure-CLIと連携して他のツールでCSVを生成して、Azコマンドで取り込みするという連携が可能になっています。

Azure Repos

こちらもSlackTeamsアプリが公開されました。余談ですが、Slackのほうが先になるのはやはりエンジニアが使っているのはSlackのほうが多いから、という理由もあるんでしょうかね。Slack便利だし、よくできていると思います。年末にようやく一括登録のサポートが行われて助かりました。

地味ですが、非en-usというか、マルチバイト文字が一般的な地域ではエンコーディングサポートも大変助かります。

大規模な環境では複数のレポジトリのブランチポリシー設定も便利ですね。

Azure Pipelines

もう多すぎてわからないくらい機能強化されたAzure Pipelinesです。最大の拡張はYAMLパイプラインでしょうか。クラッシックのGUIエディターに追いつけ追い越せでできないことがかなりなくなってきました。昔からパイプラインの編集にWorkItemを関連づけたいというフィードバックはしていたのですが、こういう形になるとは思っても見ませんでした。競合のSaaS CIサービスはほとんどYAMLサポートしているのでこうなったのでしょうけど。

Multi-Stageの対応GitHub Actionsの対応Jiraのサポートといった連携運用も多くなりました。

そして、Kubernetisサポートもどんどん拡張されていきました。今はほぼKubernetis専用のEnvironmentsも他のサービスにも対応して欲しいですね。特にWeb AppsやVMに対応してもらえるといいなぁ。

Visual Studio 2019やUbuntu 18.04、macOSが増えた結果、Hosted Poolが増えすぎて収集がつかなくなったこともあり、一つの仮想的なHosted Poolにまとめられました。これで誰がキューに入れているか分かりやすくなったので、大規模環境では特に便利かなと思います。

Repos, Boardsと同様にPipelinesにもTeamsとSlackアプリがリリースされました。承認作業もできるようになったので、TeamsやSlackをフロントエンドにできるようになったのも大きいですね。

Pipeliesはおそらく今後ももっと強化されるでしょうけど、欲を言えばもう少しHostedの性能とか制限を緩和して欲しいかなぁという気はします。サポートされ始めましたが、PipelinesでのDockerイメージのキャッシュももっと頑張って欲しいかな。

TIPSとしてはmacOSは実機を使っているので、JavaScriptとか.NET CoreとかビルドするときはmacOSを選ぶのがいいというのは当面変わらない回避方法になるという状況は当面続くんでしょうかね。

Azure Tests

大きいというか、唯一と言ってもいい改善はTest PlansのUI更新でしょうかというか、これ以外ないような。テスト実行でいくつか改善はありましたが、それらは全部Pipelines側の改善なんですよね。

テスト実行結果をAnalytics Viewとかでよりよく見えるようになる改善は期待したいと思います。

Azure Artifacts

Public Feedの公開と容量課金への変更でしょうか。

今までは無制限でしたけど、容量課金になったことで共有の戦略を考えた方がいいですね。容量課金とは言っても、組織内で一つに集約するとかした方がいいですね。ただし、Pipelineで受け渡すためのArtifactsはこの課金の対象外だそうですので、安心してください。

Analytics

Analyticsが一般提供開始になりました

あとはほとんどWidgetの改善でしょうか。ビルドごとのレポートも大変便利ですね。こういうのもうちょっと使いこなしていきたいです。

Power BIにこういうビルド結果とかテスト結果を流したいので、もうちょっと自分でも使ってどんなことができるのか試してみたいです。前のXAMLビルドではちゃんとビルド結果をSQL Reportingに出せたので、またやりたいですね。

Wiki

mermaidがサポートされたのはちょっとびっくりでしたが、会社で使っている人がいて、確かに便利そうでした。

Boardのクエリ結果を挿入できる機能もリリースノート書くときとか便利ですよね。

Wikiの更新通知もいいですね。通知だけど、メールやWebhookの通知があるともっと良さそう。というか、SlackやTeamsへの通知もあるといいな。

Wikiの中身はGitレポジトリなので、流用できそうな気もします。

オンプレミスのAzure DevOps Server 2019

2019 Update 1.1がリリースされています。大体Sprint 159くらいまで入っているんじゃないでしょうか。上記の話は割とオンプレミスにも当てはまります。アップグレード大変だと思いますし、コード検索を毎回生成し直しも大変だと思います。この辺改善して欲しいですね。とりあえずメモリイーターだった状態は改善されたので、今後も引き続きよろしく!

総括

自分が気になったところだけをまとめてみましたけど、「こんなお気に入りの機能がある」とかありましたら是非かいてみてください。やはりどうしてもPipelinesに偏ってしまう傾向があると思いますが、いろいろ使い出があるサービスなので、是非活用して開発効率を改善してみてください。

来年も楽しんでHappy Coding!