Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JenkinsからCI/CDをはじめてみた結果

 JenkinsからCI/CDをはじめてみた結果

shinta-inoue

May 29, 2019
Tweet

More Decks by shinta-inoue

Other Decks in Programming

Transcript

  1. 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 井上心太

    View Slide

  2. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ 自己紹介
    2
    井上心太
    2014/04
    リクルートホールディングス(リクルートキャリア出向)入社
    2018/04
    1人目のエンジニアとしてユニオンテック株式会社入社
    2018/09
    CTO就任
    新規事業の立ち上げからグロースにかけてのフェーズをずっとやってきまし
    た。ユニオンテック では開発体制を外注から内製へと変え、開発チーム
    の立ち上げを行いました。
    shinta.inoue1

    View Slide

  3. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    What is ?

    View Slide

  4. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    空間デザイン・施工 オンラインプラットフォーム

    View Slide

  5. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.

    View Slide

  6. 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

    View Slide

  7. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    建設業界が抱える課題

    View Slide

  8. 8
    51兆円の産業規模
    0
    10
    20
    30
    40
    50
    60
    70



    ・同

























    B2C
    EC














    コン




















    国内主要産業の市場規模 (兆円/年)
    ▷ 建設業界は国内で2番目の産業規模
    Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    -----------
    Note:
    各市場における政府統計情報

    View Slide

  9. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ “情報の非対称性”が業界の大きな「不」
    9
    -----------
    Note:
    Ministry of Land, Infrastructure, Transport and Tourism: 「建設労働需給調査」より作成
    案件発注サイド
    50人未満の中小工事会社
    90%の案件発注サイドが、翌月以降の職人を見つけること
    に努力が必要、と言っている
    70%の工事会社が次の仕事がない、と言っている
    オフラインのやり取りに起因する
    “情報の非対称性“が問題
    発注先を見つける
    のに努力が必要
    仕事が決まっていない

    View Slide

  10. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ 非効率な工事手配が業界における最大の課題と設定
    10
    工事会社
    中小工事会社
    中小工事会社
    中小工事会社
    工事会社
    ゼネコン
    工事会社
    課題②
    オフラインのやり取りによる
    職人リソースの偏在
    (toC)
    施主
    課題①
    多重下請け構造による、
    工事マッチングの非効率性
    (toB)
    職人

    View Slide

  11. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    プロダクト

    View Slide

  12. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ 2つのサービスにより、多重下請け構造を変革し、
    中小工事会社 及び 職人の成長を支援する
    12
    工事発注サイド⇔工事会社
    をつなぐ
    BtoB工事マッチング
    プラットフォーム

    中小工事会社のための
    プラットフォーム
    (To B)
    職人のための
    アプリプラットフォーム

    職人(個人)のための
    プラットフォーム
    (To C)

    View Slide

  13. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ SUSTINA:工事会社間の工事マッチング
    会員数 約10,000社
    2016年10月リリース
    課金体系 月額サブスクリプション
    サービス内容 元請と工事会社のマッチング

    View Slide

  14. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    14
    ▷ 2018.3にβ版リリース:職人と発注サイドのリアルタイムマッチング

    View Slide

  15. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ 本日お話しすること
    15
    工事発注サイド⇔工事会社
    をつなぐ
    BtoB工事マッチング
    プラットフォーム

    中小工事会社のための
    プラットフォーム
    (To B)
    職人のための
    アプリプラットフォーム

    職人(個人)のための
    プラットフォーム
    (To C)

    View Slide

  16. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ 本日お話しすること
    16
    SUSTINAのビルドをJenkinsで運用してみた話
    • なぜJenkinsを選んだのか?
    • 運用してみて
    • 今後について

    View Slide

  17. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    なぜJenkinsを選んだのか?

    View Slide

  18. 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

    View Slide

  19. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    19
    ▷ リビルド後の構成図

    View Slide

  20. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ 閑話休題
    20
    https://speakerdeck.com/banri/regasihua-sitaapurikesiyonwoawswoshi-tute3keyue-deshua-xin-sitahua
    リビルドについてはJAWS DAYS 2019の発表資料を見ていただけると!

    View Slide

  21. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ CI/CDの選定の過程
    21
    LaravelがAWS連携が容易なこともありAWSを軸に利用技術を選定
    CI/CDはCodeBuildでしょ!

    View Slide

  22. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ CodeBuildと3日間格闘
    22
    やりたきこと
    • SUSTINAと管理画面はモノレポで管理したい
    • SUSTINAと管理画面は別々にデプロイ可能にする
    • デプロイタイミングはコントロールしたい
    • テストはなし
    CodeBuildだと…
    • GithubからhookでビルドするとSUSTINA,管理画面がどちらもデプロイされてしまう
    • コマンドラインからビルドをキックするのは手間
    • 結局CodeBuild以外のものを利用しないとやりたきことができない

    View Slide

  23. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ CodeBuildと3日間格闘
    23
    やりたきこと
    • SUSTINAと管理画面はモノレポで管理したい
    • SUSTINAと管理画面は別々にデプロイ可能にする
    • デプロイタイミングはコントロールしたい
    • テストはなし
    CodeBuildだと…
    • GithubからhookでビルドするとSUSTINA,管理画面がどちらもデプロイされてしまう
    • コマンドラインからビルドキックはミスりそう
    • 結局CodeBuild以外のものを利用しないとやりたきことができない
    発狂

    View Slide

  24. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ そこでJenkins
    24
    やりたきこと
    • SUSTINAと管理画面はモノレポで管理したい
    • SUSTINAと管理画面は別々にデプロイ可能にする
    • デプロイタイミングはコントロールしたい
    • テストはなし
    こいつならいける!

    View Slide

  25. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    運用してみて

    View Slide

  26. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ Jenkinsを使ってよかったこと
    26
    • Jenkins起因でデプロイできないトラブルはなし
    • 使ったことのあるエンジニアが多く学習コストが少ない
    • ググったときの情報量が多い
    • テーマを導入すると少しモダンなUIになる

    View Slide

  27. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ Jenkinsが微妙なところ
    27
    • JenkinsfileをGroovyで書かないといけない
    • 適切なPluginを導入しないといけない
    • Jenkinsのサーバー運用が必要
    • 大量のビルドもしくは重いビルドを走らせるのは不安
    • 他ツール連携・テスト実行などを増やして行くと設定が煩雑
    • 例えばSlack連携するためにGroovyでスクリプトを書いたり…
    辛い・不安な部分も結構多い

    View Slide

  28. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    今後について

    View Slide

  29. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ 結論
    29
    Jenkinsやめます

    View Slide

  30. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ なぜやめるのか
    30
    • リビルドが完了し、今後を見据えて運用・管理をシンプルにしたくなった
    • Jenkins導入時はリビルドに追われていたこともあり、「慣れている」「利用イメージが湧く」とい
    う観点で採用していたため、
    • Laravel dusk(E2Eテスト)を導入するため、ビルドの調整や
    dockerコンテナの管理などを自前でやりたくない
    • Jenkinsのメンテに時間を取られて開発スピードが落ちてしまっては本末転倒なため
    • ちなみにLaravel duskのリファレンスにCI/ CDについての章があるがJenkinsは出てこない…
    CodeBuild含めどのツールに乗り換えるかは絶賛検討中
    ※おすすめあればぜひ教えてください

    View Slide

  31. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ▷ まとめ
    31
    本当はCodeBuildを使いたかった
    • 十分な時間が取れればJenkinsは選んでなかったかもしれない
    • 複雑なことをしなければJenkinsでも運用は難しくない
    (でも複雑じゃないなら他のツールでもいいよね)
    Jenkins自体は悪いツールではないがツールの選定は慎重に!

    View Slide

  32. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    セミナールームを貸し出せますので、
    イベントなどで使い方はご相談ください!
    ご連絡はこちらまで!
    [email protected]
    ご連絡はこちらまで
    Facebook: shinta.inoue1
    Email: [email protected]

    View Slide

  33. Copyright © 2018 UNION TEC CO., LTD. All Rights Reserved.
    ご静聴ありがとうございました!

    View Slide