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

生鮮食品をユーザーに届ける流通の仕組みと技術 / Distribution in Cookpad Mart 2022

OSA Shunsuke
November 30, 2022

生鮮食品をユーザーに届ける流通の仕組みと技術 / Distribution in Cookpad Mart 2022

Cookpad TechConf 2022 で話した内容です。
https://techconf.cookpad.com/2022/

(近々動画がアップロードされる予定。アップロード後に URL を記載します)

OSA Shunsuke

November 30, 2022
Tweet

More Decks by OSA Shunsuke

Other Decks in Technology

Transcript

  1. 自己紹介 • 長 俊祐 / OSA Shunsuke • @s_osa_ •

    クックパッドマートの流通をつくっているサーバーサイドエンジニア • ソフトウェアと現実世界にまたがる問題解決が好物 • 先日、趣味でフォークリフトの免許を取りました 2
  2. QRコードによる冷蔵庫解錠 • アプリに表示されるQRコードで解錠 • 受け取りがある人だけが開けられる 15 (1) QRコード読み取り (2) QRコードの中身(JSON

    Web Token)を POST リクエストで送信 (3) 署名と内容の検証 (4) 解錠 QRコード スキャナ サーバー (Ruby/Sinatra) 施錠解錠機構 QRコード スキャナ サーバー (Ruby/Sinatra) 施錠解錠機構
  3. 使用 20 Label::Element 各種表現を生成 #to_binary #to_html #to_plain_text Label::Builder Label::Template •

    ラベル要素(Label::Element)を木構造のオ ブジェクトとして生成、必要に応じて各種 表現に変換 • 個々のラベルに加えてラベル生成の仕組み 自体もテストされ、プレビューなどの仕組 みも用意することで、安全かつ高速に変更 を入れていけるように • 印刷 • テスト • プレビュー • ログ • dry run 生成 生成 ラベル テキスト フォントサイズ変更 テキスト テキスト 中央寄せ
  4. 21 • 俯瞰的な情報の提供 ◦ 配送ルート情報の閲覧 ◦ 温度情報の表示・警告 ◦ 作業マニュアルの閲覧 •

    インタラクティブな操作 ◦ 各ドライバーへのルートの アサイン ◦ ラベル印刷 ◦ 作業経過の報告 配送アプリケーション
  5. オペレーション改善を駆動する配送アプリケーション • 配送オペレーションは頻繁に試行錯誤・改善していきたい • 元々は Android/iOS アプリだったが、チーム体制なども踏まえた開発 速度を考慮して Web に移行

    ◦ サーバーサイドの施策が続く時期があるなど、モバイル開発が常 に必要なわけではないので、専属の開発者を抱えるのが難しい ◦ QRコード読み取りなど Web でも出来ることが増えてきた • 主な使用技術 ◦ TypeScript, React (Next.js), GraphQL, MUI, OpenID Connect (Azure AD B2B) 22
  6. 25 • 各ステーションに配送するため のルートを組む • 種々の制約を考慮する ◦ 配送所要時間 ◦ 積載量

    ◦ ステーションの営業時間 • 制約を満たした上で、できるだ け少ない車両で配送したい ルート生成
  7. ルート生成を支える技術 • OSRM (Open Source Routing Machine) ◦ 道路を考慮して、2点間の移動時間を計算してくれる •

    OR Tools ◦ 数理最適化ライブラリ ◦ Ruby 版の or-tools gem を使って、配送計画問題(VRP)の近似解 を求めている ◦ 2点間の移動時間の集合や積載量制約などの条件に基づいて、ルー トを組んでくれる • 上記の2つを軸に、自分たちのサービスが求める制約を満たすための 各種条件や前処理・後処理を追加して実装している 26
  8. 28 • 増え続ける物量を常に届け続け る • たとえば ◦ 作業効率や倉庫の空間効率 を高めるオペレーションの 設計

    ◦ オペレーションを実現する ソフトウェアの開発 ◦ オペレーションの自動化 スケーラブルな流通
  9. 29 • 人間が作業しているため、どう してもミスがある • ミスを限りなくゼロに近づけて いく • たとえば ◦

    ハンディスキャナの導入に よる作業支援 ◦ 商品追跡ログの取得による 原因究明と継続的改善 正確・確実に届く流通
  10. 30 • まだまだ届けられていない商品 がある • もっと便利にしたい • たとえば ◦ 大きい商品や長尺の商品を

    運ぶ仕組み ◦ 冷凍食材の取り扱い ◦ もっと早く届く仕組み 柔軟で便利な流通
  11. 関連資料 • 『クックパッド生鮮 EC お届けの裏側 2022 年版』 ◦ https://techlife.cookpad.com/entry/cookpad-mart-distribution-2022 •

    『クックパッドマートにおける宣言的ラベル生成』 ◦ https://techlife.cookpad.com/entry/2021/08/18/100000 • 『クックパッドマートのドライバー向けWebアプリケーション』 ◦ https://techlife.cookpad.com/entry/driver-web-app-in-cookpad-mart-2022 • 『クックパッドマートの配送ルートを自動生成している仕組み』 ◦ https://techlife.cookpad.com/entry/cookpad-mart-routing-2022 33