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

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

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

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コストが上がっている。