$30 off During Our Annual Pro Sale. View Details »

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(テストなし)
・この規模ならこうすべき!という提案ではなく、こんなツール使うと楽しいかも?というつぶやき

Toshinori Sugita

July 24, 2017
Tweet

More Decks by Toshinori Sugita

Other Decks in Technology

Transcript

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

    View Slide

  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#_=_

    View Slide

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

    View Slide

  4. 想定する開発・運用環境
    ASP.NET Core Web API App Service > Web App
    VSTSにソースコード Mirosoft Flow

    View Slide

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

    View Slide

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

    View Slide

  7. 1人でビルド・リリース
    ● 俺がわかればそれでよい
    ● テスト落ちても他人に迷惑かからない
    ● 怒られない

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. VSTSのビルド設定
    詳細はこちらのQiita記事にまとめました!「
    Visual Studio Team ServicesでASP.NET Coreプロジェクトのビルドを設定する

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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のビルドを実行する

    View Slide

  18. まとめ
    ● .NET周りのプロジェクトのビルド・リリースを支える仕組みが
    Microsoftのサービスでカバーされてるの気持ちいい
    ● VSTSにはビルドフローを組み立てるためのパーツが準備され
    てるし、なければスクリプト用のパーツも組み合わせて大体な
    んとかなる
    ● Microsoft Flow、Logic Appsとても楽しい、使い道いろいろあり
    そう

    View Slide

  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

    View Slide

  20. ご清聴ありがとうございました!
    VSTS、Slack、Microsoft FlowでASP.NET Coreアプリ
    のCIをやってみる

    View Slide