kkamegawa's weblog

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

Azure DevOps 2020/5/4の更新

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

docs.microsoft.com

レポジトリ設定のところ、Webプラットフォーム変更してフィルタリングかけられるようにしたんですね。あと、パイプラインで前のステージの出力結果を引き継いで使用できるようになったのは便利です。ただし、書かれているように、現在は連続したStageでなくてはならず、一つ飛ばすような場合、明示的に二つ以上前のStageに依存関係があると明記しないといけないので気を付けてください。

エージェントでPATを作るとき、今までは全部のレポジトリにアクセス権がある、としか設定できなかったのですが、これでは過剰な場合があります。そこで、PATのポリシーで特定のRepo以外にはアクセスできなくしたそうです。

ほとんどはHosted Agentでいいんだけど、どうしてもSelf-hostedじゃないといけないけど、全部が全部アクセスさせるのやだなぁ、というときに便利です。今後この設定がデフォルト有効になるそうです。

マルチステージパイプラインがようやく正式版になりました。従来のGUIのパイプラインはClassicと呼称されることになります。MSの常でClassicになったものは扱いが悪くなるので、今から慣れるようにしましょう。英語ですが、MS Learnのコンテンツもあります。

docs.microsoft.com

ではまた三週間後。

Translate to Japanese to Azure DevOps release note ...

Azure BoardsとTest Plans向けオンラインセミナーを開催しました&資料と質問

tfsug.connpass.com

連休の最後に参加していただきありがとうございました。アンケートも回答ありがとうございます。アンケートによると、オフラインと同様に土日の昼が参加しやすいとのことなので、次回は土曜の昼に開催しようかなと思います。やはりPipelineの需要も高いし、Multi-Stage Pipelineもプレビューを卒業して一般公開になったので、その辺かな、と思います。

当日のQ&Aから

Azure Boards、Azure Test Plansまわりで、おすすめのAzure DevOps拡張機能ってありますか?

marketplace.visualstudio.com

marketplace.visualstudio.com

marketplace.visualstudio.com

marketplace.visualstudio.com

marketplace.visualstudio.com

とりあえずこの辺りがおすすめです。

Boardsにしても、Test Plansにしても、すべてが終わってから(リリースされてからでも)参照可能でしょうか。

監査目的だそうですが、Team Projectは一度消すと28日間は復活できますが、それ以降はできません。Artifacts以外は容量課金がないので、消さずに残しておくことをお勧めします。不用意に変更されたくない場合、PJメンバーからContributer権限やAdmin権限を剥奪しておけば大丈夫です。

Boards と Test Plans は話題にならないとのことですが、なぜなのでしょう。

Boardsはやはり最初がとっつきにくいのがあると思っています。それがあって、GitHub IssueライクなBasicプロセステンプレートを作ったらしいのですが、Azure DevOpsのコアユーザーが求めていたものはこれじゃなかったということで、使われる話を聞かないです。Azure Boardsは複数チームで大規模管理し始めるといい機能がそろっているのですが、そこに行くまで専門の人がいないとなかなか難しい。

プロジェクトタイプの Agile とか Scrum はプリセットというイメージでしょうか?Basicで初めても後から同じ分類を作成できますか?

はい、可能です。プロセステンプレート間の移行のために同じ分類を作成することはサポートされています。移行後は移行前の分類を使わないことになります。

Area = Team と解釈して半年以上運用してますが Area と名付けられている理由がわかりません

Azure DevOpsの"Team"が後でできた概念なのでそう思われても仕方ないと思います。以前(TFS2012くらいのころまで)Teamはなく、Team Projectに所属している人=開発メンバーでした。そして、そのメンバーごとに必要な開発項目を見ていました。自分で必要なAreaをチケット単位で設定していました。

もちろんこれで大規模開発が回せるわけがないので、Teamという概念が導入され、Team Project内にグループとも呼べるTeamが誕生しました。これは小規模人数で効率よく開発するための仕組みです。そして、Team単位で「うちのTeamが担当するAreaはこれ」と設定できるようになりました。その設定はこちらで書いています。

kkamegawa.hatenablog.jp

一つのチームが複数の種類の開発を行うことも珍しくないので、AreaとTeamはイコールでもいいですが、開発上の分類としておくことをお勧めします。

