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

外食DXにおけるエンジニアリングデザイン

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 外食DXにおけるエンジニアリングデザイン

Avatar for neonankiti

neonankiti

June 08, 2022
Tweet

More Decks by neonankiti

Other Decks in Technology

Transcript

  1. 9 1. AWSの活用(Multi-AZ)による可用性向上 ◦ タスクはWorker、Scheduler、API ◦ Fargateによる可用性向上と管理コストの削減(※踏み台: EC2) ▪ 注文のスパイクアクセスに対してオートスケールの実行

    ▪ 予測しづらい導入店舗増加に対する、サーバー管理のコスト削減 2. Go言語による注文リクエストの処理 ◦ サービス成長に伴い毎秒/分の大量トラフィックが予想される ◦ 秒間あたりの実行処理速度が良いGo言語の活用 ◦ パフォーマンス測定で700req/s インフラ/バックエンドによる可用性の向上
  2. 10 アプリの可用性低下はバックエンド/UX起因が多い 1. 運用/IoTシステムを信用しないシステム構築 • 課題: 注文が取得できないことがある ▪ 原因1) アプリを開いていない(運用)

    ▪ 原因2) ポーリングが停止している(システム) ◦ 対策: ポーリングプロセスの定期起動&バックグラウンド処理の実行 2. UXによる複数の課題解決 • 課題: 注文音がならず、注文に気づけないことがある ▪ 原因) ハードウェアのステートマシン/エラーハンドリングが不適切 ◦ 対策:キッチンプリンターへのレシート印刷(音以外の仕組みでUXを担保) フロントエンドによる可用性の向上
  3. 11 1. CSと共通の基準を持つ ◦ SLI/SLOの設定=ProductivityとReliabilityのバランスをとる ◦ Critical User Journeyと定量的な指標(metrics)を持つ 2.

    閾値アラートでCSアクションを促す ◦ 外形監視/エラー通知(Datadog/Sentry)による検知 ◦ アプリケーションDB/ログのダッシュボード化とCS側への自動Slack通知。 ▪ 店舗が問題に気づく前にこちら側から通知出来ている 3. Error Budgetの設定による開発アクションの合意形成(予定) ◦ 例えば、バグによるCS問い合わせ数が10倍になった場合、開発側が新規開発を続けるべきか どうか? ◦ 逆にCSが0.01%の再現率の注文に関するバグを開発に対応させるのか? 参考) SLA、SLO、SLI の比較: 相違点は何か? CS/開発のシームレスな連携
  4. 12 Critical User Journey/SLI&SLOの例 注文周りの具体例 • 注文されたらプリントされる ◦ タブレットは飲食店が忙しいと見ないものとして設計 •

    注文に気づく(コア体験) ◦ 料理を作る ◦ 配達する(してもらう) SLI/SLO • システムアーキテクチャに依存 • 注文の成功 ◦ 注文を受けて、データ保存・通知する処理の成功率 ◦ delico注文サーバのレスポンス成功率 ◦ アプリへの注文レスポンス成功率 • 注文の遅延 ◦ Delivery Platform→注文を受けてから、delicoのwebhookに送るまで500msなどのSLAを設ける 参考) Setting SLOs: a step-by-step guide
  5. 13 店舗を分類するいくつかの軸が存在する 1. バーチャルレストラン(VR)とゴーストキッチン(GK) (*) ◦ VRはイートイン80%とデリバリー20% / GKはデリバリー100% 2.

    ブランド ◦ ラーメン屋は席数が少なく、スタッフが全ての業務を担当する。居酒屋は席数が多く、スタッフが 分業制で担当する。 3. 個店舗とエンタープライズ(100店舗以上) ◦ 現場よりも管理本部側のコストが大きく変わってくる ※ バーチャルレストラン(VR) = 実店舗を持つブランドがクラウド上に持つ店舗/ ゴーストキッチン(GK) = 実店舗がないデリバリー専門店 店舗のオペレーションが多様で課題抽出が難しい
  6. 14 ペルソナによって開発する機能が大きく違うため軸を決める ペルソナと課題例 • VR → デリバリーだけではなく、イートインも含めてオペレーションを統一したい。 • GK →

    複数ブランドを料理するため、レシートからすぐに注文を把握したい。 • 居酒屋 → 分業制(ドリンクとキッチンなど)のため、場所ごとにキッチンプリンターが配置される ことがあり、プリンターごとに出す商品を変更したい。 • ラーメン屋 → 麺が伸びやすいため、生産タイミングや調理時間を管理したい。 • 個店舗 → キッチンプリンターは必要がないがCSには常に電話をとって欲しい。 • エンタープライズ → FCのための販促/メニュー/商品管理などを行いたい。 飲食特有のペルソナの解像度を高め、優先度の軸を持つ
  7. 15 店舗の環境依存の問題 1. インターネット環境 • WiFiのネットワークスピードが悪く、数店舗でしか起きない。 • そのため手元で再現せず、解決の見通しが立ちづらい。 2. タブレット(端末モデル/OS)

    ◦ toBシステムのためMDM端末を提供。 ◦ Androidは固定のモデルを利用。iPadは複数端末/OSが存在するため、特定の端末でのみ問題 が起きることも多い。 3. アプリバージョン ◦ 注文を止めるわけにはいかないため、任意のタイミングで強制アップデートができない。 ◦ 店舗スタッフはアップデートすることが怖いため、なかなかアップデートしない。 ◦ 結果、古いバージョンでバグ報告がきてCSコストが上がっている。