Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介 ● 杉田 寿憲(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#_=_

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Visual Studioでビルド・リリース

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

参考資料 ● 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

Slide 20

Slide 20 text

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