kkamegawa's weblog

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

Azure DevOps 2021/6/17の更新

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

docs.microsoft.com

PATのポリシーをAzure AD側で設定できるのはいいですね。もちろんAzure ADベースで動いている必要がありますがMSアカウントベースのやつはまぁいいでしょう。大規模にもならないし。

条件付きアクセスポリシーでIPv6サポートもうれしいですね。最近はv6プラスが使える環境も多いと思います。IPv4だけだと思っていたら実はIPv6使っていて、条件付きアクセスポリシーにかかってなかったとかないように。

ClassicリリースとマルチステージのYAMLではまだ若干の機能差があるのですが、その一つリリースに使ったビルド成果物を自動的に保持する機能がYAMLにはありませんでした。今回、YAMLのパイプラインをresourcesに定義することでそのギャップが埋まることになります。

docs.microsoft.com

Multi-Stageとはいえ、セキュリティやガバナンスを考慮すると一つのYAMLでビルドとリリースをやるのは正直お勧めしづらいので、リリースパイプラインはリソースにして分割していたほうがいいんじゃないかなとは思っています。

今まで必ずEnvironmentsを作ってからパイプラインで参照していたので全然気づかなかったのですが、YAMLパイプラインから作成してしまえばだれでもEnvironmentsの定義ってできたんですね。基本的にビルド定義のmasterマージとともにBuild Administratorが作るものだと思っていましたが、さすがにそれはちょっと…ということで制限が入ることになりました。いいことだと思います。

TFVC用のShell Extensionは長い間Visual Studio 2019に対応していなかったのですが、VS2022がリリースされた末期になってやっと対応版がリリースされました。長かったなーGitが主流になってきているとはいえ、業務で使うような巨大なレポジトリはTFVCの方が便利というケースもあるので、そういう人にはいいですね。

最近ガバナンス関係の強化が多いなぁと思いますが、これはこれで助かることが多いのでいいのではないでしょうか。

ではまた三週間後。

Translate to Japanese to Azure DevOps release not…

QNAP TS-453Dを買った

はじめに

サーバーの一台が不調でリプレースしようかと思っていたのですが、もうNASでもいいかなというところでいろいろ調べました。SynologyかQNAPのIntel CPUのモデルにすることは決めていたのですが、どちらにしようかと悩んでTwitterでアンケートとったらまさかの同数という😅。知人ではSynologyが若干多いようでしたが、QNAPにしました。

QNAPの価格割と毎日ウォッチしていたのですが、Amazonではすごく変化して面白かったです。一番高い時で67000円で、最安値で60000円ちょっとくらい。在庫が減ると値上がりして、残り10個切ったくらいから露骨に上下していました。ヨドバシで買おうかなと思っていたのですが、在庫ないんですよね…ヨドバシがんばれ。

www.qnap.com

  1. Active DirectoryのDCができること
  2. AD対応のDNSが使えること
  3. ある程度継続してファームウェア更新があること
  4. クラウドサービスと連携できること
  5. macOSのTimeMachine対応

まぁこの時点でほぼQNAPかSynologyの二社に限られちゃいますね。2ベイか4ベイにしようか迷ったのですが、結局4ベイにして3ベイだけ埋めています。同時購入できるのが3本までだったのもあるのですが。世間ではメモリ16GBにしている人も多いようですが、そこまでいろんなもの動かす気はないので、保証されている8GBまでにしました。

今ローカルでドメインコントローラを2台VMで動かしていますが、このうち古い(2012R2)ものを廃止、代わりにTS-453Dを追加のドメインコントローラにしています。DHCPとDNSはもともとYAMAHAのRTX830で動かしていました。

この前不調だったDCを廃棄していろいろエラーを修正したので、さすがにもう問題なくなりました。Azure Backupと連携できないのは残念ですが、Blobへのコピーはできるので設定しています。

macOSとの連携

