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
130
GPTsによるアシスタント業務の改善
neonankiti
3
1.8k
LLM_robustness_and_ops_in_production.pdf
neonankiti
5
2.5k
外食DXにおけるエンジニアリングデザイン
neonankiti
0
390
分散処理システム(IoT)によるトレーサビリティの向上
neonankiti
0
170
Androidにおけるパフォーマンスチューニング実践
neonankiti
8
11k
クライアントサイドから考えるマイクロサービス
neonankiti
0
3k
Elastic Team Building
neonankiti
4
7.4k
Other Decks in Technology
See All in Technology
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
200
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
270
強いチームと開発生産性
onk
PRO
34
11k
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
470
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
130
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Language of Interfaces
destraynor
154
24k
Navigating Team Friction
lara
183
14k
Practical Orchestrator
shlominoach
186
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
How GitHub (no longer) Works
holman
310
140k
Documentation Writing (for coders)
carmenintech
65
4.4k
The Pragmatic Product Professional
lauravandoore
31
6.3k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Scaling GitHub
holman
458
140k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
860
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デバイスのログは必ずクラウドに同期する。