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

速度向上の秘訣 CI_CDにおけるDockerビルドの高速化(仮)

速度向上の秘訣 CI_CDにおけるDockerビルドの高速化(仮)

2024/01/31 に開催された先駆者に学ぶソフトウェアデリバリー術 Findy Team+ Award 受賞企業から学ぶソフトウェアデリバリー の株式会社ナレッジラボ 岡野星矢さんの登壇資料です。

Money Forward, Inc.

February 01, 2024
Tweet

More Decks by Money Forward, Inc.

Other Decks in Technology

Transcript

  1. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 ⾃⼰紹介🚀 - 岡野

    星⽮ (オカノ セイヤ) - 開発ディビジョン エンジニアリングチーム - 2023年 5⽉ ⼊社 - 好きな⾔語: Go, Rust, Ruby - Stellaris 好き - 性格: 陰キャなのに、出しゃばりがち 2
  2. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 3 ナレッジラボとは テクノロジー

    経営判断に必要なデータを収集・分析・予測して経営を可 視化する業績・予算管理クラウド 経理財務BPO 業務設計 事業に応じて最適な経営管理を オーダーメイドで設計し、経営管理 のDXを実現します。 クラウドサービスと連携し正確かつ スピーディーな経理財務サービスを 提供します。 経営管理コンサルティング 事業のライフサイクルに合わせてテクノロジーを活用した経 営管理領域のコンサルティング ⼤阪のコンサルティング会社として2013年に事業をスタートし、現在はテクノロジー とコンサルティングの両輪で、経営の解像度を⾼める仕組みを提供しています。 2018年にM&Aでマネーフォワードグループにジョインしています(持分⽐率60%)。 × コンサルティング
  3. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 Manageboard 7 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  4. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 Manageboard 8 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  5. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 2年前... 9 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。
  6. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 1.5年前.... 10 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。 Circle CIのロゴ は Circle Internet Services, Inc. の商標または登録商標です。
  7. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 1年前~現在 11 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。 Circle CIのロゴ は Circle Internet Services, Inc. の商標または登録商標です。 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  8. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 どこらへんがネック? - CI

    (Rspec) おっそい (約12分) - Docker Build 遅い (約7分) - ECSタスクの更新待ち(約5分) 12 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  9. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 1年前~現在 14 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。 Circle CIのロゴ は Circle Internet Services, Inc. の商標または登録商標です。 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  10. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 今 15 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  11. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 なにをした? - CIの並列化

    - Docker buildの速度改善 - dockerのlayer cacheを効くように - Asset PrecompileをDockerの世界からバイバイ 16 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  12. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 CIを並列化 - parallel_tests

    gemでRSpecを並列化 - parallelism + テスト分割はしていた (CircleCI) - テスト実⾏に使うインスタンスのスペックを上げる - parallel_testsの並列数 (スペックは倍にした) - コスト的には実⾏時間は下るのでドッコイドッコイ - Github Actions は Job Matrix で CircleCIと同じくらいの早さに - r7kamura/split-tests-by-timings 17 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  13. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 Asset Precompile を

    Docker の世界からバイバイ - Dockerfileでアセットコンパイルしていた(所要時間 2分) - → Actionsでコンパイル & S3へアップロード - S3からアセットを配信するように 19 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  14. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 Manageboard(再掲) 20 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  15. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 Manageboard 21 Amazon

    Web Services、AWS、および Powered by AWS のロゴは、Amazon.com, Inc. またはその関連会社の商標です。 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  16. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 まとめ - CI/CDトータルが

    約24分 → 約15分に - CIは速ければ速いほうが良い - CI待ちの時間はストレスがたまる - → テスト実⾏は早くなったので、普段の開発の体 験は向上 💪 - デプロイは依然としてDocker buildがネック 24 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。
  17. Copyright © 2023 Knowledgelabo,Inc. All rights reserved.
 未来 - まだまだ開発組織としては⼩さい

    - 改善できるところは⼭程あります! - 今回の取り組みは発表駆動 - 普段から継続してできるようにしたい 25 記載されている会社名および商品‧サービス名(ロゴマーク等を含む)は、各社の商標または各権利者の登録商標です。