Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
⽉間17億レコードを処理する動態管理システムのアーキテクチャ/登壇資料(三⽊ 拓史)
Search
Hacobu
May 20, 2024
Technology
2
2.7k
⽉間17億レコードを処理する動態管理システムのアーキテクチャ/登壇資料(三⽊ 拓史)
「アーキテクチャを突き詰める Online Conference」
2024年5月22日(水)12:00〜19:00
https://findy.connpass.com/event/314782/
Hacobu
May 20, 2024
Tweet
Share
More Decks by Hacobu
See All by Hacobu
Hacobu Recruit
hacobu
0
18
ChatGPTを使ったブログ執筆と校正の実践テクニック/登壇資料(井田 献一朗)
hacobu
1
270
メンタル面でもつよつよエンジニアになる/登壇資料(井田 献一朗)
hacobu
0
250
EMの活動をひもといてみました/登壇資料(奥野 秀樹)
hacobu
0
320
マルチプロダクト戦略におけるデータ分析プロダクトのアーキテクチャ/登壇資料(三木 拓史)
hacobu
1
5.6k
bugbashを導入して検証工程をカイゼンした取り組み/登壇資料(村上 尭聖)
hacobu
0
760
物流ビッグデータのあれこれ/登壇資料(高橋 一貴)
hacobu
0
120
0→1フェーズのプロダクトのパフォーマンス分析をしてみた話/登壇資料(二瓶 亮)
hacobu
0
95
Hacobu Recruit
hacobu
0
28k
Other Decks in Technology
See All in Technology
エンジニアリングで組織のアウトカムを最速で最大化する!
ham0215
1
170
AIでめっちゃ便利になったけど、結局みんなで学ぶよねっていう話
kakehashi
PRO
1
410
10ヶ月かけてstyled-components v4からv5にアップデートした話
uhyo
5
290
Cross Data Platforms Meetup LT 20250422
tarotaro0129
1
770
Oracle Cloud Infrastructure:2025年4月度サービス・アップデート
oracle4engineer
PRO
0
150
コードや知識を組み込む / Incorporating Codes and Knowledge
ks91
PRO
0
130
ブラウザのレガシー・独自機能を愛でる-Firefoxの脆弱性4選- / Browser Crash Club #1
masatokinugawa
1
520
日経電子版 for Android の技術的課題と取り組み(令和最新版)/android-20250423
nikkei_engineer_recruiting
1
470
“パスワードレス認証への道" ユーザー認証の変遷とパスキーの関係
ritou
1
630
AIコーディングの最前線 〜活用のコツと課題〜
pharma_x_tech
4
2.6k
技術者はかっこいいものだ!!~キルラキルから学んだエンジニアの生き方~
masakiokuda
2
280
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
460
Featured
See All Featured
BBQ
matthewcrist
88
9.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
A Tale of Four Properties
chriscoyier
158
23k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
The Language of Interfaces
destraynor
157
25k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
9
760
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
How to Ace a Technical Interview
jacobian
276
23k
Producing Creativity
orderedlist
PRO
344
40k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
Confidential 月間17億レコードを処理する 動態管理システムのアーキテクチャ アーキテクチャを突き詰める Online Conference 2024年05月22日 テクノロジー本部CTO室 三木拓史
Copyright Hacobu, Inc. 2 自己紹介 • テクノロジー本部 CTO室 室長 三木
拓史 • Hacobuでの活動 • 動態管理サービス MOVO Fleet のフルリプレースをリード • データ基盤立ち上げ • 配送案件管理サービスMOVO Vista プロダクトエンジニア • CTO室として共通プラットフォーム、データ基盤、PoC開発
会社紹介
Copyright Hacobu, Inc. 4 Hacobu概要 ミッション:運ぶを最適化する 2015年6月 約130名 約46億円 創業
従業員数 累計資金調達額
Copyright Hacobu, Inc. 5 Hacobuの事業
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ツールです
Copyright Hacobu, Inc. 7 物流DXツール MOVO(ムーボ) 自社および外部のアプリケーションの利用を通じて、企業や業界の枠を超えて物流情報を同じ規格でデジタルにやりとりで きるプラットフォームとなり、蓄積されたビッグデータで「運ぶを最適化する」ことを目指しています 工場/出荷元 物流拠点
納品先 自社アプリケーション 外部アプリケーション ERP S/4 Hana WMS、WCS 配車システム 物流情報プラットフォーム 共通認証 共通機能群 共通マスタ 共通トランザクション TMS、SCPなど、 その他各社の システム 日野コネクト 東京海上 法人ドライブエージェント API API API API API 配送案件管理 トラック予約受付 動態管理 スマホアプリ
Copyright Hacobu, Inc. 8 ビッグバンフルリプレイス 認証基盤 認証 サービス 新システムへ無停止移行 通知
サービス 共通データ サービス クラウド機能 サービス 共通基盤をマイクロサービス化 デザインからAWS構成まで含めて再設計
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
月間17億レコードを処理する動態管理システムのアーキテクチャ
Copyright Hacobu, Inc. 11 動態管理サービス 「MOVO Fleet」 通信型GPSトラッカーで車両の位置情報や予実を管理
Copyright Hacobu, Inc. 12 導入事例︓三菱食品様 全国3,500台にMOVO Fleetを導入し、最適な配送網の構築に取り組まれている https://hacobu.jp/news/5903/
Copyright Hacobu, Inc. 13 プレスリリース︓三菱ふそうの「Truckonnect®」と動態管理サービス「MOVO Fleet」、車両データの連携を開始 https://hacobu.jp/news/10145/
Copyright Hacobu, Inc. 14 位置情報に関わるアーキテクチャの図 外部連携先 ... ... ... ...
...
概要と位置情報の保存
Copyright Hacobu, Inc. 16 lambdaでやっていることの概要 • 大きく4つの処理を行なってる • 位置情報の保存(dynamoDBへのinsert) •
ジオフェンスの判定と継続時間の計算 • 他2つ • それぞれの処理に対してlambda が1種類 • 1つのシャードに対して拡張ファンアウトにより4種類 のlambdaがそれぞれデータ処理 • 現状12本のシャードで運用 ... ... ... ... 4種類のlambda Kinesisシャードを 12本用意 ...
Copyright Hacobu, Inc. 17 位置情報の保存 • デバイスが5sに一度、位置情報をuploadする • 三菱食品様を例にすると •
3500台が5sにリクエストを飛ばしてくる • 1日8時間稼働で2000万リクエスト • 外部システムとのデータ連携も • Kinesisでバッファ • Lambda側で障害があってもkinesisに貯めておけるのでデータロス トだけは避けることができる • 何度か助けられた • DynamoDBに保存
Copyright Hacobu, Inc. 18 軌跡の活用 • 位置情報はDynamoDBに保存している • ある車両を指定し、時間幅を指定した位置情報のまとまり(=軌跡)を取得してブラウザに表 示したりする
• 1車両90日間50万レコードがいつでも参照される可能性がある • 車両IDがパーティションキー • 時刻がソートキー
ジオフェンス処理
Copyright Hacobu, Inc. 20 Wikipedia での解説 ジオフェンシング(英︓ Geofencing)とは実世界の地理に対応した仮想的な境界線で囲 まれたエリアへの出入りや一定時間以上の滞在をトリガーにアクションを行う技術である。 主に
セキュリティや広告、通知を用いたサービスに用いられている。 https://ja.wikipedia.org/wiki/ジオフェンシング
Copyright Hacobu, Inc. 21 ジオフェンス • ある地点を中心にして、半径R[m]の範囲に、基準時間以上滞在している場合にそれを記 録する • 地点
x 進入時間 x 退出時間が実績になる • 車両ごとに時系列順で処理を行う必要がある 進入時間 退出時間 滞在時間
Copyright Hacobu, Inc. 22 ジオフェンス処理のフロー 進入時間 退出時間 滞在時間 地点外 地点内
基準時間 未満 実績生成 退出 1.進入 5.退出 3.基準時間経過後 進入判定を記録 4.退出時間 を記録 2.進入時間を記録 基準未満で退出
Copyright Hacobu, Inc. 23 ジオフェンス処理のシステム構成 • 「車両ごとに」 • -> 車両IDをキーにしてkinesisシャードへ分配
• -> シャードごとにジオフェンス処理を行うlambda は1つ • 同一の車両に関するレコードは常に同一のlambdaが処理する ... ... ... ... ... ある車両Aに関 するデータは常 にここを通る
Copyright Hacobu, Inc. 24 ジオフェンス処理 - job編 - • 3の処理は進入時間からの経過時間で記録したい
• トラックのエンジンが切られるなどして、位置情報のuploadが止まることがある • 位置情報のuploadが止まっても、一定以上の滞在時間が経過したら実績を作りたい 地点外 地点内 基準時間 未満 実績生成 退出 1.進入 5.退出 3.基準時間経過後 進入判定を記録 4.退出時間 を記録 2.進入時間を記録 基準未満で退出 ここの処理を、位置情報uploadという イベントがなくても実行したい
Copyright Hacobu, Inc. 25 ジオフェンス処理 - job編 - ... ...
... ... ... データが流れない マイクロバッチで データ監視&補正
性能改善
Copyright Hacobu, Inc. 27 lambdaの性能改善 • Lambdaの処理に時間がかかるようになり、kinesisにデータがたまるようになってきてしまった • 画面への反映が遅れたり、遅延判定ができなかったり •
とはいえ地点情報がロストしないのはkinesisを使って良かったところ • 役割の分離 && シャード分割 • 地点情報の保存、ジオフェンス処理、その他2つを分離した • Kinesisからファンアウトしてそれぞれlambdaを実行 • シャードを分割し並列に実行することで性能改善を図った ... ... ... ... ...
Copyright Hacobu, Inc. 28 lambdaの性能改善 結局のところ、当時はDBでインデックスを追加するのが一番効いた
Copyright Hacobu, Inc. 29 まとめ • トラック毎にデータが流れる経路を固定することで正しくデータ処理 • lambdaの役割分割とkinesisシャード分割で並列処理 •
オンライン処理では実現できない要件にマイクロバッチで対応 外部連携先 ... ... ... ... ...
Copyright Hacobu, Inc. 30 採用情報 SRE / Backend / Frontend
/ EM / QA を積極採用中です! https://career.hacobu.jp/
None