macOSのTimemachineってSMB3でアクセスしてるんですね。AppleTalkじゃないとダメなのかと思ってました(割とマジ)。今は割とバックアップなくてもいいのですが、それでもあるとやっぱり安心です。

ファイルアクセスも問題ないので、ファイルの受け渡し楽になります。とはいえほとんどOneDrive経由の受け渡しなのですが。家庭内でも太平洋超えて受け渡し😅(コンシューマー版)。

管理面

レビュー見るとうるさいという話はありましたが、ほとんどHDDのアクセスでしょうね。不快な音ではないので、おいているところの差もあるでしょう。

サーバーごとの管理は専用のWebからですが、複数のQNAPを管理するためのツールもついてきます。起動するたびにSMTPの設定しろとうるさくて、パスワード入れるのやだなーと思っていたのですが、今時のNASはちゃんとOAuthで認可するんですね。GMailやOutlook(BusinessもどちらもOK)はパスワード指定することなく設定できて非常に楽でした。

あ、SMTPリレーできるのかな。できたら助かるんだけど。Docker使ってsmtp建てるのもいいけどなーうーん。

qnapcloudというサービスを使えば自宅外からアクセスできるような設定もできるようですが、正直現在ではほとんど意味ないかなと思っていて、当面設定するつもりはないかな。

2.5Gbpsサポートしているし、サーバーも一台対応しているし、今後のPCも対応していそうなので2.5Gbpsのハブへリプレースしようかな。発熱と消費電力次第ですけど。

消費電力もサーバーとはだいぶ違うのでこれから部屋の暑さが少し和らぎそうです。

Visual Studio 2022専用拡張機能作ってみた

devblogs.microsoft.com

ほしい人はずーっと待っていたIDEが64bitになったVisual Studio 2022 Preview1が公開されました。機能的にはすごく変わったわけではないようですが、今後どんどん増えていくのでしょう。

64bitになったということでやってみたかったのが「ほんとにIDEで64bitメモリーが使えるのか」ということ。実証するための拡張機能を作ってみました。

github.com

拡張機能を追加するとToolsメニューにInvoke AllocMemoryが追加されるので、クリックすると512MBずつメモリをとっていきます。32bit版のVS 2019では3回程度クリックするだけでOut of Memory Exceptionが出ますが、こちらは5GB超えてもまだ大丈夫です。

確かまだ拡張機能の登録できないと思うので、お手元にcloneしてビルド&実行してみてください。

個人的には拡張機能で4GB以上使えるようになると、データベースのデータを全部読み込んでメモリ内でDBのテストして、終わったらコミットなり破棄するなりできるようになると面白いんじゃないかなと思います。

Azure DevOpsで直近mentionされた作業項目をみたい

Backlogなどには直近でmentionされた項目がトップページに出てくるけど、Azure DevOpsにはないので困っている、という相談を受けました。ちょっと希望と違うかもしれませんが、こんな感じでどうでしょうか。

f:id:kkamegawa:20210612130534p:plain

Azure BoardsのQueryを使ってWork Item Type = [Any] AND ID in @RecentMentionsを作ります。Work ItemがDoneとか見たくない場合は適宜追加してください。これでDiscussionとDescriptionにある自分宛ての直近のmention一覧が表示されます。Query across projectにチェックすると、複数の参加しているプロジェクトを一気に検索してれます。

このクエリーをShared Queryに保存すると、みんな使えます。

f:id:kkamegawa:20210612130538p:plain

DashboardにあるQuery ResultsウィジェットにこのShared Queryを指定します。

f:id:kkamegawa:20210612130542p:plain

ダッシュボードには自分がmentionsされた直近のタスクが表示されます。これは個人単位で変わります。このShared Queryをお気に入り(Favorite)にしておけば、トップページのお気に入りから結果の閲覧ができますよ。

検索にはSQLライクなWIQLを使います。リファレンスはこちらです。現在azure cliではこのクエリー呼び出せなくて、自分でREST APIを実行する必要があります。

docs.microsoft.com