Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JenkinsからCI/CDをはじめてみた結果
Search
shinta-inoue
May 29, 2019
Programming
3.3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JenkinsからCI/CDをはじめてみた結果
shinta-inoue
May 29, 2019
More Decks by shinta-inoue
See All by shinta-inoue
レガシー化したアプリケーションをAWSを使って3ヶ月で刷新した話
banri
1
3.1k
Other Decks in Programming
See All in Programming
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
310
ふつうのFeature Flag実践入門
irof
7
3.6k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
210
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
110
GitHub Copilot CLIのいいところ
htkym
2
1.3k
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
450
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.5k
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
120
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
200
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
760
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
150
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
210
A better future with KSS
kneath
240
18k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
WENDY [Excerpt]
tessaabrams
11
38k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
390
Transcript
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
Copyright © 2017 UNION TEC CO., LTD. All Rights Reserved. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved. JenkinsからCI/CDをはじめてみた結果 X-Tech JAWS & JAWS-UGアーキテクチャ専門支部 コラボ勉強会#01 2019/05/29 ユニオンテック株式会社 CTO 井上心太
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ 自己紹介 2 井上心太 2014/04 リクルートホールディングス(リクルートキャリア出向)入社 2018/04 1人目のエンジニアとしてユニオンテック株式会社入社 2018/09 CTO就任 新規事業の立ち上げからグロースにかけてのフェーズをずっとやってきまし た。ユニオンテック では開発体制を外注から内製へと変え、開発チーム の立ち上げを行いました。 shinta.inoue1
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
What is ?
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
空間デザイン・施工 オンラインプラットフォーム +
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ 事業構成 6 3つの事業を展開、内装業のアセットと エンジニアリングのシナジーを最大限に活用しています Platforms 2016.5〜 2018.3〜 (beta版リリース) 2000.5〜 1,000社の協力会社 登録社数7,300社以上 オフィス・飲食店の 設計・施工 建設会社向けB to B マッチングPF C to 職人の マッチングPF
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
建設業界が抱える課題
8 51兆円の産業規模 0 10 20 30 40 50 60 70
自 動 車 ・同 付 属 製 造 品 建 設 業 医 療 不 動 産 生 命 保 険 外 食 物 流 電 力 銀 行 B2C EC 電 気 通 信 ス ー パ ー 医 療 用 医 薬 品 コン ビ ニ ア パ レ ル 介 護 農 業 損 害 保 険 中 食 家 電 小 売 国内主要産業の市場規模 (兆円/年) ▷ 建設業界は国内で2番目の産業規模 Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved. ----------- Note: 各市場における政府統計情報
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ “情報の非対称性”が業界の大きな「不」 9 ----------- Note: Ministry of Land, Infrastructure, Transport and Tourism: 「建設労働需給調査」より作成 案件発注サイド 50人未満の中小工事会社 90%の案件発注サイドが、翌月以降の職人を見つけること に努力が必要、と言っている 70%の工事会社が次の仕事がない、と言っている オフラインのやり取りに起因する “情報の非対称性“が問題 発注先を見つける のに努力が必要 仕事が決まっていない
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ 非効率な工事手配が業界における最大の課題と設定 10 工事会社 中小工事会社 中小工事会社 中小工事会社 工事会社 ゼネコン 工事会社 課題② オフラインのやり取りによる 職人リソースの偏在 (toC) 施主 課題① 多重下請け構造による、 工事マッチングの非効率性 (toB) 職人
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
プロダクト
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ 2つのサービスにより、多重下請け構造を変革し、 中小工事会社 及び 職人の成長を支援する 12 工事発注サイド⇔工事会社 をつなぐ BtoB工事マッチング プラットフォーム ① 中小工事会社のための プラットフォーム (To B) 職人のための アプリプラットフォーム ② 職人(個人)のための プラットフォーム (To C)
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ SUSTINA:工事会社間の工事マッチング 会員数 約10,000社 2016年10月リリース 課金体系 月額サブスクリプション サービス内容 元請と工事会社のマッチング
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
14 ▷ 2018.3にβ版リリース:職人と発注サイドのリアルタイムマッチング
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ 本日お話しすること 15 工事発注サイド⇔工事会社 をつなぐ BtoB工事マッチング プラットフォーム ① 中小工事会社のための プラットフォーム (To B) 職人のための アプリプラットフォーム ② 職人(個人)のための プラットフォーム (To C)
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ 本日お話しすること 16 SUSTINAのビルドをJenkinsで運用してみた話 • なぜJenkinsを選んだのか? • 運用してみて • 今後について
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
なぜJenkinsを選んだのか?
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ SUSTINAのリビルド 18 立ち上げから2年間外注で開発していたプロダクトを2019年1月末にリビルド • インフラが火を吹いていたので急いで開発 • 大量のデータ移行が必要 • エンジニアは3人 リビルド前 リビルド後 言語 PHP 5 PHP 7 フレームワーク CodeIgniter 3系 Laravel 5系 DB MySQL 5系 Amazon Aurora ミドルウェア Apache 2 Nginx インフラ さくらのクラウド AWS
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
19 ▷ リビルド後の構成図
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ 閑話休題 20 https://speakerdeck.com/banri/regasihua-sitaapurikesiyonwoawswoshi-tute3keyue-deshua-xin-sitahua リビルドについてはJAWS DAYS 2019の発表資料を見ていただけると!
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ CI/CDの選定の過程 21 LaravelがAWS連携が容易なこともありAWSを軸に利用技術を選定 CI/CDはCodeBuildでしょ!
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ CodeBuildと3日間格闘 22 やりたきこと • SUSTINAと管理画面はモノレポで管理したい • SUSTINAと管理画面は別々にデプロイ可能にする • デプロイタイミングはコントロールしたい • テストはなし CodeBuildだと… • GithubからhookでビルドするとSUSTINA,管理画面がどちらもデプロイされてしまう • コマンドラインからビルドをキックするのは手間 • 結局CodeBuild以外のものを利用しないとやりたきことができない
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ CodeBuildと3日間格闘 23 やりたきこと • SUSTINAと管理画面はモノレポで管理したい • SUSTINAと管理画面は別々にデプロイ可能にする • デプロイタイミングはコントロールしたい • テストはなし CodeBuildだと… • GithubからhookでビルドするとSUSTINA,管理画面がどちらもデプロイされてしまう • コマンドラインからビルドキックはミスりそう • 結局CodeBuild以外のものを利用しないとやりたきことができない 発狂
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ そこでJenkins 24 やりたきこと • SUSTINAと管理画面はモノレポで管理したい • SUSTINAと管理画面は別々にデプロイ可能にする • デプロイタイミングはコントロールしたい • テストはなし こいつならいける!
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
運用してみて
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ Jenkinsを使ってよかったこと 26 • Jenkins起因でデプロイできないトラブルはなし • 使ったことのあるエンジニアが多く学習コストが少ない • ググったときの情報量が多い • テーマを導入すると少しモダンなUIになる
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ Jenkinsが微妙なところ 27 • JenkinsfileをGroovyで書かないといけない • 適切なPluginを導入しないといけない • Jenkinsのサーバー運用が必要 • 大量のビルドもしくは重いビルドを走らせるのは不安 • 他ツール連携・テスト実行などを増やして行くと設定が煩雑 • 例えばSlack連携するためにGroovyでスクリプトを書いたり… 辛い・不安な部分も結構多い
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
今後について
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ 結論 29 Jenkinsやめます
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ なぜやめるのか 30 • リビルドが完了し、今後を見据えて運用・管理をシンプルにしたくなった • Jenkins導入時はリビルドに追われていたこともあり、「慣れている」「利用イメージが湧く」とい う観点で採用していたため、 • Laravel dusk(E2Eテスト)を導入するため、ビルドの調整や dockerコンテナの管理などを自前でやりたくない • Jenkinsのメンテに時間を取られて開発スピードが落ちてしまっては本末転倒なため • ちなみにLaravel duskのリファレンスにCI/ CDについての章があるがJenkinsは出てこない… CodeBuild含めどのツールに乗り換えるかは絶賛検討中 ※おすすめあればぜひ教えてください
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
▷ まとめ 31 本当はCodeBuildを使いたかった • 十分な時間が取れればJenkinsは選んでなかったかもしれない • 複雑なことをしなければJenkinsでも運用は難しくない (でも複雑じゃないなら他のツールでもいいよね) Jenkins自体は悪いツールではないがツールの選定は慎重に!
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
セミナールームを貸し出せますので、 イベントなどで使い方はご相談ください! ご連絡はこちらまで!
[email protected]
ご連絡はこちらまで Facebook: shinta.inoue1 Email:
[email protected]
Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
ご静聴ありがとうございました!