方法と定義
ラボ記録の作成方法、5 種類の結果の意味、公開する項目としない項目、データの取得方法、引用方法。
これは何か
公開フォーラムからサイト障害の相談事例を選び、再実行できるレシピにまとめ、自社のテストサーバーで同じ障害を再現したうえで、お客様と同じ手順で復旧ステーションに処理させます。
1 事例につき 1 件の記録:サイト所有者に見えていた症状、再現できたサーバー構成、各構成・各接続方式での結果、「復旧」以外で終わった場合の変更内容と修正版。
能力スイープもあります。「対応できる問題」ページの各問題をまとめて 1 つのテストサイトに仕込み、実行ごとに項目単位で「解消」または「残存」を記録します。スイープの結果がある場合、マトリクスのセルはそれを優先します。
これらは当社のテストサーバー上で、特定のバージョン・特定の日に記録したものであり、どのサイトについても結果を約束するものではありません。ホスティング、PHP、WordPress のバージョンが異なれば結果も異なることがあります。
ラボ記録にお客様のデータは含まれません。すべての事例は当社自身のテストサイトで再現し、出典はフォーラムのスレッドへのリンクのみで、投稿本文や投稿者名は転載しません。
テストサーバー
4 種類のサーバー構成。公開するのはソフトウェア層のみです:
- nginx + PHP-FPM
- Apache + PHP-FPM
- Apache + mod_php
- Apache + php-cgi (mod_cgid)
4 台とも同じテストサイトを入れています。実行のたびにサーバーをそのコピーに戻し、実行前のスナップショットと項目ごとに照合します。新しい環境が出てきた場合はレシピを変えずにサーバーを追加します。
事例の進め方
- まずレシピを書く:フォーラムの投稿にある症状に沿って、壊し方と確認方法を決めます。
- 環境が一致するテストサーバーで再現し、トップページとログインページの HTTP ステータスを記録します。一致するサーバーがなければ実行せず、サーバーに合わせてレシピを変えることもしません。
- お客様と同じ手順で復旧ステーションに案件を開きます(支払いはテスト用の模擬)。どの接続方式を実行するかは障害の内容で決めます:管理画面に入れなければ SSH と FTP の両方、入れれば 3 方式すべて。
- 結果を読む:診断で何が検出されたか、復旧で何を行ったか、書き戻し後のサイトの状態。
- 結果が「復旧」でなければギャップとして記録し、復旧ステーションを修正したうえで同じレシピ・同じサーバーで再実行します。
5 種類の結果
「復旧」の判定基準はお客様の案件の再確認と同じです:トップページ、抽出した内部ページ、ページの資産がすべて読み込めること。 ここでいう再確認は、利用規約第 9 条第 5 項にいう再検証を指します。
公開する項目としない項目
公開する
- 事例の公開出典、症状、テストサイトの WordPress と PHP のバージョン。
- 各サーバー構成のソフトウェア層、障害再現後のトップページとログインページの HTTP ステータス。
- 各実行の日付(UTC、日まで)、サーバー構成、接続方式、結果、製品バージョン。
- ギャップ:変更内容、修正を含むバージョン、再実行の日付と結果。
公開しない
- テストサーバーのアドレス、ホスト名、データセンター、マシンサイズ。
- 時刻、各工程の所要時間、案件番号。
- 修正方法の詳細。
- 割合、成功率、要約的な表現。読者が表を数えて判断できます。
公開前にプログラムが検査し、IP アドレス、ホスト名・マシン名、マシンサイズ、データセンター名、案件番号、時刻と所要時間、割合と成功率、約束を示す語、形容詞、英語以外の文字、HTML が含まれていれば公開できません。修正方法の詳細と要約的な表現は人が確認します。ラボのツール側の事情(テストサーバーで障害が再現しなかった、ツールが停止した、レシピを作れなかった)は復旧ステーションの結果ではないため掲載しません。
ギャップを掲載する時期
「復旧」以外で終わった実行は、修正と一緒に掲載します。記録の公開時点で修正がまだリリースされていない場合は「対応中」と表示します。その間にお客様の案件が同じギャップに当たった場合は、利用規約第 9 条の返金規定が適用されます。
訂正
公開後の記録への変更はすべて変更履歴ページに 1 行残します。誤りは直し、直したことを記し、古い記述は削除しません。
利害関係の開示
テスト対象の復旧ステーションは当社自身の製品です。これらのページにスポンサーやアフィリエイトリンクはありません。
データのライセンスと引用
データファイル(CSV と JSON)は CC BY 4.0 で提供します。リンク先のフォーラムのスレッドはデータファイルには含まれません。引用の際は「WP119 lab records」と取得日、URL を記載してください。凍結版(固定日付、ファイルハッシュ、DOI)はデータページの「凍結版」に一覧しています。
欄
| 欄 | 意味 |
|---|---|
id / recipe | Record id: the date the recipe was written plus a short name. It does not change. "recipe" is the name of the fault recipe; one recipe can be run on several days. |
kind | "Forum case": one failure taken from a public forum thread. "Capability sweep": every problem type from the "What we fix" page planted on one test site at once, with a result per problem type. |
title / symptom | What the site owner reported, in plain words, with the HTTP status we saw. |
source | The public forum thread the case was taken from (wordpress.org, wordpress.stackexchange.com or stackoverflow.com). Empty for a capability sweep. |
items | Which of the problem types on the "What we fix" page this case exercises. |
wordpress / php | Versions on the test site. |
observed | Per server setup: HTTP status of the homepage and the login page after the failure was recreated. |
runs | One row per attempt: date (UTC), server setup, connection mode, outcome, product version. A sweep run also carries a result per problem type ("cleared" or "still present"). |
gaps | Every run that did not end in "recovered", and every problem type still present after a sweep, has a row here: what we changed, the version it shipped in, and the re-test. |
changes | Dated list of edits to this record after it was first published. |