・チームの規模に応じたビルド・リリース方法の変遷 ・題材はXamarin.Formsプロジェクトテンプレート付属のASP.NET Core Web API(テストなし) ・この規模ならこうすべき!という提案ではなく、こんなツール使うと楽しいかも?というつぶやき
VSTS、Slack、Microsoft FlowでASP.NETCoreアプリのCIをやってみる2017/7/25 第7回 Tokyo Jazug Night
View Slide
自己紹介● 杉田 寿憲(Toshinori Sugita, @toshi0607)● Software Engineer@freee● 元◯TT ○ata企画営業、コード書くのかっこいいと思って業務経験なしからエンジニアに○ http://toshi0607.com/general/struggle-for-freee/● Rubyが多いですが、Microsoft技術関連開発も!!○ サーバサイド: Ruby on Rails、Go○ クライアントサイド: WPF、Xamarin● We’re hiring @freee○ 日本を変えたいWindowsアプリエンジニア募集!!■ https://www.wantedly.com/projects/66243#_=_
今日のお話● チームの規模に応じたビルド・リリース方法の変遷● 題材はXamarin.Formsプロジェクトテンプレート付属のASP.NET Core Web API(テストなし)● この規模ならこうすべき!という提案ではなく、こんなツール使うと楽しいかも?というつぶやき
想定する開発・運用環境ASP.NET Core Web API App Service > Web AppVSTSにソースコード Mirosoft Flow
チームの成長とビルド・リリース人数 ツール1人3人Visual Studio+Visual Studio Team Servicesいっぱい +Slack + Microsoft Flow
1人でビルド・リリース● 俺がわかればそれでよい● テスト落ちても他人に迷惑かからない● 怒られない
Visual Studioでビルド・リリース
3人でビルド・リリース● デプロイ・リリースのタイミングは声かけ(物理)でなんとかなりがち● リリース・ビルド時間が気になるほどソースコード大きくなかったり?● 属人的な作業は自動化していきたい気持ちの芽生え
CIツール(今回はVSTS)導入!● パーツを組み合わせてビルドフローを構築● ビルドエージェントのホストもおまかせ● 5人、1ビルドエージェント無料
注意● ASP.NET Core用ビルドテンプレートはソリューション内に複数プロジェクト含むと使用できないので要修正● Azure Portal側からも「クイックスタート」「デプロイオプション」「継続的配信(プレビュー)」でVSTS(ソース管理)と連携し、デプロイスクリプト自体は作ってくれたりするけど小細工し辛いBuild your ASP.NET Core app(MS公式ページ)より
VSTSのビルド設定詳細はこちらのQiita記事にまとめました!「Visual Studio Team ServicesでASP.NET Coreプロジェクトのビルドを設定する」
いっぱいでビルド・リリース● コミュニケーションツール(SlackとかMS Teamsとか)への活性化● ソースコード巨大化、ビルド・リリース長時間化による「ちょっと待って俺の一緒にリリースして!!!」● コミュニケーションツール上でビルド・リリースの状況可視化
ChatOpsやるぞ!Slack上でコミュニケーション MS Flowでサービス連携※必要なのはリリース時かも
iPaaS(Integration Platform as A Service)● 言ってみたかっただけ● サービス連携するためのサービス○ twitterで#jazugのハッシュタグのついたツイートが投稿→Slackに投稿● IFTTT、Zapier、Logic Apps(Azure)、Microsoft Flowなど● Logic AppsでやろうとしたらVSTSとの連携に不具合があったのでMS Flowで代用詳細はこちらの記事にまとめました!「Microsoft Flowを使ってSlackからVisual Studio Team Servicesのビルドを実行する」
まとめ● .NET周りのプロジェクトのビルド・リリースを支える仕組みがMicrosoftのサービスでカバーされてるの気持ちいい● VSTSにはビルドフローを組み立てるためのパーツが準備されてるし、なければスクリプト用のパーツも組み合わせて大体なんとかなる● Microsoft Flow、Logic Appsとても楽しい、使い道いろいろありそう
参考資料● VSTSでASP.NET CoreアプリのCI/CDを行う○ http://kkamegawa.hatenablog.jp/entry/2017/05/05/161103● Logic Appsを使って、Backlogとslackを連携してみた。○ http://azure.sios.jp/archives/2093● Visual Studio Team ServicesでASP.NET Coreプロジェクトのビルドを設定する○ http://qiita.com/toshi0607/items/3557ebd8e8ec1fcd7be6● Microsoft Flowを使ってSlackからVisual Studio Team Servicesのビルドを実行する○ http://qiita.com/toshi0607/items/a02417d73463c724a54b
ご清聴ありがとうございました!VSTS、Slack、Microsoft FlowでASP.NET CoreアプリのCIをやってみる