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

ビッグバンフルリプレイスをやりきったお話

 ビッグバンフルリプレイスをやりきったお話

Yuki Toida

July 19, 2023
Tweet

More Decks by Yuki Toida

Other Decks in Technology

Transcript

  1. Copyright Hacobu, Inc. 3 ⾃⼰紹介 ⼾井⽥ 裕貴 • 2019年1⽉ 株式会社Hacobu⼊社

    • 2019年2⽉ からテックリード • 2019年6⽉ から執⾏役員CTO(現職) Twitter︓https://twitter.com/yuuukkku Facebook︓https://www.facebook.com/yuki.toida
  2. Copyright Hacobu, Inc. 5 物流領域の社会課題を解決している会社 シェアNo.1※ の理由は 圧倒的な現場⼒とデータ活⽤の知⾒。 物流DXツールMOVO(ムーボ) ※トラック予約受付サービス「MOVO

    Berth」のシェア。 出典︓デロイト トーマツ ミック経済研究所, 『スマートロジスティクス・ソリューション市場の実態と展望【2022年度版】』https://mic-r.co.jp/mr/02560/
  3. Copyright Hacobu, Inc. 9 今⽇話すこと / 話さないこと • Hacobuにおけるビッグバンフルリプレイスとは •

    プロダクトのフルリプレイスと開発組織の体制変更の2つのリプレイスを指す • 2019年1⽉〜2020年7⽉にかけて実施 • 話すこと • プロダクトのフルリプレイスの全体像 • 話さないこと(別の機会や、カジュアル⾯談で) • プロダクトのリプレイスの技術的課題解決の詳細 • 開発組織の体制変更の詳細 • 参考記事はこのあたりとかこのあたり
  4. Copyright Hacobu, Inc. 11 何をしたのか 2プロダクトのフルリプレイスと、1プロダクトのクローズ • 旧システムは、機能開発を⽌め、保守モードへ移⾏した(約1年) • AWSインフラを構築し直し、DBの構造も⾒直した

    • BEのソースコードを書き直し、共通部分を共通基盤として切り出した • FEのソースコードを書き直し、共通部分を共通UIコンポーネントとして切り出した • デザインをゼロから作り直した • 新システム完成後、旧システムからデータマイグレーションを⾏い、無停⽌移⾏した
  5. Copyright Hacobu, Inc. 12 何故したのか 最速で技術的負債を解消し、事業に集中したかった • プラットフォーム構想実現のため、アーキテクチャを⾒直す必要があった • マルチプロダクト戦略と物流標準定義

    • 事業成⻑に伴うDB負荷に耐えるため • N+1問題が顕著に現れ、AuroraのCPU負荷が線形に増加していった • 最終的に上から2番⽬のインスタンスサイズを使⽤する事態に陥っていた • 開発者に魅⼒的なDXを提供するため • 組織拡⼤フェーズに⼊る想定で、開発者を採⽤する必要があ
  6. Copyright Hacobu, Inc. 13 物流情報プラットフォームのイメージ MS MS MS 認証機能 GPS機能

    クラウド印刷機能 通知機能 UI UI UI BFF BFF BFF ⾞両形態データ 荷姿データ ボディ形状データ 商品データ 温度帯データ パレットデータ 納品書データ ・・・ 物流標準 MOVO HOGE MOVO FUGA MOVO PIYO 各物流ドメインと物流標準を定義したマイクロサービスアーキテクチャ
  7. 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万⾏ ※ドキュメントはあまりない状態
  8. Copyright Hacobu, Inc. 15 ⼩さく⾏う選択肢はなかったのか 時間がかかりすぎるので、選択肢としては考えづらかった • 複数の⾔語とFWで構成されていた • 開発者が、それぞれ得意な⾔語やソフトウェアアーキテクチャで設計/実装しており、

    コードを紐解くのは容易ではなかった • N+1問題の根が深く、微修正で済む状態ではなかった • ドキュメントやテストがあまりなかった • ⼩さくリファクタするとしても時間がかかる状態だった • 開発者を採⽤できなそうだった • ⼩さく⾏ったとしても、すべての技術的負債を解消することは、考えづらかった
  9. 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
  10. Copyright Hacobu, Inc. 17 リプレイス いろんなモノをゼロベースで置き換えていった • AWSインフラ • コンテナ︓EC2

    から EKSへ • CI/CD︓Elastic Beanstalk から GitOps へ • IoT ︓Kinesiss×Lambda の Lambdaを書き換え • IaC ︓Terraform導⼊ • ・・・ • 共通コンポーネント • Storybookでゼロから設計 • デザイン • Figmaでゼロから構築
  11. 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サービスを統合
  12. Copyright Hacobu, Inc. 20 何故実現できたのか 対話と納得と当事者意識 • ビッグバンフルリプレイスをやることの意義が全社に浸透していた • オープンでフラットな⽂化により、対話重視で進めることができた

    • なぜGo、なぜReact、なぜk8s等を技術投資の必要性を経営チームに説明し続けた • フルリプレイス中も事業は成⻑⾒込みだった • プロダクトがPMFしつつあり、機能開発を⽌めても⼀定成⻑していた • 機能要望に対して、ビジネスメンバーがお客様と根気強く対話してくれた • 開発組織とプロダクトを両⽅同時に⾏った • 良いプロダクトは良いチームから、良いチームは良い開発組織からうまれる
  13. Copyright Hacobu, Inc. 22 まとめ ビッグバンフルリプレイスはやめましょう︕︕︕ もしやることになったら、以下を⾒極める • 関係者が納得し、当事者として振る舞えるか •

    対話が何よりも⼤切、特に経営チームと開発&ビジネス間 • 事業ファーストで考え抜かれているか • 技術は⼿段、事業による社会課題解決が⽬的 • スタートアップにとって成⻑は酸素のようなもの、ないとしんどい • やりきる覚悟はあるか • ここが案外⼀番難しい、まじでしんどい、ネガティブケイパビリティ