テスト内容を変更したTest Caseだけを収集することはできるでしょうか?

Test Caseには変更履歴があるので、「変更された」テストを検出することはできますが、差分を比較するにはどこかにオリジナルを保存しておかないといけないです。そこらあたりが結構大変かなと思います。内容だけだとちょっと難しいような…Test Caseが増えると。

Azure Test Plansはテスト登録だけが有償でテスト実施は無償だと記憶しているのですが、契約する場合はチーム内でテスト登録するメンバーのみ契約するのが良いのでしょうか?

最初はそれでいいと思います。最後に分業制はつらいかもしれないので、必要に迫られたら購入すればいいでしょう。

TFSであったように、チェックインポリシーのカスタマイズはできるのでしょうか。できる場合、対象者のクライアントにすべて入れる制約は今も健在でしょうか。

TFVCであればそのまま同じものがあります。

docs.microsoft.com

Gitの場合、ちょっと違いますが、いくつかの制約は設定できます。

docs.microsoft.com

Taskに表示する数字をRemainingではなくOriginal Estimateを表示する方法はありますでしょうか?見積ポイントを表示したいのです。

Scrumでは表示されませんが、プロセステンプレートのカスタマイズでOriginal Estimateを追加すれば可能です。

Azure Broadsの見える化をカスタマイズするのためにはどうするのがよいでしょうか?例えばEVMで表示するなど

基本は組み込みのチャートを見ていただく、それでも足りなければPower BIに手を出すということになります。チャートで何ができるかはここをどうぞ。

docs.microsoft.com

DashBoardsの構成をテンプレートとして、ほかのプロジェクトでも使いたいのですが、エクスポートの方法はありますでしょうか?

標準では提供されていないのですが、拡張機能としてはやや古いのですが、存在しているそうです(教えていただきました)。

marketplace.visualstudio.com

iteration の予実管理をすることはできますか。

方法はいろいろ考えられます。

  1. 各Work Itemには「いつ何を変更したか」という情報が記録されているので、そちらを使うます。
  2. Agileプロセステンプレートを使う(Estimateがあります)
  3. テンプレートをカスタマイズして追加する(独自項目を追加するなど)

Work Itemの高度なカスタマイズはAzure Boardsでどこまでできる?他のフィールドとの連携とか?

docs.microsoft.com

上記のURLに関するご質問でしたが、このXMLベースのカスタマイズはオンプレミス版しかサポートしておらず、現在ではオンプレミス版も非推奨です。ただし、オンプレミスに関しては、Project Collection(クラウドで言うところのOrganizationと同じレベルです)を作るときに上記のXMLベースのものにするか、新しい継承モデル(Azure DevOps Servicesのもの)にするか選べます。

現在のところ、一度選ぶとXMLカスタマイズから継承モデルへの変更はできないので、気を付けてください。バージョンアップで古くから積み重ねているオンプレミス版は…XMLで生きていくか、バージョンアップに期待するしかないです。

公開資料

SlideShare

セッション動画


Deep dive Azure Boards and Test Plans.

Azure DevOps オンラインセミナーを開催しました&資料や質問

TFSUGとしてのオンラインセミナーを開催しました。内容はIgnite The Tourでやったことほぼそのままです。東京開催のときは特にお部屋が満室で入れなかった方も多かったようなので、今回オンライン開催にしてみました。

「こんなニッチなテーマ、2-30人くらいくればいいだろう」と思っていたのですが、ふたを開けてみれば150人以上も登録いただき、130人くらい参加されていたようです。ありがとうございます。

Teamsで会議参加者一覧をエクスポートする機能が最近追加されたはずですが、使うの忘れてました…。当日不要なウィンドウが出ていたので動画編集で消しています。資料の一部が欠けていますが、SlideShareから見てください。Teamsの録画は参加者の一覧まで見えてしまうので、同じく動画編集で削っています。

質問から

AADのグループは、ネストも参照できますか?

できるはずです。

後から追加したOrganizationに既に作ったProjectを移行することはできるのでしょうか

レポジトリはできるのですが、Projectそのまま簡単な操作では移行できなかったはずです。移行をサポートするツールはサードパーティーや融資から提供されています。

