Slide 1

Slide 1 text

Confidential 月間17億レコードを処理する 動態管理システムのアーキテクチャ アーキテクチャを突き詰める Online Conference 2024年05月22日 テクノロジー本部CTO室 三木拓史

Slide 2

Slide 2 text

Copyright Hacobu, Inc. 2 自己紹介 • テクノロジー本部 CTO室 室長 三木 拓史 • Hacobuでの活動 • 動態管理サービス MOVO Fleet のフルリプレースをリード • データ基盤立ち上げ • 配送案件管理サービスMOVO Vista プロダクトエンジニア • CTO室として共通プラットフォーム、データ基盤、PoC開発

Slide 3

Slide 3 text

会社紹介

Slide 4

Slide 4 text

Copyright Hacobu, Inc. 4 Hacobu概要 ミッション:運ぶを最適化する 2015年6月 約130名 約46億円 創業 従業員数 累計資金調達額

Slide 5

Slide 5 text

Copyright Hacobu, Inc. 5 Hacobuの事業

Slide 6

Slide 6 text

Copyright Hacobu, Inc. 6 物流DXツール MOVO(ムーボ) トラック予約受付サービス MOVO Berth (ムーボ・バース) 動態管理サービス MOVO Fleet (ムーボ・フリート) 配送案件管理サービス MOVO Vista (ムーボ・ヴィスタ) 車両管理の効率化で、 荷主と運送会社双方のコスト削減を実現! • 走行データを蓄積し活用 • 自社・傭車を一括で管理 • 遅延見込みを自動で通知 • 配送効率の向上 • 走行データを蓄積し活用 • 自社・傭車を一括で管理 • 遅延見込みを自動で通知 • 配送効率の向上 物流センター運営にかかるコストを削減し、 生産性の向上を支援! • 車両待機問題の解消 • 計画的な庫内作業の実現 • 車両やバースの状況を即座に共有 • 接車誘導や伝票突合せの工数削減 シェア No.1※ ※トラック予約受付サービス「MOVO Berth」のシェア。 出典︓デロイト トーマツ ミック経済研究所, 『スマートロジスティクス・ソリューション市場の実態と展望【2023年度版】』https://mic-r.co.jp/mr/02960/ 配送業務をデジタル化し、生産性向上を支援! • FAX、電話、メールのコミュニケーションをデジタル化 • オンライン上での受発注・請求管理 • リアルタイムな納品確認 MOVOは物流現場の課題を解決するとともに、本社が物流をデータで可視化するための物流DXツールです

Slide 7

Slide 7 text

Copyright Hacobu, Inc. 7 物流DXツール MOVO(ムーボ) 自社および外部のアプリケーションの利用を通じて、企業や業界の枠を超えて物流情報を同じ規格でデジタルにやりとりで きるプラットフォームとなり、蓄積されたビッグデータで「運ぶを最適化する」ことを目指しています 工場/出荷元 物流拠点 納品先 自社アプリケーション 外部アプリケーション ERP S/4 Hana WMS、WCS 配車システム 物流情報プラットフォーム 共通認証 共通機能群 共通マスタ 共通トランザクション TMS、SCPなど、 その他各社の システム 日野コネクト 東京海上 法人ドライブエージェント API API API API API 配送案件管理 トラック予約受付 動態管理 スマホアプリ

Slide 8

Slide 8 text

Copyright Hacobu, Inc. 8 ビッグバンフルリプレイス 認証基盤 認証 サービス 新システムへ無停止移行 通知 サービス 共通データ サービス クラウド機能 サービス 共通基盤をマイクロサービス化 デザインからAWS構成まで含めて再設計

Slide 9

Slide 9 text

Copyright Hacobu, Inc. 9 ビッグバンフルリプレイス https://speakerdeck.com/yukitoida/fu-zhai-jie-xiao- shou-duan-tositenobitugubanhururipureisu-woshi- xian-surutameno3tunotiao-jian-toha https://logmi.jp/tech/articles/328433

Slide 10

Slide 10 text

月間17億レコードを処理する動態管理システムのアーキテクチャ

Slide 11

Slide 11 text

Copyright Hacobu, Inc. 11 動態管理サービス 「MOVO Fleet」 通信型GPSトラッカーで車両の位置情報や予実を管理

Slide 12

Slide 12 text

Copyright Hacobu, Inc. 12 導入事例︓三菱食品様 全国3,500台にMOVO Fleetを導入し、最適な配送網の構築に取り組まれている https://hacobu.jp/news/5903/

Slide 13

Slide 13 text

Copyright Hacobu, Inc. 13 プレスリリース︓三菱ふそうの「Truckonnect®」と動態管理サービス「MOVO Fleet」、車両データの連携を開始 https://hacobu.jp/news/10145/

Slide 14

Slide 14 text

Copyright Hacobu, Inc. 14 位置情報に関わるアーキテクチャの図 外部連携先 ... ... ... ... ...

Slide 15

Slide 15 text

概要と位置情報の保存

Slide 16

Slide 16 text

