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

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

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

2016年Computer Measurement Group AA Michelson Awardは André Bondi博士が受賞

AA Michelson Awardとは

Computer Measurement GroupのAA Michelson Awardとは、コンピュータの計測とパフォーマンスの評価の分野で優れた功績のあった方に捧げられる賞です。

詳細については、

takehora.hatenadiary.jp

で書いたので、そちらをご参照下さい。

André Bondi博士の功績

今回、2016年のAA Michelson Awardを受賞されたAndré Bondi博士は、複数のドメイン領域でのパフォーマンス問題についての功績が評価されての受賞です。

  • 鉄道運行システム
  • データ分析
  • レコミュニケーション
  • コンベアシステム
  • Webベースの金融システム
  • 監視と管理の構築
  • レコミュニケーションオペレーションサポートシステム
  • ネットワーク管理

博士は、2016年3月に設立された、Software Performance and Scalability Consulting LLCという会社の創業者兼社長を勤めていらっしゃいます。

f:id:takehora:20161204020822j:plain

パフォーマンス関連のお仕事をされてこられた方です。

2014年に、Addison-Wesleから「Foundations of Software and System Performance Engineering」(「ソフトウェアとシステムのパフォーマンスエンジニアリングの基礎」)という400ページに及ぶ本を出版されています。

その第一章「何故パフォーマンスエンジニアリングなのか?何故パフォーマンスエンジニアなのか?」という章の出だしで以下のように書かれています。

コンピュータベースのシステムのパフォーマンスは、定められた活動が高速且つ迅速なレスポンスタイムで稼働できる能力によって述べられる。迅速なレスポンスタイム、速度、スケーラビリティは、どんなコンピュータベースのシステムであれ、最も望まれる特性だ。そして、競争での差別化要因でもあるる。すなわち、この特性は機能のようにそのシステムを他のシステムと差別化し、見込客もしくはユーザをより惹きつける。

もし、そのシステムコンポーネントのパフォーマンスが低い場合、システム全体としては意図したようには機能できないだろう。もし、そのシステムのパフォーマンスが低い場合、見込客やユーザのとって魅力が無いものになるだろう。結果としてプロジェクトが失敗した場合、そのシステム構築に費やされた費用はドブに捨てたようなものである。システムが、指令・管理システム、トランザクションベースシステム、情報提供システム、ビデオゲーム、エンターテインメントシステム、ニュース表示システム、ストリーミングメディア、いずれであっても、上述の事は真実なのだ。

 どのようにパフォーマンスエンジニアになれば良いのか、何を学べば良いのか、迷える日本のエンジニアの方は多いかと思いますが、この本を読めば、日本の書籍ではお目にかかれない、パフォーマンスエンジニアリングの基礎を学ぶ事ができます。

お勧めの本です。

Webサイトパフォーマンスの振り返り 2016

やっと表示速度の認知に火がつき始めた

2016年も、残り一ヶ月となりまして、WebサイトパフォーマンスのAdventカレンダーがスタートしましたので、今年のWebサイトパフォーマンスの動向を振り返ってみます。

今年の1月から3月、日本のECサイト売上上位150社に営業をかけて、色々とお話したのですが、ECサイト関係は、まだまだ表示速度の重要性を認知していない事が分かりました。

4社が興味を示してくれましたが、「配信品質管理」という認識まではやっぱり無かったです。

「日本はこのまま品質管理としてのWebサイトパフォーマンスが普及せずに今年も一年が過ぎてしまうのか?」と危機感を抱き、今年は、以下のカンファレンス等で講演の機会を頂きました。

  • 関西フロントエンドUG主催 frontend conference 2016 「Webサイトパフォーマンスの基礎知識」
  • Movable Type Developers & Designers Conference Meetup TOHOKU 2016 「自治体サイトに求められるWebサイトパフォーマンスの要件 — 災害危機に対応できる表示速度と可用性」
  • WordCamp Tokyo 2016 「レスポンシブデザイン前提のWordPressの表示速度高速化の考え方」
  • 株式会社ミツエーリンクス 「これから始めるWebサイトの表示高速化」セミナー
  • ウェブ解析士協会主催「自治体サイト受発注のススメ!ーデータと事例に学ぶ、住民に喜ばれる自治体サイトの作り方」

品質管理に敏感なのはやはり製造業で、その製造業を中心にWebサイトの表示速度や可用性の定常監視の重要性が認知され始めている実感を、この年末に感じています。

表示速度や可用性を24時間365日計測する重要性のおさらい

Webサイトの表示速度や可用性といった、Webサイトパフォーマンスを24時間365日計測する重要性をおさらいします。

理由1: 環境は変わり続けている

インターネットの状況は日々変わり続けています。
そして、コンテンツも日々変わり続けています。
永遠不変のものは無く、だから、24時間365日計測して、対処し続けないといけないのです。

理由2: CDNは絶対ではない

CDNを導入しているから大丈夫と思われている方が多いですが、CDNを盲目的に信じてはいけません。
実際に計測すると、遅延している事が多いです。

