VSTS、Slack、Microsoft FlowでASP.NET CoreアプリのCIをやってみる / CI for ASP.NET Core apps using VSTS, Slack, MS Flow

VSTS、Slack、Microsoft FlowでASP.NET CoreアプリのCIをやってみる / CI for ASP.NET Core apps using VSTS, Slack, MS Flow

・チームの規模に応じたビルド・リリース方法の変遷
・題材はXamarin.Formsプロジェクトテンプレート付属のASP.NET Core Web API(テストなし)
・この規模ならこうすべき!という提案ではなく、こんなツール使うと楽しいかも?というつぶやき

C000f292a92b894afabbb352e8709667?s=128

Toshinori Sugita

July 24, 2017
Tweet

Transcript

  1. VSTS、Slack、Microsoft FlowでASP.NET CoreアプリのCIをやってみる 2017/7/25 第7回 Tokyo Jazug Night

  2. 自己紹介 • 杉田 寿憲(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#_=_
  3. 今日のお話 • チームの規模に応じたビルド・リリース方法の変遷 • 題材はXamarin.Formsプロジェクトテンプレート付属の ASP.NET Core Web API(テストなし) •

    この規模ならこうすべき!という提案ではなく、こんなツール使 うと楽しいかも?というつぶやき
  4. 想定する開発・運用環境 ASP.NET Core Web API App Service > Web App

    VSTSにソースコード Mirosoft Flow
  5. チームの成長とビルド・リリース 人数 ツール 1人 3人 Visual Studio +Visual Studio Team

    Services いっぱい +Slack + Microsoft Flow
  6. チームの成長とビルド・リリース 人数 ツール 1人 3人 Visual Studio +Visual Studio Team

    Services いっぱい +Slack + Microsoft Flow
  7. 1人でビルド・リリース • 俺がわかればそれでよい • テスト落ちても他人に迷惑かからない • 怒られない

  8. Visual Studioでビルド・リリース

  9. チームの成長とビルド・リリース 人数 ツール 1人 3人 Visual Studio +Visual Studio Team

    Services いっぱい +Slack + Microsoft Flow
  10. 3人でビルド・リリース • デプロイ・リリースのタイミングは声かけ(物理)でなんとかなり がち • リリース・ビルド時間が気になるほどソースコード大きくなかっ たり? • 属人的な作業は自動化していきたい気持ちの芽生え

  11. CIツール(今回はVSTS)導入! • パーツを組み合わせてビルドフローを構築 • ビルドエージェントのホストもおまかせ • 5人、1ビルドエージェント無料

  12. 注意 • ASP.NET Core用ビルドテンプレートはソリューション内に複数 プロジェクト含むと使用できないので要修正 • Azure Portal側からも「クイックスタート」「デプロイオプション」 「継続的配信(プレビュー)」でVSTS(ソース管理)と連携し、デ プロイスクリプト自体は作ってくれたりするけど小細工し辛い

    Build your ASP.NET Core app(MS公式ページ)より
  13. VSTSのビルド設定 詳細はこちらのQiita記事にまとめました!「 Visual Studio Team ServicesでASP.NET Coreプロジェクトのビルドを設定する 」

  14. チームの成長とビルド・リリース 人数 ツール 1人 3人 Visual Studio +Visual Studio Team

    Services いっぱい +Slack + Microsoft Flow
  15. いっぱいでビルド・リリース • コミュニケーションツール(SlackとかMS Teamsとか)への活 性化 • ソースコード巨大化、ビルド・リリース長時間化による「ちょっと 待って俺の一緒にリリースして!!!」 • コミュニケーションツール上でビルド・リリースの状況可視化

  16. ChatOpsやるぞ! Slack上でコミュニケーション MS Flowでサービス連携 ※必要なのはリリース時かも

  17. 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のビルドを実行する 」
  18. まとめ • .NET周りのプロジェクトのビルド・リリースを支える仕組みが Microsoftのサービスでカバーされてるの気持ちいい • VSTSにはビルドフローを組み立てるためのパーツが準備され てるし、なければスクリプト用のパーツも組み合わせて大体な んとかなる • Microsoft

    Flow、Logic Appsとても楽しい、使い道いろいろあり そう
  19. 参考資料 • 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
  20. ご清聴ありがとうございました! VSTS、Slack、Microsoft FlowでASP.NET Coreアプリ のCIをやってみる