MS Build 2025 in Seattle参加レポDay3
Day3はKeynoteはなくセッションから開始
ちょっと今日はあまりセッションが聞けず少な目ですいません...orz
明日はお仕事の関係で午前中はBuildに行けないんですが、11:30のセッションに間に合ったらDay4のレポ上げます。
今日はセッションの合間にアイコンの実写版ぬいぐるみを連れて行ってMVP&RDボードの前で記念撮影。

Making Azure DevOps and GitHub Greater than the Sum of their Parts
Azure DevOpsとGitHub Enteriseそれぞれのいい所をうまく使っていこう!という内容のセッション


- Azure DevOpsかGitHubか?「どちらかを選ぶか」じゃない!両者をコラボレーションさせて使っていこう
シナリオ1: すべて(Azure Repos, Boards, Pipelines等)がAzure DevOpsにある場合
- この場合でもGitHub CooilotやAdvanced Securityは使用できる。しかし使用できる機能には限りがある(※Azure DevOpsのライセンス料とは別途で課金が必要)
- この場合はソースコードがAzure Reposにあり、GitHub Codespaceが使えないのでGHCPの使用はVSCodeで使用することになる(Agent mode、Editなども使用可能)
シナリオ2: ソースコードをGitHubに移してAzure DevOpsの機能と統合して使用

- この場合にシナリオ1に比べてあなたが利用できる機能は以下の通り。
- Codespace
- GitHub Advanced Security(※別途ライセンス購入が必要)
- GitHub Copilotのフル機能(※別途ライセンス購入が必要)
- また、画像の通り、Azure DevOpsのAzure Boards, Pipelines, Test PlanもGitHub Enterpriseと統合しながら使用することができる


-
これらの機能を活用し、かつGitHub Enterprise Cloudのdata residencyの恩恵も受けたい、そしてAzure Boardsも使いたいという場合はAzure BoardsとGitHubを紐づけることができる。
-
これによりAzure Boardsのwork itemにGitHubでの変更(Pull Request)、ブランチを紐づけることができる。