第三者の計測サービスを利用して、定常監視しないと、都合の良いように誤魔化されます。

理由3: サードパーティーコンテンツが遅延要因の大半を占める

現在のWebサイトの遅延要因の大半は、サードパーティーコンテンツです。
つまり、自社で配信している部分については問題がなく、アクセス解析だったり、広告だったり、SNSだったりと、他社のサービスをページに含めているが故に発生しているものが大半を占めます。

この3つが、欧米の企業の間で、定常的にWebサイトのパフォーマンスを計測・監視が普及している理由でもあります。

表示速度の遅延や、可用性の低下が、ECサイトの売上低下に繋がり、コーポレートサイトのデジタルブランディングの低下に繋がり、顧客満足度の低下に繋がるのは、欧米では広く認知されています。

もうそろそろ、日本でも広く認知されても良い頃ではないでしょうか。
いや、是非、認知して頂きたいです。

民法債権法改正がやってくる

フロントエンジニアの人達とお話して感じるのは、企業の規模に関わらず、品質管理にお金を掛ける重要性を認識していない点です。

皆さん、他の業界の品質の問題には目くじらを立てるのに、自分たちが制作するWebサイトの品質の問題には、色々と理由をつけて目を瞑るのは、正直、傍から見ていて滑稽さを感じます。

しかし、そんなWeb業界に爆弾が落ちてきます。

2019年か2020年に国会の審議を通過して施行されると目されている、民法の債権法の大改正です。

システム開発をしているソフトウェア開発界隈では、とても大きな話題になっているのですが、Web界隈では殆ど話題に上がっていません。

従来、請負制作の目的物の瑕疵については、以下の条文が適用されてきました。

(請負人の担保責任)
第634条  仕事の目的物に瑕疵があるときは、注文者は、請負人に対し、相当の期間を定めて、その瑕疵の修補を請求することができる。ただし、瑕疵が重要でない場合において、その修補に過分の費用を要するときは、この限りでない。
2  注文者は、瑕疵の修補に代えて、又はその修補とともに、損害賠償の請求をすることができる。この場合においては、第533条の規定を準用する。

(請負人の担保責任の存続期間)
第637条  前三条の規定による瑕疵の修補又は損害賠償の請求及び契約の解除は、仕事の目的物を引き渡した時から一年以内にしなければならない。
2  仕事の目的物の引渡しを要しない場合には、前項の期間は、仕事が終了した時から起算する。

これが、今度の大改正に伴い、以下のように変わります。

第634条
仕事の目的物が種類又は品質に関して契約の内容に適合しないものであるときは、注文者は、請負人に対し、相当の期間を定めて、目的物の修補を請求することができる。

第637条
請負人が種類又は品質に関して契約の内容に適合しない仕事の目的物を注文者に引き渡した場合(引渡しを要しない場合にあっては、仕事が終了した時に目的物が種類又は品質に関して契約の内容に適合しない場合)において、注文者がその不適合の事実を知った時から1年以内に当該事実を請負人に通知しないときは、注文者は、その不適合を理由とする修補の請求、報酬の減額の請求、損害賠償の請求及び契約の解除をすることができない。ただし、請負人が引渡しの時(引渡しを要しない場合にあっては、仕事が終了した時)に目的物が契約の内容に適合しないものであることを知っていたとき又は知らなかったことにつき重大な過失があったときは、この限りでない。

民法の条文に「品質」という言葉が入るようになったのです。
これに伴い、仕様を実現するだけでなく、非機能要件としての品質も契約履行責任の範疇に自動的に含まれるようになりました。

どんなにビジュアル的に素晴らしいWebサイトを制作したとしても、配信品質が悪くて、表示が遅かったり、エラーが発生するようなWebサイトを制作した場合は、発注企業のユーザや顧客に快適にWebサイトを閲覧してもらうという目的に適合しないわけですから、結果として契約を履行していない事になります。

日本の法律事務所は既に動き出していて、民法改正のセミナーを企業向けに行っており、その中の幾つかは、Webサイトの品質の問題についても触れています。

そして、実際に、現在、表示速度の遅延が何秒以上であれば瑕疵であるかどうかについて揉めている事案の相談が来ています。

欧米においては、

  • 表示開始時間(Render Start)が0.5秒以内
  • 表示完了時間(Document Complete)が2秒以内

が目標値です。

私の仕事でも、この数値を目標に高速化を行います。
すると結果として、直帰率が軒並み50%以下になります。
Googleの検索ランキングも各キーワードで全体的に上昇します。

民法基本法なので、「品質とは何か」については定義はしません。それは個別法で制定したり、各種の法源によって参照されて判断されます。

法源とは、過去の裁判での判例や、慣習、学説、条理(物事の筋道)など、法として援用できる規範の事です。

品質管理については、特に、製造業で発展しています。
品質の定義は、JISやISOの規格で定義があります。