marketplace.visualstudio.com

外部の Git リポジトリ側で、Azure Pipelines の IP アドレスを許可したいのですが、Pipelines の IP アドレスは固定されているのでしょうか。

残念ながらPipelineのIPは「Azureデータセンター」というざっくりしたくくりしかわかりません。しばやんが書いたこういう方法で調べることはできますが、固定はできません。

blog.shibayan.jp

今もそうだと思いますが、自分のOrganizationがwest usだからそこだけ選べばいいかというと、実はそうではありません。何度か経験したことありますが、Azure PipelinesのDCが性能低下すると、ほかの(Azureでいうペアリージョン)にオフロードされてパイプラインが動いたことがあります。

ここ2年くらいは見たことがないのですが、特定のAzureリージョンだけと思っているとたぶん失敗します。

どうしても固定したい場合、現状ではself-hosted agentを立てる以外方法はないようです。

Visual Studio Professionalのサブスクリプションを保持している場合、権限的にTest Plansは使用できませんか?EnterpriseならTest Plansは使用できました。

Test Plans使うにはEnterpriseか、Azureサブスクリプションでの月額課金での購入が必要になります。

docs.microsoft.com

開発プロセスがイテレーティブでない場合のBoardsの使い方

Azure Boardsは原則イテレーション(Sprint)を前提とした設計になっています。例えば保守向けのタスクであったとしても、一週間単位などでスプリントを設定してください。

O365を契約する前に契約していたMSDNアカウントを、O365契約後に会社アカウント(組織アカウント)がMicrosoftアカウントになった後に、移す方法

これは購入方法にもよりますが、できるはずです。MSDNを更新するときに組織アカウントにする手続きができるはずです(私はやってもらいました)。

MSアカウントで作っていたリソースを組織アカウントに移行できるかどうかはAzure ADにMSアカウントをゲスト追加許可するかどうかという管理ポリシー次第なんですが、許されない場合はAzure DevOpsやAzureのリソースは破棄して作り直しということになります。

Azure Reposで接続元IPアドレスを監視したいのですが可能でしょうか?

接続元IPアドレスを管理したいわけではないそうですが、現状の監査には接続のロギングみたいなことはないはずです。できるとすればAzure AD P2を使ってサインインを監視するしかないでしょう。

Authenticatorアプリ認証以外での多要素認証を求められる事例

スマートフォンを全員に配布していないような組織では証明書使っている場合があります。

プライベートなプロジェクト(特に Azure Repos)に対して、ステークホルダーは何名でも追加できますか?

ステークホルダーユーザーはAzure Reposに対するアクセス権限はありませんが、追加可能なユーザーは無制限です。

実運用の中でサービス連携するしないの観点などがあればぜひ教えてほしいです。

GitHubをレポジトリに使っているからAzure Reposをオフにすれば迷わないよ、という説明を受けての質問です。

これはもうすでに今まで培ったインフラがあるかどうかと好みでわかれるとは思います。ただ、BoardsとTest Plansはよそにない特色があると思いますので、特に複数のレポジトリを使って開発するような大規模環境には向いています。

アカウントの棚卸しのベストプラクティス

  • プロジェクト終了時
  • 定期的(通常は人事異動時)

でしょうか。

DevOpsとしての組織Organizationの割り振りは、‬普通のAzure‬ ADの組織割り(会社で言う部署)とは違う感じですか

部署は消滅することが多いので、会社の部門依存のorganizationというのは練習とか完全に部門に閉じた使用ではいいのですが、リリースするプロジェクトを作る単位、セキュリティを分割しなければならない範囲で考えたほうがいいと思います。

O365のAzure ADに追加するとDevOpsのユーザー検索でほかのユーザーも出てしまいます。

はい、そうなります。これがあるので、社内利用であればいいのですが、Azure ADゲスト追加した人も検索できてしまうのでよろしくない、という場合があります。原則としてAzure ADグループを作っておいて、そちらのグループを使用可能ユーザーとして追加する方法がおすすめです。

Azure Devopsのロールをセキュリティグループに当てることはできますか。

可能です。

Taskを作ったり、Pull requestsを始めたり、マージしたり、ってのをTeams連携して、チームに新たな会話を投稿したりとか、できましたっけ...