-
GitHubで作成したPRがmergeされたときにAzure Boardsのステータスを反映したい(ここの例ではPRが完了したらAzure Boardsのwork itemをresolvedに)時は、GitHubのPRで画像の[Resolved:AB#51]のようにステータスとAzure Boardsのwork item idを指定する。そうするとステータスがAzure Boardsに反映される。


- このシナリオ(GitHubのReposにソースがある、Azure Boardsと統合されている)場合、GitHub側での変更は紐付けたAzure Boardsのwork itemで確認できる。またAzure DevOpsのリッチなDashboardを使った作業の追跡や可視化の恩恵も受けることができる。

- GitHub Copilotのレビューを受けると、画像からもわかるように追跡性を向上させるという点でDevOpsのプラクティスにも適っているということがわかる


- またこのシナリオではPR作成時のチェック(自動テストを含む)はAzure Pipelinesで実施している。
- Azure Pipelinesでは実行したテストの結果をこのようにわかりやすく可視化してくれる

- GitHub上にソースコードがあるため、GHASの機能もフルに使用することができる。Copilot Autofixによるセキュリティリスクの修正提案やセキュリティOverviewでのセキュリティリスクの可視化などの恩恵も受けることができる。

- GitHub.com上のGitHub Copilotに対してReposの理解を深めるためのパーソナルカスタマイズ用のpromptの設定など(GitHub.com上のGHCPのimmmersiveモードで使える)も使用可能

- これらの体験を試してみたくなった?そんなあなたのための機能がGitHub Enterprise Importerだ
- Azure Boardsのwork item内にあるリンク、PRの履歴をすべて保持したままAzure Reposの内容をGitHub Enterprise Cloudに移行する事ができる
MCP Server for Azure DevOps


- Azure DevOpsとGitHub Copilotのコラボレーションを向上させ、両者の恩恵を最大限に享受できるのがMCP Server for Azure DevOps。
- これによってGitHub CopilotはAzure DevOpsのコンテキストを持つ事ができるし、GitHub Copilotを介したwork itemの更新や取得ができる。


- たとえば、AzDO上のWork item listを表示したり、Azure Boardsのチケットに記載されている要件や仕様について教えてくれたり、GitHub Copilotを介したwork itemの更新をしてくれる。
- この機能はこれから2週間後ぐらいには利用できるようになるだろう。
ClosingとGitHub Enteprise×Azure DevOpsへの道
- おすすめとしては、ソースはGitHubに移して、GitHub CopilotやGitHub Adavanced Securityの恩恵を最大限に受け、Azure Boardsにおける作業の追跡性やダッシュボードでいい感じに可視化できることの恩恵を受けるのがベストだろう。
- そのために実行できるアクションは以下の通り
- まずはAzure Reposにコードがある状態でGitHub Copilotを使ってみる
- リポジトリのAzure Repos→GitHubへの移行を計画して、GitHub Enterprise Importerを使う
- リポジトリをGitHubに移行して、Azure Boards, pipelinesとGitHubを接続する
※スライドでは時間の関係で割愛したが、GHECを買えばAzDOのライセンスもついてくる。別々に課金する必要はない
所感
- Azure DevOps or GitHub?というここ最近地味に多かったQuestionに対して「GitHub一択!」ではなくてAzDOとGitHub組み合わせるのがいいよ!というanswerはよき
- やっぱり最強はAzure Boards+GitHub EnterpriseでBoardsのリッチなプロジェクト管理とGitHubでCopilotとかのAI系機能がフルで使えるって構成だよね!って思ってたので答え合わせできてよかった。(ダッシュボードでLead/Cycle Timeの計測ができる、forecastという各PBIのポイントから着手予定イテレーションを表示してくれる機能があるのでやはり自分はまだプロジェクト管理はBoards派)
- Azure Pipelinesとの統合もテストの結果が綺麗にみえるとかのうまみが確かにあるね
- Boards + GitHub Entepriseはそこまで運用大変って感じでもなさそうだけどPipelinesも統合するとメンテ大変じゃないかな?ってなった。PipelinesもActionsもymlの書き方はそこまで変わらないけど、片方でしか使えないタスクとかもあるので、両方詳しい人がいてかつその人がある程度メンテできるよって状況じゃないと難しいかも
Supercharging Developer Productivity with GitHub Copilot
GitHub Copilotを使って開発生産性を爆上げする方法を教えてくれる15min.のデモ
- Codespaceを使えばGitHub Reposのcloneもしないでブラウザ上のVSCode上でコーディング、GitHub Copilotとの共同作業ができる
- custom instructionファイルを使う(コーディングパターンやチーム内の開発ルールをinputしてGitHub Copilotからの提案をカスタマイズ)
- 音声入力を使う
- GitHub Copilotに参照させたいファイルを追加してコンテキストを付与
- コミットメッセージとPull Requestの説明をGitHub Copilotに書いてもらう(変更をサマリーして生成してくれる)
- GitHub Copilotによるコードのピアレビュー
所感
- 音声入力は使ったことないんだけど、日本語でもいい感じに動くんだろうか
- Codespaceイイよね。
From ClickOps to DevOps with Copilot
Copilot in AzureやGitHub Copilot for Azureを使ったAzureリソースの操作の効率化。
Azureの知識へのアクセス、トラブルシューティング、Az CLI・Bicep・Terraform・PowerShellのスクリプト生成を支援してくれるため、インフラ管理やアプリのデプロイがより効率的に行えるようになる。


- ClickOps(ポータル上でぽちぽちしてAzureリソースを作るやつ)は直感的でAzureへの理解を深めやすいが、再現性が低い、ヒューマンエラーを回避できない、長期的な目線で見ると技術的負債になるなどいろんなデメリットがある
- かといってIaCをやるのもそんな簡単ではないという課題

- 1番簡単なのは、Copilot in Azureで単純に聞いてみること。Azure CLIで実行する方法とポータル上のGUIで実行する方法を教えてくれる
- VSCodeのGitHub Copilot for Azureを使うのもおすすめ。
- それにより、GitHub Copilot Chatで対話的にAzureリソースを作ることができる、BicepやTerraformでの定義も作ってもらえる。
- これによって、どのようにリソースをつくるのかを理解しながらIaCも学べるし、スピーディーにAzureリソースの作成ができる
所感
- メッセージングとしてはGitHub Copilot for AzureとかCopilot in Azureを使ってできるだけ脱ClickOpsしような!
- From ClickOps to DevOpsっていうかto IaCって感じかな
- そういえば前に似たような話(IaCの利点/いきなりIaC難しいよね、GitHub Copilot for Azureがある!)をしたなあ
番外編: GitHub booth & Shops
自分のオリジナルoctocatが作れるコーナーがありました

表情も割と細かくカスタム可

日本風にしてみました😊

現地行かなくてもこのサイトから作れるっぽい
GitHub Shopはこんな感じで靴下とかぬいぐるみが売られてました


Discussion