どれくらい遅延すると「瑕疵」となるか(新しい債権法では、目的に合致しない品質となるか)が焦点になります。
表示速度とページビュー数、直帰率、コンバージョン率の相関データを取得すれば、そのサイトにおける表示速度の高速化効果の逓減率は計算できるので、それが証拠として使えると考えます。(もちろん、高速化して、各種KPIに対する効用を計測する必要はありますが)

欧米のサイトでの表示速度とKPIとの相関のデータは豊富にあるので、それも参照されるでしょう。

瑕疵担保責任の一年の期限が無くなる

注目して頂きたいのは、瑕疵担保責任期間一年の記述がなくなる点です。

ただし、請負人が引渡しの時(引渡しを要しない場合にあっては、仕事が終了した時)に目的物が契約の内容に適合しないものであることを知っていたとき又は知らなかったことにつき重大な過失があったときは、この限りでない。

品質に問題があると知っているのに納品した場合、無期限で責任を負う事になります。

実務的には、「品質に問題があると知らなかった」という事を証明するには、製造業のように品質検査をして、品質検査証明書を検査データと共に添付する必要があります。

また、重大な過失(重過失)によって知らなかった時も、無期限で責任を負います。
品質検査をしていなければ、当然ながら、重過失となります。

さて、皆さん、たとえ品質管理に詳しくないとしても、開発者ツールやGoogle Page Speed Insightsを使って、表示速度をチェックすることは、何の保証にもならない事はお分かりいただけると思います。

開発者ツールで計測しても、それは、自分の環境では、その秒数だったという事であり、それを以って、品質の保証は出来ないのです。

何故かというと、「生産ライン」が違うからです。

品質保証と統計学

「生産ライン」と言ってるのは、Webページは、各構成要素のファイルが、インターネットの回線を通して、ユーザの端末に届き、ブラウザで組み立てられる事を、製造業の「生産ライン」に喩えています。

ユーザが使っている回線と、自分が使っている回線が同じだとしても、その回線を利用しているユーザがどれくらいの率かを調べる必要があります。
現在、最も日本でマーケットシェアが最も高い回線でも34%しかカバーできません。
残りの66%の品質については、調査していない事になります。

また、数回の計測では、何の保証にもなりません。
ランダムサンプリング数が多ければ多いほど、「真の値」に確率的に近づいていきます。
私は、実務では、日次パターン、週次パターンまで追えるように、最低二週間、15分に1回の頻度で計測してパフォーマンスの評価を行います。
60分/15分 × 24時間 × 14日間 = 1344の標本の数で評価を行っています。

もちろん、単に計測すれば良いというわけではなくて、統計分析のデータの取り方の基本である実験計画法の三原則(フィッシャーの三原則)に基いて計測します。

Google Page Speed Insightsを使うのを止めよう

Google Page Speed Insightsは、表示速度は計測していないですし、高速化のベストプラクティスの適合度をチェックしているだけす。
欧米では、パフォーマンスエンジニアが実務で使うことはほぼ無いです。
Google Page Speed Insightsで盛り上がっているのは、日本だけです。

遅延の要因を調べてくれるわけではないので、Google Page Speed Insightsのスコアを一生懸命に上げても高速化はされません。

Google Page Speed Insightsは、Web制作を仕事にされているのであれば、使うのを止めましょう。

日本でも、やっとQAエンジニアの重要性が高まる

民法の債権法改正によって、QAエンジニアの重要性が欧米のように高まり、需要が増えると思います。

本当は、法律がどうかに依らず、品質は本質的に大事だから、QAエンジニアの需要が高まるべきです。

その事が美術重視のWebデザインから、機能性や品質重視の工業デザインとしてのWebデザインへと変わるきっかけを日本に齎してくれるのではないかと期待しています。

一方で、ある程度の大きさのWeb制作会社やSIerなどは、品質管理や品質検査に対応が可能だと思うのですが、規模が小さいWeb制作会社や、特にフリーランスの人はどうするのだろうと、ちょっと心配しています。

フリーランスの人達で組合をつくって、損保会社と提携して組合で品質損害保険の制度を設けるのはどうでしょう?
個人では、品質検査をして品質保証書を出すのは大きな負担になります。
組合を作れば、組合全体での品質検査の数が大きくなるので、計測サービスも規模の大きさによる割引を受けられて、一件あたりの負担が減ります。

2017年は日本におけるWebサイトパフォーマンスの夜明けになる

来年は、日本におけるWebサイトパフォーマンスの夜明けになる予感がしています。

少なくない企業の担当者からCDNの遅延の苦情を聞きました。
幾つかのメディアサイトは、重いWebサイトをどうにかしないといけないと動き始めています。

高速化は、やれば結果がついてきます。
高速化を行い、そして高速性を維持するためには、定常的な計測が必須です。

これを読んでいる皆さんは、日本でもアーリーアダプター層だと思います。
戦後、日本の製造業は、「安かろう・悪かろう」だった製品を、デミング博士から統計的品質管理手法を学び適用する事によって、品質を高めて、世界を席捲しました。
是非、日本でのWebサイトの品質管理を普及し、そして日本の産業が発展する一助となるよう、皆様のお力添えを頂けると幸いです。