SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2017】セッションレポート(AD)

eコマース革命、「いい買物の日」~Yahoo!ショッピングの技術的課題解決の軌跡【デブサミ2017】

【16-A-5】行列ができるECサイトの悩み~ショッピングや決済の技術的問題と処方箋

  • X ポスト
  • このエントリーをはてなブックマークに追加

完璧なシステムを目指すのではなく、技術的に工夫し、仕組みを改善することが大事

 eコマース革命後、最大の試練となったのが「いい買物の日」だ。中国の大手ECサイトが実施している「独身の日」を参考に、開催日の11月11日を1年で一番買い物が行われる日にしようという販促イベントである。そしてそれは、サーバーの負荷がこれまで経験したことがないレベルにまで達することを意味していた。売上目標をベースにシステムが耐えられる負荷を見積もったが、いつ負荷がピークを迎えるか、どこがボトルネックとなり得るかまったく予想できなかった。

 サーバーを増やし、24時間態勢でシフトを組んで迎えた2015年11月11日。売り上げは朝から順調に伸び、予想を大きく上回る形で推移していった。残り数時間になると、ユーザーによる駆け込み注文が大量に発生し、ピークが到来。その負荷に耐えられず決済システムであるYahoo!ウォレットがダウン。その後は売り上げの伸びが足踏みしたが、最終的には目標を大きく上回ってYahoo!ショッピング史上最大の売り上げを達成した。しかし、エンジニアとしてはトラブルが発生したことで非常に悔いの残る結果となったのである。

 二度と同じ過ちを繰り返さないため「独身の日」を何度も経験している中国のアリババに、負荷が一時的に集中しないよう平準化する方法について助言を求めた。しかし、返ってきた答えは「平準化する必要はない」だった。「システムの都合よりもユーザーの買い物体験を充実することを最優先すべき」との言葉に目の覚める思いで、2回目に向けて「トラブルが起きてもユーザーへの影響を最小限に抑える」というコンセプトを決定した。事前にどんな対策を行ってもトラブルは起こり得る。ならば、トラブルの発生時にそれが波及して多数のユーザーに悪影響を及ぼさないようにするということだ。

 コンセプトに従い、まずはカード後決済というを仕組みを作成。決済システムにトラブルが発生したときは通常の注文フローを変更し、注文完了画面を先に表示して決済を後から実行するように改善した。さらにサーキットブレーカーを導入。フロントページから商品プラットフォームへのリクエストが増大したときに、優先順位の低いフロントページからのリクエストを遮断して負荷を軽減し、商品プラットフォームを守る仕組みである。

トラブル発生時にもユーザーの買い物を妨げない「カード後決済」
トラブル発生時にもユーザーの買い物を妨げない「カード後決済」

 そして2016年11月11日、2回目の「いい買物の日」がやってきた。売り上げは前年を少し上回りながら推移し、前年トラブルを起こした時間帯をやり過ごした後、残り数時間のタイミングでピークが到来した。売り上げはさらに伸び、決済システムが限界に近づいた時にカード後決済を発動。最大のピークを乗り切って、注文を取りこぼすことなく、目指していた形で売り上げを達成できたのである。Yahoo!ショッピングが2回の「いい買物の日」から学んだのは、絶対に落ちない完璧なシステムを作ることは難しいということ。そして、仕組みを工夫すればユーザーの買い物体験を良くすることができるということ。課題はたくさんある。その解決に頭を使うのがエンジニアの腕の見せどころだ。

 「eコマース革命は、Yahoo!ショッピングのシステムにとっても革命だった」と、吉野氏は振り返る。やみくもにシステムに投資するのではなく、技術的に工夫し、仕組みを改善して技術的に課題を解決することで、エンジニアが活躍する場が得られる。吉野氏は「Yahoo!ショッピングもまだ発展途上だ。検索精度の向上、在庫なしによるキャンセル問題、マルチビッグデータの活用、PaaS化への挑戦など、これからもさまざまな課題に挑戦していく」と述べ、セッションを終了した。

お問い合わせ

 ヤフー株式会社

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2017】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10051 2017/04/14 21:35

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング