復旧が完了した瞬間を知ったのは、音だった。
新しいコアの刻印板が魔法陣に嵌まり、ドルクが最後のボルトを締め、エルナが手動で流していた魔力を引くと、魔法陣が自律的に脈動を始めた。
低く、規則的な振動音。前世で言えば、サーバーのファンが安定回転に入った音に似ている。
「——出力安定。防壁強度、通常の九割二分。フェイルオーバーはまだない。シングル構成のまま。でも、とりあえず」
リオンは【診断】の目を解いた。
「復旧完了だ」
エルナが壁にもたれかかった。二晩にわたる手動防壁の維持。その疲労が、一気に表面化している。
「お疲れさまでした……リオンさん」
「お疲れさま。エルナがいなかったら、持たなかった」
「……えへへ」
笑い声は、半分あくびに消えた。
館の客室に戻ると、ミーナが毛布とスープを用意して待っていた。
「まずスープ飲んでください。話はそれからです」
有無を言わせない口調だった。リオンは黙ってスープを受け取った。
温かい。前世の深夜障害対応後に飲んだ自販機のコーンスープを思い出した。あれは冬のサーバールームで、震える手で缶を開けたんだった。
今は隣にミーナがいて、向かいのベッドではエルナが毛布にくるまって寝息を立てている。隣の部屋からは、ドルクの盛大ないびきが聞こえる。
一人じゃない。それを噛みしめる余裕すら、前世にはなかった。
数時間の仮眠を取って、リオンは目を覚ました。
エルナはまだ寝ている。二晩にわたって魔力を出し続けた体は、そう簡単には回復しない。
リオンは客室の机に白紙の羊皮紙を広げ、ペンを取った。
「……これ、完全にポストモーテムだ」
ポストモーテム。障害事後分析。前世のIT業界では、大規模障害の後に必ず作成する報告書だ。何が起きたのか。なぜ起きたのか。どうすれば二度と起きないのか。
障害対応が終わったら、報告書を書く。前世で身体に刻み込まれた習慣だった。書かなければ気持ちが悪い。
リオンはペンを走らせた。
発生日時。秋月の第三週、午後第二刻頃。
検知日時。同日、午後第二刻半。ルーンフェル工房の簡易監視装置にて検知。
復旧日時。翌々日、午前第三刻。代替コア刻印板への交換により復旧。
障害継続時間。約四十時間。
影響範囲。辺境伯館および周辺五集落の防壁が全面停止。人的被害なし。家畜二頭の被害あり。
「人的被害なし、か。運が良かったとしか言いようがない」
運で守られた稼働率に、意味はない。仕組みで守れ。前世の上司の口癖だ。
根本原因、RCA。Root Cause Analysis。報告書の最も重要な項目だ。
リオンは三段階で書いた。
直接原因:中核コア刻印板の刻印パターン崩壊による完全停止。
中間原因:経年劣化の進行を検知する仕組み(予防保全)がなかった。刻印板の劣化が限界に達するまで放置されていた。
根本原因:シングル構成(予備系なし)による単一障害点の存在。中核コアが一基しかなく、停止が防壁全体の全面停止に直結。冗長化の提案は過去に却下された。
技術的な原因は単純だ。物は壊れる。壊れたときに代わりがなければ止まる。
問題は、「壊れる前に金を出す」ことの難しさにある。
再発防止策は二つ。
一つ目、コア二重化。主系と待機系の二基構成にし、主系が停止した場合に自動で切り替わるフェイルオーバー機構。
二つ目、予防保全体制の構築。月次の定期点検。劣化率を【診断】で測定し、閾値を超えた場合は事前に交換する。壊れてから直す事後保全ではなく、壊れる前に手を打つ予防保全。
そして報告書の最後に、一行だけ付け加えた。
推奨事項:辺境地域全体の主要魔法陣インフラについて、同様のリスク評価と冗長化検討を実施することを推奨する。
ペンを置いた。障害報告書は面倒だ。でも書かなければ、同じことが起きる。
「リオンさん、何を書いてるんですか」
エルナが起きてきた。目をこすりながら、隣に座る。
「障害報告書。原因分析と再発防止策をまとめた。前の世界ではポストモーテムって呼んでた」
「ぽすと……もーてむ?」
「直訳すると『死後検証』。物騒な名前だけど、要は失敗から学ぶための文書だ」
エルナは報告書を覗き込み、指で文字をなぞった。
「すごい……あの二日間に何が起きたか、これ一枚でわかりますね」
「それが報告書の意味だ。当事者は覚えてても、五年後の担当者は知らない。だから書く」
「私にも書けるようになりますか?」
「なる。今度、書き方を教える」
エルナが小さく笑った。眠そうな顔のまま、どこか嬉しそうだ。
午後、リオンはベルクハルトの執務室を訪ねた。障害報告書を携えて。ミーナが隣に控えている。
ベルクハルトは執務机の向こう側に座っていた。目の下に深い隈が刻まれている。
「領主様。防壁の復旧は完了しました。障害報告書をお持ちしました。お目通しいただきたく」
リオンは羊皮紙を差し出した。
ベルクハルトは受け取り、目を通し始めた。静寂が落ちた。表情が、少しずつ変わっていく。
「……根本原因。シングル構成による単一障害点の存在」
低い声で読み上げた。
「冗長化の提案は過去に行われたが、却下された」
そこで、止まった。
リオンは黙って待った。この瞬間を、前世で何度も経験している。報告書を読んだ上司が、根本原因の欄で止まる。そこに書かれているのは技術的な事実であると同時に、意思決定の結果だ。
リオンは責めるつもりはなかった。予算を出さなかった判断を糾弾しても、障害は直らない。大事なのは、次に同じことを起こさないことだ。
「……リオン。再発防止策にある費用は、どれほどだ」
リオンが答える前に、ミーナが一歩前に出た。
「ベルクハルト辺境伯。お見積もりをご用意しております」
ミーナは鞄から羊皮紙を取り出した。昨夜のうちに作っていたのだ。リオンが報告書を書いている隣で。
「コア二重化工事の費用は、資材費と工賃を合わせて金ゼル三枚。工期は二週間です。定期点検の保守契約は、月額銀ゼル五十枚」
ミーナの声には芯がある。
「高いと思われるかもしれません。でも——今回の障害で、緊急対応にかかった費用をまとめました。馬車の手配、人員の拘束、資材の緊急調達、避難対応、家畜の被害補償——合計で金ゼル五枚を超えます」
「……なに?」
「事後に慌てて対応すると、予防するよりお金がかかるんです。数字は嘘つきませんから」
リオンは心の中で頷いた。「冗長化に百万円かかります」と言えば渋い顔をされるが、「障害が起きたら一千万円の損害です」と言えば通る。ミーナはそれを、教えてもいないのにやっている。
ベルクハルトは見積書と報告書を交互に見つめ、深い溜息をついた。
「——わしは、間違えたのだな」
領主の声ではなかった。一人の老人の、悔恨の声だった。
「動いてるものを触るな——わしはそう言った。父も、祖父もそう言っていた。じゃが——お前は、動いてるうちに手を打てと言った。わしはそれを退けた。結果がこれだ」
「領主様」
「言い訳はせん」
ベルクハルトは背筋を伸ばした。昨日の老人ではなかった。辺境伯の顔に戻っている。
「冗長化を実施しろ。費用は出す。定期点検の契約も結ぶ」
「ありがとうございます」
「それと——この報告書にある推奨事項。辺境全体のインフラ見直しとあるが」
リオンは少し驚いた。推奨事項の欄まで読んでくれるとは。前世の上司は、再発防止策の欄までしか読まない。
「大規模です。辺境地域の主要な魔法陣すべてについてリスク評価を行い、冗長化が必要な箇所を洗い出します」
「予算は」
「概算で金ゼル五十枚から百枚。工期は半年以上」
「辺境伯の年間予算の二割に相当するな」
「はい。ただ——今回のような障害が複数箇所で同時に起きれば、被害額はその比ではありません」
長い沈黙の後、ベルクハルトは目を開いた。
「まず調査を実施しろ。辺境全体のリスク評価だ。費用はわしが持つ。結果を見て対策と予算を決める」
「承知しました」
「リオン。——すまなかった」
リオンは前世の記憶が重なるのを感じた。あの部長も一度だけ「すまなかった」と言った。だが、あのときは何も変わらなかった。今回は変わる。
「謝罪は不要です、領主様。大事なのは、次に同じことを起こさないことですから」
執務室を出ると、廊下でエルナとドルクが待っていた。
「どうでした?」
「冗長化の承認が下りた。定期点検の契約も。それから——辺境全体のインフラ見直しの調査も」
「全体の見直し? すごく大きな話じゃないですか」
「大きい。でも、やらなきゃいけない。辺境のあちこちに同じリスクが転がってる。シングル構成、定期点検なし、属人化した保守。一箇所直しても、他が同じなら意味がない」
ドルクが腕を組んだまま口を開いた。
「で、俺は何を打てばいい」
「まずベルクハルト領の予備コアの刻印板。各地の調査が終わったら、冗長化の資材も順次。忙しくなる」
「暇より、いい」
短く言って、鍛冶場の方へ歩いていった。
夕方、工房に戻る馬車の中。エルナは再び眠っている。
「ミーナ」
「はい?」
「見積書、助かった。あの数字がなかったら、領主は決断できなかったと思う」
「あたしにできることですから。技術はわかりませんけど、お金の話なら」
「それが一番大事なんだよ。技術的に正しいことを言っても、予算が通らなければ何も変わらない。前の世界で、僕はそれで何度も負けた」
ミーナの頬が、夕焼けとは別の理由で赤くなった。
「……数字は嘘つかないですから」
リオンはそれだけ言って、夕焼けに目を戻した。ミーナは帳簿を膝に置き、しばらくリオンの横顔を見つめていた。
技術はわからない。魔法も使えない。でも、この人の隣で仕事を回すことはできる。
馬車が村に近づく頃、エルナが目を覚ました。
「リオンさん。あの障害報告書に、『誰が悪い』って書いてなかったですよね。領主様が冗長化を却下したのが原因なのに」
「障害報告書に犯人探しは書かない。書くのは『何が起きたか』と『なぜ起きたか』と『どうすれば防げるか』だけだ」
「でも」
「人を責めても、仕組みは変わらない。責めるべきは人じゃなくてプロセスだ。それがポストモーテムだ」
エルナは小さく頷いた。
「大変ですね、前の世界でも何十回も書いてたって」
「大変だよ。でも書かなきゃ同じことが起きる。ドキュメントは裏切らないから」
「リオンさんの口癖ですね、それ」
「口癖っていうか、前世の呪いだな」
ルーンフェル村に着いた。
工房の診断室に入り、棚の上の監視装置を確認する。ベルクハルト領の結晶石が、淡い青の光を明滅させている。安定稼働。
その隣には、ルーンフェル村の結晶石。ミルデ村の結晶石。ブラント村の結晶石。すべて正常に明滅している。
でも——リオンの目には、それぞれが抱えるリスクが見えていた。シングル構成の防壁。劣化率が上昇している刻印板。定期点検の仕組みがない運用体制。
今回はベルクハルト領で起きた。次は——どこで起きるかわからない。
「明日から、辺境全体の調査計画を作る」
リオンは障害報告書の写しを工房の共有棚に置いた。誰でも読めるようにファイリングする。属人化させない。知識を共有する。仕組みで守る。それが運用屋の仕事だ。
扉の外から、エルナの声が聞こえた。
「リオンさーん! ドルクさんが打ち上げしようって! お酒買ってきてくれたみたいです!」
「今行く」
灯りを消して、仲間のいる方へ歩いていく。
明日からまた忙しくなる。でも——定時で帰れる日を増やすために忙しくなるなら、悪くない。
秋の夜空に、星が瞬いていた。辺境のインフラ見直しプロジェクト——その最初の一歩が、今日、踏み出された。
【あとがき】
ポストモーテム(障害事後分析)は犯人探しではなく仕組みの改善。「人を責めてもプロセスは変わらない」は前世で何十回も学んだ教訓です。