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!

Azure DevOps 2019/12/2の更新

Azure DevOps Sprint 161の翻訳を行いました。オリジナルはこちらから読んでください。

docs.microsoft.com

Sprint 161で今年終わりだと思っていたのに、間隔短くしてSprint 162までリリースされたので、冬休みの宿題みたいになってしまいました…何とか今年中に終わらせます。

この中で特に気に入っているのは複数のレポジトリからチェックアウトできるようになった機能ですね。例えばHugoとかの静的サイトジェネレーターではテーマと本体が別のレポジトリということも珍しくありません。

こんな場合Submodule使っていたんですが、Azure DevOps側で簡単に対応できるのは便利です。

Python 2.7でUCS-4のサポートとはちょっと意外でした。もう来年早々にサポート終わるのに…。

Slackおよび、TeamsアプリでプロジェクトにあるRepos / ビルド定義を丸ごと追加できるようになったのもいいですね。今まで一つずつ追加で困っていたので助かります。

ではまた近日中に。

Translate to Japanese to Azure DevOps release note ...

Azure DevOpsのサポートを受ける方法いろいろ

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

qiita.com

Azure DevOpsのサポート受ける方法がわからないという声をたまに聴くので、ちょっとまとめてみます。Azure DevOpsのサポートは有償、無償、MSがやっているもの、コミュニティと複数のパスがあります。

コミュニティ

いつものリリースノートにも書かれていますが、Stack Overflow, MSDN forum(こちらはもうすぐMicrosoft Q&Aになるそうですが)があります。バグなどはVisual Studio Communityへ。

stackoverflow.com

製品担当者の人も回答しているようです。ただし英語だけ。

まだプレビューですが、MSDN / Technet ForumからMicrosoft Q&Aに移行するらしいです。

docs.microsoft.com

docs.microsoft.com

Azure DevOpsはまだないようですが、それよりもVisual Studio Communityのほうがいいようです。

developercommunity.visualstudio.com

オンプレミスとサービスで場所が違うので気を付けて。こちらも公式は英語です。たまに日本語などの英語以外も見かけますが、機械翻訳で認識されるかもしれないので、できれば英語がおすすめです。Azure DevOpsなどのReport Bug機能で通知してもいいですね。

公式サポート

MS自身が提供する公式サポートです。

https://azure.microsoft.com/ja-jp/support/devops/azure.microsoft.com

f:id:kkamegawa:20191212053516p:plain

サポートポータル。Virtual AgentはQ&Aを探す、チケットを発行する、リージョンの移動をするといったことがインタラクティブにできます。

f:id:kkamegawa:20191212053526p:plain

Basic / Premire / 課金のサポートがあります。Basicは管理者でもログインできなくなったときとかのやり取りで使えるはずです。昔はリージョン移動もこれでできたのですが、今はチャットボットがあるのでそちらを使ったほうがいいでしょう。

オンプレミスのAzure DevOpsを使っている場合、真ん中のPremireを使う必要があるようです。

f:id:kkamegawa:20191212053532p:plain

チャットボットです。これ使えばorganizationのリージョン移動が可能です。リージョン移動については以前書きましたので、そちらを参考にしてください。

kkamegawa.hatenablog.jp

二つほど移行してみましたが、移行期間は結構長い間とっておかないと失敗が続いてずるずる伸びてしまいます。

f:id:kkamegawa:20191212053521p:plain

最後はAzureポータルから。こちらはサポート契約しているサブスクリプションがあればそのままポータルからサポートリクエストの発行ができます。

CSP契約などでポータルから直接発行できない場合はCSP窓口にサポート発行する手段があるはずなので、そちらでどうぞ。

Azure DevOps Server 2019 Update 1.1適用で削減されたメモリ

devblogs.microsoft.com

Azure DevOps Server 2019 Update 1.1が公開されました。このバージョンからSQL Server 2019にも対応しています。いろいろ新機能はあるのですが、最大の改善といえばメモリ使用量でしょう。

f:id:kkamegawa:20191213222330p:plain

Update 1.1適用前のAzure DevOps Server 2019 Update1です。Webサーバーとコード・作業項目検索だけ入れています。

Commons Daemon Service Runnerがコード・作業項目検索で4.4GBくらいとってますね。IIS Worker Processも1.6GBくらい。

TFSJobAgentが638MB。使っているとこのプロセスがどんどんメモリを使っていきます。

f:id:kkamegawa:20191213222336p:plain

こちらはAzure DevOps server 2019 Update 1.1を当てて、ページを一通りアクセスした状態です。TFSJobAgentが256MBくらいとだいぶメモリ削減されています。

これインストール後で軽く動かしただけですが、かなり差がありますね。メモリイーターなんじゃないかと思うくらい使っていたAzure DevOps Serverですが、少しはよくなったようです。もう少しいろいろ使ってメモリの経過観察してみます。これで少しは良くなったかな。

それでもやはり16GBではフルセットを軽く動かす程度かなと思います。できればWeb / 検索 / SQL Serverを別々にでしょうかね。