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
レストランにおける分散システムの構築と改善.pdf
Search
neonankiti
July 08, 2022
Technology
0
150
レストランにおける分散システムの構築と改善.pdf
neonankiti
July 08, 2022
Tweet
Share
More Decks by neonankiti
See All by neonankiti
マルチモーダルデータ基盤の課題と観点
neonankiti
1
200
GPTsによるアシスタント業務の改善
neonankiti
3
1.9k
LLM_robustness_and_ops_in_production.pdf
neonankiti
5
2.5k
外食DXにおけるエンジニアリングデザイン
neonankiti
0
400
分散処理システム(IoT)によるトレーサビリティの向上
neonankiti
0
180
Androidにおけるパフォーマンスチューニング実践
neonankiti
8
11k
クライアントサイドから考えるマイクロサービス
neonankiti
0
3k
Elastic Team Building
neonankiti
4
7.5k
Other Decks in Technology
See All in Technology
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
AIのコンプラは何故しんどい?
shujisado
1
190
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
330
20241220_S3 tablesの使い方を検証してみた
handy
3
360
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
430
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
100
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
Wantedly での Datadog 活用事例
bgpat
1
430
2024年にチャレンジしたことを振り返るぞ
mitchan
0
130
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
240
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Fireside Chat
paigeccino
34
3.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
It's Worth the Effort
3n
183
28k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Designing Experiences People Love
moore
138
23k
Why Our Code Smells
bkeepers
PRO
335
57k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Transcript
レストランにおける分散システムの構築と改善 株式会社フードテックキャピタル CTO 南里勇気
2 自己紹介 南里勇気|取締役兼CTO 慶應義塾大学経済学部卒。在学中から株式会社MEDICAでシステム開発、大手 調剤薬局チェーンと共同研究で論文発表。2015年株式会社FiNCに入社して Androidチームマネージャーとしてアプリ改善、GooglePlayベストオブ2018「自己改 善部門」大賞受賞。同年米国シリコンバレーでFiNC Technologies USオフィスを立 上げ。2019年から中国でハードウェアを開発、テックリードとしてプロダクトをローン
チ。2020年6月Bison Holdingsを創業。
3 会社紹介 外食産業でのDXを促進し、テクノロジーを駆使してこの業界を盛 り上げるべく会社を設立致しました。 2022年現在、日本が誇るべき「食」は100年に一度の危機に立た されています。 衣食住の一角をなす「なくてはならない産業」でありながら、DX化 に遅れ、さらにコロナ禍による多大な被害は止まるところを知りま せん。
私たちは、外食産業にテクノロジーを提供する先駆者として、新し い価値と食の未来を創出していきます。DXの促進が、日本の食 文化を大きく発展させることに繋がり「食の未来」が明るいものに 変わっていくことを確信しています。 Mission テクノロジーで 外食を持続可能に 新しい価値を創造し、 日本から世界へ
4 レストランにおける分散システムの構築と改善 本日のテーマ
5 分散システムパターンの勘所を掴む 1. 登場人物の把握 ◦ ユースケース(ワークフロー)を理解する 2. システムによる代替可能性を探る ◦ 誰をどの機械で代替するのか?を考える
3. システム代替によるワークフローの変化と改善を繰り返す ◦ システム同士のコミュニケーション設計 ◦ システム境界のトレーサビリティ向上 ◦ 継続的な改善
6 レストランを取り巻く環境 前提
7 レストランの多種多様なシステム 同じ機能でも ①通信プロトコル ②データ構造 ③インターフェースが レガシーかつ大きく異なる
8 レストランでは多くの制約が存在する。 • 場所に余裕がない(特に物価が高い都心など) • ネットワーク環境が悪い • 汚れやすい • 雑音が多い
• 忙しい → 使いやすい&トレースしやすいハードウェアシステム群の構築が必要 レストランの制約を理解する
9 サービス紹介 delico (デリコ) は、複数のデリバリー/テイクアウトプラットフォームサービスの オーダーを一元管理するサービスです。 一枚のタブレットで受注、印字し、売上の管理やメニューの更新などができ、
飲食店のデリバリーにおける、生産性向上と収益増加の両方を実現させることができます。
10 ドメインを理解し、重要な課題を網羅する レストランスタッフのワークフローを洗い出す
11 自社システムで解決できる範囲を特定する 基本的にはリーチできるターゲットの範囲内 システムで解決できる範囲を特定する
12 1. 注文に気づくこと → 音声による通知&サーマルプリンター 2. 注文内容を把握し調理できること →サーマルプリンター 重要な課題の発見と対応するハードウェア
13 delicoの初期のシステムフロー 店舗によって最適な方法を選べる状態に。
14 Pros/Cons delico運用上のLAN方式とBLE方式の比較 ※通信方式ではなく運用上の比較
15 ソフトウェアはナマモノ。 システム化による影響を評価し、改善を行っていく。 評価と改善には、定量化と仮説が必須である ソフトウェアの継続的な改善
16 【サーマルプリンターの役割】 • 注文に気づかせること • 調理する内容を把握させること 【当時の課題】 • プリントするべき注文(プリントジョブ)をタブレット側が判断(BLE) ◦
予約注文に気づきたいタイミングは、「予約が入った時点」と「調理が必要な時点」だ が、ロジックはアプリ側が持っておりアプリ申請が必要、浸透も難しい。 • BLEのエラーによりプリンターが印刷されないことがある ◦ ログの仕組みがなく、発生ベースでの確認になっていたため影響範囲が不明。(定量化 できていない) • (LAN配線の設置コスト: エンジニア以外の設置が難しかった(約0.5-1時間/店舗)) 過去のシステムフローにおける課題をたてる
17 プリントジョブの管理を考える プリントジョブはエッジ側ではなく、バックエンド側で管理する • プリントするべき注文がDB上に残りトレーサビリティが向上する ◦ BLEのエラーログも監視ツールに送る • プリントするべき注文のロジックが申請なしにデプロイ出来る •
実行したプリントジョブは端末から完了通知を送り消しこむ。
18 今後は1つの店舗で複数のプリンターを利用する可能性がある • 居酒屋ではドリンクとフードを別々のプリンタに出すことがある。 ◦ 商品毎のプリンター出し分けロジックをアプリ側に置くのは地獄。 • BLEのみの場合、複数台をタブレットから遠距離におけない。 ◦ 物理的制約が強い場所はLAN配線によるオプションも提供できる。
未来のビジネスユースケースを想定する
19 delicoの現在のシステムフロー Before) 注文情報からプリントジョブを抽出し、印刷指示を実施 After) プリントジョブをそのまま印刷指示へ。ジョブも削除。
20 トレーサビリティの向上 • 問題発生時に即座に検知/判断出来た。 • 影響範囲が定量的に把握出来た。(CSコミュニケーション) バックエンドのみでプリントジョブを生成できた • 気づいて欲しい注文(キャンセル、エラーなど)をバックエンド側で組める。 複数プリンターへの対応コストの削減
• 商品毎のプリンター振り分けを低コストで実現できる汎用的基盤が出来た システム改善によるインパクトを振り返る
21 まとめ 1. ユースケースを把握し、システム化するべき箇所を特定する。 2. 分散システムでは、運用コストを考えた設計にする。 3. IoTデバイスのログは必ずクラウドに同期する。