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

⽉間17億レコードを処理する動態管理システムのアーキテクチャ/登壇資料(三⽊ 拓史)

Hacobu
May 20, 2024

⽉間17億レコードを処理する動態管理システムのアーキテクチャ/登壇資料(三⽊ 拓史)

「アーキテクチャを突き詰める Online Conference」
2024年5月22日(水)12:00〜19:00
https://findy.connpass.com/event/314782/

Hacobu

May 20, 2024
Tweet

More Decks by Hacobu

Other Decks in Technology

Transcript

  1. Copyright Hacobu, Inc. 2 自己紹介 • テクノロジー本部 CTO室 室長 三木

    拓史 • Hacobuでの活動 • 動態管理サービス MOVO Fleet のフルリプレースをリード • データ基盤立ち上げ • 配送案件管理サービスMOVO Vista プロダクトエンジニア • CTO室として共通プラットフォーム、データ基盤、PoC開発
  2. 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ツールです
  3. Copyright Hacobu, Inc. 7 物流DXツール MOVO(ムーボ) 自社および外部のアプリケーションの利用を通じて、企業や業界の枠を超えて物流情報を同じ規格でデジタルにやりとりで きるプラットフォームとなり、蓄積されたビッグデータで「運ぶを最適化する」ことを目指しています 工場/出荷元 物流拠点

    納品先 自社アプリケーション 外部アプリケーション ERP S/4 Hana WMS、WCS 配車システム 物流情報プラットフォーム 共通認証 共通機能群 共通マスタ 共通トランザクション TMS、SCPなど、 その他各社の システム 日野コネクト 東京海上 法人ドライブエージェント API API API API API 配送案件管理 トラック予約受付 動態管理 スマホアプリ
  4. Copyright Hacobu, Inc. 8 ビッグバンフルリプレイス 認証基盤 認証 サービス 新システムへ無停止移行 通知

    サービス 共通データ サービス クラウド機能 サービス 共通基盤をマイクロサービス化 デザインからAWS構成まで含めて再設計
  5. Copyright Hacobu, Inc. 16 lambdaでやっていることの概要 • 大きく4つの処理を行なってる • 位置情報の保存(dynamoDBへのinsert) •

    ジオフェンスの判定と継続時間の計算 • 他2つ • それぞれの処理に対してlambda が1種類 • 1つのシャードに対して拡張ファンアウトにより4種類 のlambdaがそれぞれデータ処理 • 現状12本のシャードで運用 ... ... ... ... 4種類のlambda Kinesisシャードを 12本用意 ...
  6. Copyright Hacobu, Inc. 17 位置情報の保存 • デバイスが5sに一度、位置情報をuploadする • 三菱食品様を例にすると •

    3500台が5sにリクエストを飛ばしてくる • 1日8時間稼働で2000万リクエスト • 外部システムとのデータ連携も • Kinesisでバッファ • Lambda側で障害があってもkinesisに貯めておけるのでデータロス トだけは避けることができる • 何度か助けられた • DynamoDBに保存
  7. Copyright Hacobu, Inc. 18 軌跡の活用 • 位置情報はDynamoDBに保存している • ある車両を指定し、時間幅を指定した位置情報のまとまり(=軌跡)を取得してブラウザに表 示したりする

    • 1車両90日間50万レコードがいつでも参照される可能性がある • 車両IDがパーティションキー • 時刻がソートキー
  8. Copyright Hacobu, Inc. 21 ジオフェンス • ある地点を中心にして、半径R[m]の範囲に、基準時間以上滞在している場合にそれを記 録する • 地点

    x 進入時間 x 退出時間が実績になる • 車両ごとに時系列順で処理を行う必要がある 進入時間 退出時間 滞在時間
  9. Copyright Hacobu, Inc. 22 ジオフェンス処理のフロー 進入時間 退出時間 滞在時間 地点外 地点内

    基準時間 未満 実績生成 退出 1.進入 5.退出 3.基準時間経過後 進入判定を記録 4.退出時間 を記録 2.進入時間を記録 基準未満で退出
  10. Copyright Hacobu, Inc. 23 ジオフェンス処理のシステム構成 • 「車両ごとに」 • -> 車両IDをキーにしてkinesisシャードへ分配

    • -> シャードごとにジオフェンス処理を行うlambda は1つ • 同一の車両に関するレコードは常に同一のlambdaが処理する ... ... ... ... ... ある車両Aに関 するデータは常 にここを通る
  11. Copyright Hacobu, Inc. 24 ジオフェンス処理 - job編 - • 3の処理は進入時間からの経過時間で記録したい

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

    ... ... ... データが流れない マイクロバッチで データ監視&補正
  13. Copyright Hacobu, Inc. 27 lambdaの性能改善 • Lambdaの処理に時間がかかるようになり、kinesisにデータがたまるようになってきてしまった • 画面への反映が遅れたり、遅延判定ができなかったり •

    とはいえ地点情報がロストしないのはkinesisを使って良かったところ • 役割の分離 && シャード分割 • 地点情報の保存、ジオフェンス処理、その他2つを分離した • Kinesisからファンアウトしてそれぞれlambdaを実行 • シャードを分割し並列に実行することで性能改善を図った ... ... ... ... ...
  14. Copyright Hacobu, Inc. 30 採用情報 SRE / Backend / Frontend

    / EM / QA を積極採用中です! https://career.hacobu.jp/