読者です 読者をやめる 読者になる 読者になる

Webサイトパフォーマンスについて

Webサイトのパフォーマンス計測について記事を書いています。パフォーマンス管理は、品質管理です。ですから、これをやっておけば大丈夫みたいなBest Practiceで済む世界ではないです。定常計測や、計測データの分析の正しいやり方の認知が普及することを目的としています。内容は、ハードコアかも。

今、見ているWebページのW3C標準規格の表示速度が測れるChrome用機能拡張「Sonar」

表示速度、何で調べていますか?

皆さんは、手軽にWebページの表示速度を調べたい時に、どんなツールを使っていますか?

  • Chrome Developer Tool
  • Firebug
  • 各種オンライン無料計測サービス

こんな感じでしょうか?

標準規格準拠の重要性

実は、これらのツールは、計測したデータに差があります。
私も業務で「ツールによって計測した値が違う」と相談されることがあります。

計測オブジェクト数の違い

実は、これらのツールは、取得できるデータに差があります。
実際に取得しているオブジェクト数を確認してみると分かります。

「ページの終わり」をどのように定義するかは、実は結構悩ましい問題です。
実験計画法の三原則に基づいて、1ユーザとして一定間隔にアクティブに計測するSynthetic Monitoring(合成計測)の場合は、HTTP/HTTPSの通信が途絶えてから1~2秒待ってみて、通信が発生しなければ終わりという定義が主流になってきています。

Catchpointも、Keynoteも、双方ともに、デフォルトでこの方法を採用しています。

ブラウザによる違い

ブラウザによって、取得するデータにも違いがあります。

計測する場所による違い

計測する場所によっても、速度表示が異なります。特にオンラインサービスで提供している無料計測の場合は、どこから計測しているかを確認するのは大事です。

同じ測定基準を使う重要性

何かを「測る」のに、ものさしが異なるのでは非常に困ります。

現在、大人気のNHK大河ドラマ真田丸」で、豊臣秀吉が、福島正則は大きな枡、自分は小さな枡でお酒を呑んでいるのを見比べて、枡の大きさの統一=基準の統一の必要性に気づくシーンが描かれていました。

度量衡を統一して、太閤検地を行うきっかけを上手い具合に表現してましたね。

f:id:takehora:20160516105514j:plain

NHK for Schoolの解説動画は、こちらです。

www2.nhk.or.jp

Webページの表示速度も、計測するツールによって、測定基準がバラバラなのでは、比較がおかしくなってしまいます。

そこで、2010年、W3CWeb Performance Working Groupという部会が設立され、測定基準が策定されました。

いくつかの測定基準の標準化が進められていますが、主要なものは以下の通りです。

Performance Timeline
パフォーマンスの測定基準のデータを保存・取得する統一インターフェースについて定義
Navigation Timing

Webページのルートドキュメントを読み込みながらユーザエージェントから実世界のパフォーマンス情報を収集する、サイト開発者向けの相互利用可能な手段。ユーザエージェントはWebサーバからWebページを読み込んだ時のEnd to Endのレイテンシを取得する。

Resource Timing

Webページのルートドキュメントが指定したリソースを読み込みながらユーザエージェントから実世界のパフォーマンス情報を収集する、サイト開発者向けの相互利用可能な手段。ユーザエージェントはWebサーバからリソースを読み込んだ時のEnd to Endのレイテンシを取得する。これは、ネットワークを経由してリソースを取得した時間とユーザエージェント内でリソースが読み込まれた時間が含まれる。以下のものが含まれる。

  • ネットワークに関連した計時
  • ドキュメント内のリソースを読み込みに関連した計時
  • リソースは以下のエレメントのいずれかになる: iframe, img, script, object, embed, link
User Timing
開発者が提供した名前で計時情報を取得する、サイト開発者向けの相互利用可能な手段。ユーザエージェントはユーザエージェント内でコードが実行されたタイムスタンプと指定された時間を取得する。
Server Timing
ユーザエージェントとのリクエスト―レスポンスサイクルのパフォーマンス測定基準をやり取りする、サーバ向けの相互運用可能な手段であり、JavaScriptインターフェースによってアプリケーションがアプリケーション配信を最適化するためにそれらの測定基準を収集、処理、実行することを可能にする。

現在は、上記の内、Navigation Timing 、Resource Timing、User Timingの3つがWebブラウザに実装されています。

