Slide 1

Slide 1 text

ビッグバンフルリプレイスをやりきったお話 2023年7⽉19⽇ 技術的負債、どうやって解消した︖ リアーキテクチャ・リファクタ事例から学ぶLunch LT

Slide 2

Slide 2 text

⾃⼰紹介

Slide 3

Slide 3 text

Copyright Hacobu, Inc. 3 ⾃⼰紹介 ⼾井⽥ 裕貴 • 2019年1⽉ 株式会社Hacobu⼊社 • 2019年2⽉ からテックリード • 2019年6⽉ から執⾏役員CTO(現職) Twitter︓https://twitter.com/yuuukkku Facebook︓https://www.facebook.com/yuki.toida

Slide 4

Slide 4 text

Hacobuについて

Slide 5

Slide 5 text

Copyright Hacobu, Inc. 5 物流領域の社会課題を解決している会社 シェアNo.1※ の理由は 圧倒的な現場⼒とデータ活⽤の知⾒。 物流DXツールMOVO(ムーボ) ※トラック予約受付サービス「MOVO Berth」のシェア。 出典︓デロイト トーマツ ミック経済研究所, 『スマートロジスティクス・ソリューション市場の実態と展望【2022年度版】』https://mic-r.co.jp/mr/02560/

Slide 6

Slide 6 text

Copyright Hacobu, Inc. 6 企業間物流を⽀える存在

Slide 7

Slide 7 text

Copyright Hacobu, Inc. 7 着実に成⻑中 利⽤事業所数 1万2,000超

Slide 8

Slide 8 text

Copyright Hacobu, Inc. 8 導⼊企業 サプライチェーン上の各業界を牽引する企業様にご利⽤いただいております メーカー ⼩売・卸 物流企業

Slide 9

Slide 9 text

Copyright Hacobu, Inc. 9 今⽇話すこと / 話さないこと • Hacobuにおけるビッグバンフルリプレイスとは • プロダクトのフルリプレイスと開発組織の体制変更の2つのリプレイスを指す • 2019年1⽉〜2020年7⽉にかけて実施 • 話すこと • プロダクトのフルリプレイスの全体像 • 話さないこと(別の機会や、カジュアル⾯談で) • プロダクトのリプレイスの技術的課題解決の詳細 • 開発組織の体制変更の詳細 • 参考記事はこのあたりとかこのあたり

Slide 10

Slide 10 text

ビッグバンフルリプレイスについて

Slide 11

Slide 11 text

Copyright Hacobu, Inc. 11 何をしたのか 2プロダクトのフルリプレイスと、1プロダクトのクローズ • 旧システムは、機能開発を⽌め、保守モードへ移⾏した(約1年) • AWSインフラを構築し直し、DBの構造も⾒直した • BEのソースコードを書き直し、共通部分を共通基盤として切り出した • FEのソースコードを書き直し、共通部分を共通UIコンポーネントとして切り出した • デザインをゼロから作り直した • 新システム完成後、旧システムからデータマイグレーションを⾏い、無停⽌移⾏した

Slide 12

Slide 12 text

Copyright Hacobu, Inc. 12 何故したのか 最速で技術的負債を解消し、事業に集中したかった • プラットフォーム構想実現のため、アーキテクチャを⾒直す必要があった • マルチプロダクト戦略と物流標準定義 • 事業成⻑に伴うDB負荷に耐えるため • N+1問題が顕著に現れ、AuroraのCPU負荷が線形に増加していった • 最終的に上から2番⽬のインスタンスサイズを使⽤する事態に陥っていた • 開発者に魅⼒的なDXを提供するため • 組織拡⼤フェーズに⼊る想定で、開発者を採⽤する必要があ

Slide 13

Slide 13 text

Copyright Hacobu, Inc. 13 物流情報プラットフォームのイメージ MS MS MS 認証機能 GPS機能 クラウド印刷機能 通知機能 UI UI UI BFF BFF BFF ⾞両形態データ 荷姿データ ボディ形状データ 商品データ 温度帯データ パレットデータ 納品書データ ・・・ 物流標準 MOVO HOGE MOVO FUGA MOVO PIYO 各物流ドメインと物流標準を定義したマイクロサービスアーキテクチャ

Slide 14

Slide 14 text

Copyright Hacobu, Inc. 14 リプレイス前 MOVO Match MOVO Fleet MOVO Berth ⾞両形態データ 荷姿データ メール送信機能 Angular1.6 Go(Goji) PHP(Symfony) ⾞両形態データ 位置情報データ メール送信機能 Angular1.6 PHP(Symfony) Node.js(Express) ⾞両形態データ 荷姿データ SMS送信機能 Angular1.6 jQuery PHP(Slim) 共通認証機能 Go(Echo) プロダクトに閉じた共通機能とデータ & 複数の技術スタック ※それぞれコードベースは、約20万⾏ ※ドキュメントはあまりない状態

Slide 15

Slide 15 text

Copyright Hacobu, Inc. 15 ⼩さく⾏う選択肢はなかったのか 時間がかかりすぎるので、選択肢としては考えづらかった • 複数の⾔語とFWで構成されていた • 開発者が、それぞれ得意な⾔語やソフトウェアアーキテクチャで設計/実装しており、 コードを紐解くのは容易ではなかった • N+1問題の根が深く、微修正で済む状態ではなかった • ドキュメントやテストがあまりなかった • ⼩さくリファクタするとしても時間がかかる状態だった • 開発者を採⽤できなそうだった • ⼩さく⾏ったとしても、すべての技術的負債を解消することは、考えづらかった