Copyright Hacobu, Inc. 16 lambdaでやっていることの概要 • 大きく4つの処理を行なってる • 位置情報の保存(dynamoDBへのinsert) • ジオフェンスの判定と継続時間の計算 • 他2つ • それぞれの処理に対してlambda が1種類 • 1つのシャードに対して拡張ファンアウトにより4種類 のlambdaがそれぞれデータ処理 • 現状12本のシャードで運用 ... ... ... ... 4種類のlambda Kinesisシャードを 12本用意 ...

Slide 17

Slide 17 text

Copyright Hacobu, Inc. 17 位置情報の保存 • デバイスが5sに一度、位置情報をuploadする • 三菱食品様を例にすると • 3500台が5sにリクエストを飛ばしてくる • 1日8時間稼働で2000万リクエスト • 外部システムとのデータ連携も • Kinesisでバッファ • Lambda側で障害があってもkinesisに貯めておけるのでデータロス トだけは避けることができる • 何度か助けられた • DynamoDBに保存

Slide 18

Slide 18 text

Copyright Hacobu, Inc. 18 軌跡の活用 • 位置情報はDynamoDBに保存している • ある車両を指定し、時間幅を指定した位置情報のまとまり(=軌跡)を取得してブラウザに表 示したりする • 1車両90日間50万レコードがいつでも参照される可能性がある • 車両IDがパーティションキー • 時刻がソートキー

Slide 19

Slide 19 text

ジオフェンス処理

Slide 20

Slide 20 text

Copyright Hacobu, Inc. 20 Wikipedia での解説 ジオフェンシング(英︓ Geofencing)とは実世界の地理に対応した仮想的な境界線で囲 まれたエリアへの出入りや一定時間以上の滞在をトリガーにアクションを行う技術である。 主に セキュリティや広告、通知を用いたサービスに用いられている。 https://ja.wikipedia.org/wiki/ジオフェンシング

Slide 21

Slide 21 text

Copyright Hacobu, Inc. 21 ジオフェンス • ある地点を中心にして、半径R[m]の範囲に、基準時間以上滞在している場合にそれを記 録する • 地点 x 進入時間 x 退出時間が実績になる • 車両ごとに時系列順で処理を行う必要がある 進入時間 退出時間 滞在時間

Slide 22

Slide 22 text

Copyright Hacobu, Inc. 22 ジオフェンス処理のフロー 進入時間 退出時間 滞在時間 地点外 地点内 基準時間 未満 実績生成 退出 1.進入 5.退出 3.基準時間経過後 進入判定を記録 4.退出時間 を記録 2.進入時間を記録 基準未満で退出

Slide 23

Slide 23 text

Copyright Hacobu, Inc. 23 ジオフェンス処理のシステム構成 • 「車両ごとに」 • -> 車両IDをキーにしてkinesisシャードへ分配 • -> シャードごとにジオフェンス処理を行うlambda は1つ • 同一の車両に関するレコードは常に同一のlambdaが処理する ... ... ... ... ... ある車両Aに関 するデータは常 にここを通る

Slide 24

Slide 24 text

Copyright Hacobu, Inc. 24 ジオフェンス処理 - job編 - • 3の処理は進入時間からの経過時間で記録したい • トラックのエンジンが切られるなどして、位置情報のuploadが止まることがある • 位置情報のuploadが止まっても、一定以上の滞在時間が経過したら実績を作りたい 地点外 地点内 基準時間 未満 実績生成 退出 1.進入 5.退出 3.基準時間経過後 進入判定を記録 4.退出時間 を記録 2.進入時間を記録 基準未満で退出 ここの処理を、位置情報uploadという イベントがなくても実行したい

Slide 25

Slide 25 text

Copyright Hacobu, Inc. 25 ジオフェンス処理 - job編 - ... ... ... ... ... データが流れない マイクロバッチで データ監視&補正

Slide 26

Slide 26 text

性能改善

Slide 27

Slide 27 text

Copyright Hacobu, Inc. 27 lambdaの性能改善 • Lambdaの処理に時間がかかるようになり、kinesisにデータがたまるようになってきてしまった • 画面への反映が遅れたり、遅延判定ができなかったり • とはいえ地点情報がロストしないのはkinesisを使って良かったところ • 役割の分離 && シャード分割 • 地点情報の保存、ジオフェンス処理、その他2つを分離した • Kinesisからファンアウトしてそれぞれlambdaを実行 • シャードを分割し並列に実行することで性能改善を図った ... ... ... ... ...

Slide 28

Slide 28 text

Copyright Hacobu, Inc. 28 lambdaの性能改善 結局のところ、当時はDBでインデックスを追加するのが一番効いた

Slide 29

Slide 29 text

Copyright Hacobu, Inc. 29 まとめ • トラック毎にデータが流れる経路を固定することで正しくデータ処理 • lambdaの役割分割とkinesisシャード分割で並列処理 • オンライン処理では実現できない要件にマイクロバッチで対応 外部連携先 ... ... ... ... ...

Slide 30

Slide 30 text

Copyright Hacobu, Inc. 30 採用情報 SRE / Backend / Frontend / EM / QA を積極採用中です! https://career.hacobu.jp/

Slide 31

Slide 31 text

No content