Webブラウザの対応状況

Webブラウザの対応状況は以下のとおりです。
(参考:Can I use... Support tables for HTML5, CSS3, etc.

Navigation Timing API

f:id:takehora:20160516141502p:plain

Resource Timing

f:id:takehora:20160516141658p:plain

User Timing

f:id:takehora:20160516141832p:plain

どうやって計測するか?

これらの測定基準をどうやって計測するかですが、一番手っ取り早いのは、JavaScriptでこれらのAPIを叩いて、データを取得するやり方です。

RUMは、この方法で閲覧したユーザの体験した表示速度などを取得しています。

RUMの場合は、JavaScriptをWebページに埋め込む必要があるので、自分で管理しているWebサイトのページしかデータが取得できません。

「もっと手軽に、今見たページの表示速度を知りたい」

そういう要望に応えたのが、Catchpoint SystemsのChrome拡張機能Sonar」です。

Catchpoint Systemsとは

Catchpoint Systemsとは、DoubleClick、Googleの配信品質担当VPだった、Medhi Daoudiが2010年に起業したWebサイトパフォーマンス計測会社です。

f:id:takehora:20160113124516j:plain

CatchpointのCEOのMedih Daoudiと私(2016年1月)

GoogleMicrosoftを始めとして、米国・欧米・インドのテクノロジー企業やEコマースサイト、Verizonのようなキャリア、Akamai・Fastly・CDNetworks・MaxCDNのようなCDN各社が採用している、今、最も注目を集めているWebサイトパフォーマンス計測のリーディングカンパニーです。

Medhi自身が、DoubleClickやGoogleで、KeynoteやGomezのヘビーユーザだったこともあり、Webサイトパフォーマンス計測に必要なものを、あったら良いものを知り尽くしています。

そこで私財を30億円を投じて、Googleの元DoubleClickのメンバーとスピンアウトして創設した会社です。

全世界に500ヵ所の計測サーバを設置し、今世界で最も広範囲にWebサイトパフォーマンス計測を行えるサービスを展開しています。

RUMやサーバサイドの計測サービスも持ち、IoTの計測も開始しており、Honeywellが全ての通信機器にCatchpointの計測Agentを実装したり、Verizonが米国国内の数千ヵ所での回線計測を行うなどしています。

日本国内では、東京と大阪に計測拠点を持ち、固定回線だけでなく、携帯網のLTE回線でのスマートフォンのブラウザ計測も可能です。

Sonar」とは

 「Sonar」は、CatchpointがChrome拡張機能として作ったもので、JavaScriptを仕込まなくても、Chrome上で閲覧しているWebページの表示速度をW3C Web Performance Working GroupのNavigation Timing とResource TimingのAPIを叩いて取得・表示・分析してくれます。

Sonarのインストール

 Chrome、もしくは、Vivaldiで、こちらのリンクを開きます。

chrome.google.com

残念ながら、同じChromeベースでもOperaは対応していません。

上記のリンクを開くと、Sonarの画面になるので、右上の「CHROMEに追加」の青いボタンを押します。

f:id:takehora:20160516152605p:plain

Sonarでの計測

SonarをインストールしたChromeやVivaldiでWebページを開き、そして、Sonarのボタンを押すだけです。

そうすると、以下のような画面が表示されます。

f:id:takehora:20160516154136p:plain

これを使って取得した計測値は、参考としてみてください。
本格的な統計的品質管理のデータとしては使えないです。

手軽に、「このページ、どのくらいの速さだったんだろう?」と確認する分には、遅い原因も分かりますし使いやすいツールです。

三菱自動車の燃費偽装問題をとやかく言えないWebサイトパフォーマンスのデータ取扱い問題

三菱自動車の燃費偽装問題

朝日新聞デジタル

www.asahi.com

という記事が掲載されています。三菱自動車の軽自動車「eKワゴン」「デイズ」の燃費のデータ偽装の経緯が書かれています。

偽装の詳細が明らかになったのは軽自動車「eKワゴン」と「デイズ」。日産自動車との合弁事業第1弾として燃費を一番の「売り」に開発が始まり、燃費試験データのとりまとめは子会社「三菱自動車エンジニアリング(MAE)」に委託した。

開発が始まった2011年2月時点の燃費目標は、燃料1リットル当たり26.4キロ。初期段階では、燃費算出の元データとなる、路面や空気との摩擦による「走行抵抗」は、前モデルの実測値から推定した値を使っていた。12年8月までに目標は4回引き上げられ、29.0キロになった。

実車試験で走行抵抗は小さくなるとの見通しに基づき、性能実験部長が同年9月の会議で「目標は達成」と報告。同年11月の実測では思うような結果が得られなかったのに、次の会議で販売や生産を含めた車種の全責任者、プロジェクト・エグゼクティブ(PX)が29.2キロまで引き上げるよう求めた。

MAEと本社性能実験部の管理職は、走行抵抗が小さくなるとされる温暖なタイでの試験を計画。MAEが13年1~2月に現地で試験を行ったが、ここでも29.2キロを達成できるような値は得られなかった。MAE管理職が相談したところ、本社の同部管理職は有利な値を抽出してデータを算出するよう指示した。MAE管理職は「過去の経験から目標達成は厳しい」と疑問を抱いていたという。

燃費は、どの車を買うかを決める上で重要な指標の一つだと思います。

私も、先日、14年経過したミニバンを買い替えたのですが、選択の決め手は「平成32年度燃費基準+20%」を達成しているかどうかでした。

燃費が良い事で、ランニングコストとしてのガソリン代が安くなります。
自動車取得税が非課税になります。
自動車重量税も初回車検は免税となります。

軽自動車は、燃費が良い事が売りですから、市場競争が激しい中で、開発の現場に対する燃費の目標達成は相当なプレッシャーだったと思います。

しかし、燃費の目標が達成出来なかったからと言って、データを改竄するのは、失うものが多い選択肢だと思います。

「何故、そんな選択をしたんだ、達成出来ないなら、技術開発をもっと頑張れば良いのに」と思われた方も多々いらっしゃるでしょう。
しかし、私が思うに、こういうデータ改竄は、日常茶飯事な事なのでは無いかと思います。

統計学や品質管理を学ぶと、「それはおかしいでしょう」というような、知識の不足から来る、データ改竄とは言わないまでも、おかしな分析が目に付くようになります。
意図してるのではなく、無知から生じたおかしなデータの集め方、おかしな分析だから許されるのかと言うと、そんな事はありません。
しかし相当に巷に溢れています。

それだけでなく、意図して、自分たちに都合の良い・有利なデータを収集したり、もしくは抜き出して用いる場合が見受けられます。
上記の記事でも、

MAEと本社性能実験部の管理職は、走行抵抗が小さくなるとされる温暖なタイでの試験を計画。MAEが13年1~2月に現地で試験を行ったが、ここでも 29.2キロを達成できるような値は得られなかった。MAE管理職が相談したところ、本社の同部管理職は有利な値を抽出してデータを算出するよう指示し た。

 とありますよね。

実は、Webサイトパフォーマンスの表示速度計測でも、残念ですが、似たような事例は案外多いです。

計測をしたくない人達

Web制作会社や開発会社、SIに多いです。

自社でつくったWebサイトやWebアプリケーションの計測をして、それが遅いと分かったら困るから、計測はしたくないと言われる事は結構多いです。

納入したサイトを更に高速化したら、アクセス数が多いほどに、結果が出やすいです。そうなれば、お客様にも喜ばれるはずです。

「競合他社が構築したサイトを計測して遅かったら、それを指摘して新規案件を開拓するには良いね」と言われます。

「重要な問題は、その問題を作ったときと同じ考えのレベルで、解決することはできない」
アルバート・アインシュタイン

上記のアインシュタインの名言にあるように、自分たちが今まで制作したWebサイトを高速化できていないレベルのままで、考えを変えずに新規案件を取っても高速化できないと思うのですけど…

まずは、既存のお客様に納入したWebサイトを更に高速化する方が先決だと思います。

都合の良いデータを出したい人達

自分達に都合の良いデータを出したい人達も少なからずいます。

例えば、CDNの導入試験で、速いデータになった方の計測サービスを使いたいと言われた事があります。
計測してみて、その観測値に差が生じている時は何らかしらの原因があるわけで、それを調べるのがまず第一だと思うのですが、品質を重視するよりも、商売上の見栄えを重視する人はやはりいるものです。

他には、概して、RUM(Real User Monitoring)の方が、Synthetic Monitoring(合成計測)よりも見栄えの良いデータが取れるます。
見栄えが良いというのは、RUMの場合は、エラーになるとデータが取得できません。またデータを取得する前にユーザがページ遷移してしまうと、そのデータも取得できません。
その結果、RUMのデータは、極端に遅いデータが欠落し、エラーも欠落して、そういうものがない状態だと見えてしまうのです。
その結果、Synthetic Monitoringではなく、RUMのデータを使いたいという人も少なからずいます。

都合のいい情報だけを聞かされれば、どんな人でも判断を間違う。
― 小野寺 正(KDDI会長)

上記の小野寺さんの言葉にあるように、データを取り扱う人の都合の良いデータだけを使うのであれば、それは、三菱自動車の燃費偽装問題と同様に、いつかは会社全体にダメージを及ぼす事になります。

Webサイトの配信品質を高める重要性

世界的に、日本は高品質で名高いのですが、どうも品質管理の概念や重要性は、実際には製造業以外ではあまり普及していないように思えます。

世界的には、Webサイトの配信品質管理は一般的です。
アリババの創業者である、ジャック・マー氏は以下のように品質について述べています。

「どんなに知名度が高くても、そこに品質や品格の後ろ盾がなければ強いブランドとは言えません。知名度にふさわしい質の高い製品やサービス、それを支える人材、さらに企業文化が伴っていることが重要です」
― ジャック・マー(アリババ社創業者)

 実際、中国国内のアリババのサービスを中国国内の各拠点から計測してみたら、表示完了は安定して2秒以内でした。
日本国内の主要なWebサイトが、2秒以内に表示できないのとは大違いです。

日本の製造業は、戦後、品質管理を学び、「安かろう悪かろう」という製品から、「安くても高品質」へと変わり、世界市場へと羽ばたきました。

その途中では、品質のデータを見て、顔を背けたくなるような結果もあったと思います。しかし、真摯にデータに向き合い、そして品質を改善したからこそ、今日の日本の製造業の繁栄があります。

そういう意味では、今回の三菱自動車の燃費偽装問題は、製造業としての基本理念を揺るがす失態だったと言えます。

私たちは、日本において、製品の高品質さを当然の如く要求していますが、一方で、例えば、Webサイトの配信品質(表示速度や繋がりやすさ)については、つくる側が無頓着なようです。

無頓着どころか、見たくないデータは見ない、不都合なデータは見せないという、三菱自動車の性能検査部と大して変わらないことをしている人達もいます。

Webページに埋め込まれる各種サードパーティコンテンツ、広告、アクセス解析や効果測定のサービスも殆どが遅いです。そんな遅いサービスを取り入れたWebサイトが増えてしまい、それらの遅さ故に、ユーザがWebブラウザに広告ブロックのアドオンを入れて閲覧すると、「広告ブロックのアドオンを外さないと閲覧できません」と表示させないようにする。

それは、おかしくないでしょうか?

「広告料をベースに無料で提供しているのだから、遅いとしても広告をブロックするな」というのは、顧客のことを考えていない内向きな論理です。

内向きな論理になると、会社も業界も縮退が始まります。

まずは、遅いという事実と向き合いましょう。
Webサイトが遅くて喜ぶ人なんて、まず居ません。
誰もが、速さを求めています。
遅ければ、また繋がりにくいのであれば、高速化して繋がりやすくするのが、本来取り組むべきことのはずです。

Amazonジェフ・ベゾス氏もWebサイトのパフォーマンスを重視しています。
ジェフ・ベゾス氏は、ワシントンポストを買収しました。
Webサイトの高速化にも取り組み、昨年、ユニーク訪問者数でニューヨークタイムズを追い越しました。

f:id:takehora:20160513214954p:plain

出典: BI Inteligence、comScore、Digiday

 

世界的にWebサイトの高速化と可用性向上を最優先事項に取り組んでいるという事実を直視しましょう。
何故、世界中のWebサイトでそこに取り組んでいるかといえば、端的に言えば、売上が上がるからです。

「生産性の本質を測る真の基準は量ではなくて、質である」
ピーター・F・ドラッカー

ドラッカーは、上記のように、品質こそ、生産性の真の尺度であると述べています。
品質に向き合うためには、適切な方法で計測された、正確なデータと向き合わなければいけないのです。