kkamegawa's weblog

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

VSTS/TFSで並列リリースを行う

www.visualstudio.com

VSTSにはビルドとリリース機能があり、それぞれ継続的インテグレーションと継続的デリバリーを支援します。これらにはMSが提供するエージェント(Hosted Agent)と自前で用意するエージェント(Private Agent)の二種類があります。

エージェントはそれぞれキューと呼ばれる単位で実行が制御されます。一つのキューに対して一つのジョブしか投入できません。

www.visualstudio.com

このページ内の図がわかりやすいですかね。そして同時に投入できるキューはライセンスで制限されています。Build and ReleaseのResource limitsで確認できます。

f:id:kkamegawa:20170425064708p:plain

初期状態では一つのパイプラインのみ使用できます。追加する場合、Marketplaceで購入します(Changeをクリック)。Marketplaceで購入できますが、MSDNの場合、サブスクリプションの上限解除を設定しないと購入できないので、注意してください。請求はAzureにまとめられます。

Office 365やAzureを組織で導入していて、既存のVSTSのサブスクリプションの支払いをOffice 365の組織アカウントに変更したいという場合、やや大変な手順で変更しないといけないので、注意してください。

www.visualstudio.com

パイプラインが2以上になると並列デプロイができるようになりますので、ここではVSTSが提供しているHosted/Hosted VS2017/Hosted Linuxを使ってやってみましょう。まず、Azure Web Appを複数のリージョンに作成しておきます。エージェントを切り替えるには"Run on agent"をクリックします(ここちょっとわかりづらい)。

f:id:kkamegawa:20170425064705p:plain

Japan EastへのデプロイにはHotedを選択します。

f:id:kkamegawa:20170425064706p:plain

Japan WestへのデプロイにはHosted VS2017を選択しています。

f:id:kkamegawa:20170425064707p:plain

Create Releaseを実行すると並列でのリリースが開始されます(IN PROGRESSになってます)。

f:id:kkamegawa:20170425064709p:plain

終わるとこんな感じ。一つFAILEDになってますが、それはHosted Linuxエージェント使ったからです(.NET Coreアプリなんでできると思ったけど甘かった)。

f:id:kkamegawa:20170426065305p:plain

ちなみにオンプレミスのTFSでも(リリースのUIはちょっと違いますが)大体同じです。こちらはVisual Studio Enterprise保有者の数および、VSTSと同様にMarketplaceで購入した数が上限になります。

…というデモをこの前のGlobal Azure Bootcamp @ Kansaiでやりたかったんです(時間切れ)。