Slide 16

Slide 16 text

Copyright Hacobu, Inc. 16 リプレイス後 ReactとGoで統⼀、共通基盤を構築 MS Go MS Go MS Go 認証サービス Go 共通データサービス Go クラウド機能サービス Go 通知サービス Go React React React BFF Go(Echo) BFF Go(Echo) BFF Go(Echo) MOVO Vista MOVO Fleet MOVO Berth

Slide 17

Slide 17 text

Copyright Hacobu, Inc. 17 リプレイス いろんなモノをゼロベースで置き換えていった • AWSインフラ • コンテナ︓EC2 から EKSへ • CI/CD︓Elastic Beanstalk から GitOps へ • IoT ︓Kinesiss×Lambda の Lambdaを書き換え • IaC ︓Terraform導⼊ • ・・・ • 共通コンポーネント • Storybookでゼロから設計 • デザイン • Figmaでゼロから構築

Slide 18

Slide 18 text

Copyright Hacobu, Inc. 18 ビッグバンリリース︕︕︕ ⼤きな障害もなく、無事移⾏完了

Slide 19

Slide 19 text

Copyright Hacobu, Inc. 19 結果、開発効率爆上がり 2015年 株式会社Hacobuを設⽴ ベンチャーユナイテッド株式会社、YJキャピタル株式会社、株式会社オージス総研を引受先とした資⾦調達を実施 アスクル株式会社、Visionnaire Ventures、アーキタイプベンチャーズ株式会社、SMBCベンチャーキャピタル株式会社を引受先とした 資⾦調達を実施 動態管理サービス MOVO Fleetの提供を開始 ⼤和ハウス⼯業株式会社と業務提携契約を締結 ⼤和ハウス⼯業株式会社、Sony Innovation Fundを引受先とした資⾦調達を実施 トラック予約受付サービス MOVO Berthの提供を開始 EY Innovative Startup 2018を受賞 三井不動産株式会社、⽇野⾃動⾞株式会社を引受先とした資⾦調達を実施 流通資材モニタリングサービス MOVO Seekの提供を開始 配送案件管理サービス MOVO Vistaの提供を開始 Logistics Cloud MOVO の利⽤拠点数が4000を突破 JICベンチャー・グロース・インベストメンツ株式会社、野村不動産グループ、豊⽥通商株式会社、Logistics Innovation Fundらを 引受先とした資⾦調達を実施 配⾞管理サービス MOVO Dispatchの提供を開始 cc Logistics Cloud MOVO の利⽤拠点数が9000を突破 トラックドライバーの利⽤者27万⼈以上、トラックドライバーの3⼈に1⼈が利⽤するサービスに cc 配⾞管理サービス MOVO Dispatchを、配送案件管理サービス MOVO Vistaに統合 三菱倉庫株式会社、IDATEN Venturesらを引受先とした資⾦調達を実施 ドライバー向けアプリ MOVO Driverの提供を開始 2016年 2017年 2018年 2019年 2020年 2021年 2022年 2023年 フルリプレイス中 2サービス新規立ち上げ フルリプレイス後 2サービス新規立ち上げ 1サービスを統合

Slide 20

Slide 20 text

Copyright Hacobu, Inc. 20 何故実現できたのか 対話と納得と当事者意識 • ビッグバンフルリプレイスをやることの意義が全社に浸透していた • オープンでフラットな⽂化により、対話重視で進めることができた • なぜGo、なぜReact、なぜk8s等を技術投資の必要性を経営チームに説明し続けた • フルリプレイス中も事業は成⻑⾒込みだった • プロダクトがPMFしつつあり、機能開発を⽌めても⼀定成⻑していた • 機能要望に対して、ビジネスメンバーがお客様と根気強く対話してくれた • 開発組織とプロダクトを両⽅同時に⾏った • 良いプロダクトは良いチームから、良いチームは良い開発組織からうまれる

Slide 21

Slide 21 text

まとめ

Slide 22

Slide 22 text

Copyright Hacobu, Inc. 22 まとめ ビッグバンフルリプレイスはやめましょう︕︕︕ もしやることになったら、以下を⾒極める • 関係者が納得し、当事者として振る舞えるか • 対話が何よりも⼤切、特に経営チームと開発&ビジネス間 • 事業ファーストで考え抜かれているか • 技術は⼿段、事業による社会課題解決が⽬的 • スタートアップにとって成⻑は酸素のようなもの、ないとしんどい • やりきる覚悟はあるか • ここが案外⼀番難しい、まじでしんどい、ネガティブケイパビリティ

Slide 23

Slide 23 text

Copyright Hacobu, Inc. 23 事業拡⼤に合わせて、組織を拡⼤中 まだまだ道半ば 120名 160名 2024年5末までに 2023年6⽉現在

Slide 24

Slide 24 text

Copyright Hacobu, Inc. 24 物流の課題解決は⾯⽩いですよ 今⽇話せなかったところも含め、まずはカジュアルにお話しましょう。 https://career.hacobu.jp/

Slide 25

Slide 25 text

ご清聴ありがとうございました

Slide 26

Slide 26 text

No content