devblogs.microsoft.com

Pipelinesは基本承認と通知ですね。

docs.microsoft.com

Boardsの場合もPRの作成ではなく、通知が主ですね。

docs.microsoft.com

Basicプランだけなら安いと思っていたけど、実際はP1いるのでさらに倍と気づくのはよくあることでしょうか?

はい、よくあることのようです…。

今後のdevopsとgithubの関係はどのようになって行きそうですか? 共存?融合?

どうなんでしょうね。今GitHubとAzure DevOpsのチームは統合されて一つ(といっても大枠、ということなのでしょうが)で開発しているそうですが。

参考:codezine.jp

Azure Pipelines の「Artifacts」という用語と Azure Artifacts は完全に同一のものを指すのでしょうか

これは混同しがちですね。Pipelinesで作られたものをartifactsといっていますが、nuget/mavenなどのパッケージ管理もサービスとしてArtifactsといっています。サービスとしてはあくまでも別ですね。

メンバーの管理ですが、プロジェクト管理者グループのメンバー以外で可能でしょうか?

プロジェクトのTeam内であれば、Teamで入れたり出したりできます。Projectへの追加はProject Administratorのお仕事になります。実際はPower Automateとかで自動的にできるようになってるといいですね。

当日の資料


Azure DevOps セキュリティ設定解説

英語キーボード派の人はIME ON/OFFではなく言語切り替えでトラブルを防ぐ

私が使う環境はほぼ英語101キーボードです。理由は以下の二つでした。

  • もともとベータ版のWindowsを使っていた時106キーボード設定がなく困ることが多かった。
  • IBM PC/AT使いたい理由の一つが海外の優れたMS-DOS上で動くゲームやりたかったから

という点です。Windows世代ではそんなことないのですが、DOSではメモリが命取りで日本語キーボードドライバとか640KBぎりぎりで動くゲームのためには入れられなかったんですよ。

今であれば、クラウドのVMが基本的に英語設定されているので、106に変えるとか、再接続したときにキーマップが変わるのが嫌だった、という理由もあります。最近ではWindows Admin CenterでのWebブラウザベースのRDPも接続先は強制的に英語キーボードになりますね。

そんなわけでずっと英語キーボード使っているのですが、いいことばかりではないのです。

  • 不用意なキー押しに伴い、かな入力に入ってしまう
  • 同様に、CAPS LOCKが入ってしまって抜けない(106設定のPCに101つないで、CAPS LOCK押すとIME切り替えになる)

CAPS LOCKを削除することで対応している人もいます。

note.com

しかし、レジストリ変えるというハックはOSの大規模更新でたいてい元に戻されてしまうのでやりたくないのです。ということで、IMEのON・OFFではなく、入力言語を切り替えるという方針に変えました。

Windows 10 で入力および表示の言語設定を管理する

この方法に気付いたのはMSのIMEチームへのオンラインフィードバックイベント(現在デッドリンクになっているのでリンクは無し。またやるか検討しているそうです)で「日本語入力時にはIMEを切り替えていますか?言語を切り替えていますか?」と聞かれたからなんですね。

英語を追加して、IMEの切り替え(Alt+`)ではなく、Windows + spaceで切り替えます。なので、日本語モードではIMEはずっとONのままです。これ使うといいことはいくつかあります。

  • CAPS LOCLキーを使ったキーコンビでかな入力になることがない
  • CAPS LOCKが外せなくなることがない
  • 英文入力時にAIによる入力インサイトの支援が受けられる。
  • SlackなどのAltキーを押すとメニュー出してしまうアプリの誤動作がなくなる
  • うざったいIME切り替えに伴う現在の入力モードが画面の中央に出なくなる(画面の右端に言語切り替えウィンドウは一瞬出ます)

AIを使った入力支援「入力インサイト」

メールでは英語使うことが多いので、入力インサイトの支援が受けられるかなということで、しばらくWindows + Spaceで入力を切り替える方式に強制しようかなと思います。

Windowsキーがないキーボードを使っている人は(Right | Left) Alt + Shiftで代用できるそうです。

デメリットは今のところちょっと思いつかないのですが、気づいたら追記します。