SOASTAブログ

ホリデーシーズンに向けたWebサイトの備えとは: Nordstrom.comから学んだ12の教訓


02_nordstrom-anniv-holiday

最近、Nordstrom.comのシニアパフォーマンスエンジニアである、Gopal Brugalette氏とO’Reillyのウェブキャストに出演しました。Gopal氏は、建具師であり、農業従事者であり、元原子物理学者でもあり、こちらのお話だけでもう一本ウェブキャストが作れてしまいます。

トピックは、ホリデーシーズンや特別なイベントにWebサイトはどう備えれば良いかという内容でした。ウェブキャスト(英語)は、こちらからご覧いただくことができますが、短時間で理解したいという方のために、Nordstromから学んだ、ペインポイントや得難い教訓、パフォーマンスに関するベストプラクティスなどについて、主要な12点について本ポストで説明したいと思います。

1.備えあれば憂いなし

Nordstromでは、商用化するシステムはすべて、時期に関係なく、いつでも記念セールやホリデーシーズンといった販売最盛期に対応できるようになっている必要があります。以前は、必ずしもそうではありませんでした。数年前は、パフォーマンスは後回しでした。Nordstromは、ホリデーシーズンやスペシャルイベントの対応を、最盛期が到来する直前まで後回しにしており、結果的に、パフォーマンスや内部の効率を犠牲にしていました。Gopal氏は、ユーザーはWebサイトをー年中利用するのだから、パフォーマンスにもー年中注意を払わなくてはならないと指摘しています。

2.クラッシュだけが心配すべきことではない

サービス停止同様、システムのスローダウンも、トラフィックや売上、顧客満足度に重大なダメージを与えます。総合的なユーザーエクスペリエンスが重要だと考えるなら、サービス停止以上にスローダウンに注意を払うべきです。

01_nordstrom-outage

3.パフォーマンスを提供機能の1つと考える

パフォーマンスは、ユーザーエクスペリエンスの重要なポイントです。優れたパフォーマンスは「あれば良いもの」ではなく、提供機能の一部と考えるべきです。

4.組織内の全員がパフォーマンスに責任を持つ

パフォーマンスはエンジニアや運用担当者のだけの問題ではありません。開発者、設計者、プロダクト管理など、チーム内の全員がユーザーエクスペリエンスに責任を持ち、また、新しいデザインや機能を考えるにあたり、次の2つの質問をいつも自分に問いかけることが必要です。

  • お客様への影響は?
  • 技術面の影響は?

5.適切なツールを手に入れる

Gopal氏は、Webサイトのパフォーマンスをモニターし、分析し、問題を特定して原因を突き止めるためには、コードのプロファイリングからログ分析、リアルユーザーモニタリング (RUM) に至るまで、アプリケーションのパフォーマンスモニタリングに必要なソリューションを導入する重要さを強調しています。

6.継続的な改善

またGopal氏は、一気にすべてを置き換えるのではなく、少しずつ新しいツールやプロセスを追加する漸進的な改革の必要性を強調しています。「私たちは絶えず改善を進めています。できることから実施し、少しずつ改善していくのです」と述べています。

7.過去から学ぶ。ただし、それが未来の予測であると決めつけない

あるイベントの負荷パターンが、他のイベントでも同じと考えてはいけません。サイトも、ユーザーも、ユーザーの動向も変化します。こちらのグラフは、Nordstromのホリデーシーズンの負荷パターンと、記念セールの負荷パターンを並べたものですが、一定性はありません。

02_nordstrom-anniv-holiday

8.テストは早めに、頻繁に、あらゆる場所で

Gopal氏は、対談中、非常に興味深い点に言及しています。「本番リリース時に、重大な機能上の不具合があってはならいと考えるのは普通ですが、パフォーマンス上の問題があってはならないと考える人が少ないことに、いつも驚きます。」不具合のある新しい機能をリリースするよりも、パフォーマンスに不備がある機能をリリースする方が、問題が大きくなる場合が多いのです。これは、開発から本番リリースまでのサイクル全般にわたり、プロダクト管理や技術チームが協力してテストすべき事項です。

9.準備は整える。しかし、行き過ぎは禁物

最悪のケースではなく、もっとも現実的なケースに焦点を当ててください。例えば、最悪のシナリオは、北米のお客様全員がブラックフライデーに皆様のサイトを訪問するし、結果、サイトがクラッシュするといったケースでしょう。しかし、これは実際には起こりそうもありません。とても非現実的なシナリオを妄想せず、実際に起こり得ることにフォーカスしてください。

10.開発およびテスト環境にモニタリング機能を導入する

あらゆることをテストしたり、分析することはできませんが、すべてをモニターすることは可能です。(これにより、何をテストして分析すべきかを理解できます。)モニタリングの計画を早期に立ててください。新しい機能を考える都度「この機能のパフォーマンスはどうやってモニターすればよいのか」と自問してください。そして、開発とテスト環境にモニタリング機能を導入します。本番に移行する際も、モニタリング機能を一緒に移行します。

03_nordstrom-monitor

11.ベンダーと調整を図る

ほとんどのサードパーティベンダーは、ホリデーシーズンには皆様と同様、厳戒態勢に入りますが、スペシャルイベントには気づいていないかもしれません。サイトに影響があるような変更を計画してしまうかもしれません。

例として、Nordstromが実施したある年の記念セール期間中、Gopal氏のチームは注文管理システムが、注文を処理できなくなっていることに気がつきました。散々調査した結果、なりすましチェック用に使用していたベンダーが、セール開始の数時間前にサービスに変更を加えていたことが分かりました。これがすべての注文をはじいていたのです。それ以来、Nordstromでは、すべてのベンダーに記念セールのことを事前に伝えるようにしています。

12.予測できないところで問題は起こる

Gopal氏からの素晴らしい教訓:「テストしたことがちゃんと機能することは、100%の自信が持てます。問題が起こるのは、実際の負荷が想定したものと違ったときです。」

例えば、Nordstromの最近の記念セール期間中、セール開始直後のモバイルからのサインインが、予測よりも9倍に膨れ上がりました。クラッシュすることなくこの状況に対処できましたが、急増によってモバイルユーザーに対し大量の「access deinied」エラーを発生させました。これこそリアルタイムモニタリングが重要である理由です。Nordstromは、原因の特定にRUMを活用しました。

まとめ

ホリデーショッピングシーズン(または他のスペシャルイベント)を100%無事に乗り切ることを保証する特効薬などありません。あたり前かもしれませんが、最善の策は顧客最優先の鉄則を貫き、適切なツールを使用し、年中努力を怠らないことです。

 


Tammy Everts

著者について

Tammy Everts

Tammy has spent the past two decades obsessed with the many factors that go into creating the best possible user experience. As a senior researcher and evangelist at SOASTA, she researches the technical, business, and human aspects of web/application performance shares her findings via countless blog posts, presentations, case studies, articles, and reports.

@tameverts