まえがき
VisualStudioTeamServices (以下、VSTS)の Build を見てみると、Azure 周りのデプロイが充実していました。
Azure はポータルでポチポチしてデプロイする派だったのですが、これを機にDevOpsっぽい動きができないか試してみました。
今回やりたいこと
- Webアプリケーションのデプロイ(AppService + SQL データベース)
- ソースコードの更新とともに AppService を更新する
やり方
- VSTS でプロジェクトを作成
- VisualStudio で AzureResourceGroup のプロジェクトを作成
参考: Visual Studio での Azure リソース グループの作成とデプロイ - VisualStudio で一度デプロイ
この時点でAzureの構成がデプロイされる - AppService で「継続的配信(プレビュー)」を設定(これによってVSTSのBuildが作成される)
以降、コードの更新時に AppService が更新される
ダメだったやり方
- Build を自力で Build Definitions から作成し、
Azure App Service Deploy
を使ってデプロイ
引数の zip をどう用意すべきかがわからず断念 - ARM Template から App Service にデプロイするパターン
参考: Deploy Azure Web App using ARM Template from Visual Studio 2015
Blob を介するときにエラーとなり、解決できなかった。
Storage account: xxxx not found. Selected Connection 'ServicePrincipal' supports storage account of Azure Resource Manager type only.
クラシックの Storage を間違って使うと発生するエラーと想像したがわからず。
所感
- プレビューの機能使うのはどうなの?と思ったが、AppService側はプレビューでもVSTS側は通常の機能を使っているだけ。ステージングなら問題なく使えるんじゃないだろうか。
- 2年ほど前に触ったときは Build 周りが複雑すぎて理解できなかったが、自由度の低いJenkinsくらいにわかりやすくなった
(私個人としてはMSが用意する設定でないと動かせなったことから、もっと使わないとダメだ) - AzureResourceGroup がいわゆる infrastructure as code になるのでよさげ
- 本番環境でAzureの構成とソースを一気に更新するフローを考えたい