第36話「今日も世界は動いている」
「またキャッシュか」
俺はダッシュボードの隅で点滅した、小さな黄色のアラートを見て、つぶやいた。
北部の村のひとつで、住人の名前の表示が、五分ほど古いものに固定されていた。原因はいつもの——一時記録の更新タイミングのズレ。前の世界でも、この世界でも、いちばん身近なトラブルだ。
俺はノードに、修復のコマンドを送った。
「ノード、頼む」
「はい」
ノードがコンソールを叩いた。十秒後、村の住人のステータスが、正しいものに戻った。
アラートが消えた。
また、緑色のステータスだけが、画面に並んだ。
今日もこういうのが、何件か続く。世界が大きく変わったあとも、こまかい不具合は消えない。前の世界でも、巨大な障害対応のあと、数ヶ月は「同じやつ、また出たな」というアラートが続いた。完全に消えることは、たぶん、ない。それでいい。消えない方が、運用としては正しい。直す相手がいる限り、ちゃんと、直し続けられる。
「悠真さん、午後のメンテナンス、開始しますか」
「ああ。順番にやろう。急がない」
ノードがうなずいた。最終切り替えの日よりも、ずっとなめらかな手つきで、コンソールを動かしている。
* * *
あの最終切り替えの日から、いくつもの季節が巡った。
世界は、穏やかに動いている。劇的な事件はもう起きていない。前任者が組み込んだ「終了の前提」が外れた世界は、続くことを前提に、ゆっくりと回っていた。
「悠真様! 経済の式、また少し改良してきました!」
カルクが、メガネをきらきらさせて、新しい数式を持ってきた。新しい設計の計算環境は、彼にとって楽園そのものだった。式が、いつでも、正確に合う。「合わないんです!」と言う機会は、ここ最近、すっかり減っていた。
「悠真くん、明日の天気は、東のほうから雨を降らせるわね」
セレスが、空色の髪を揺らしながらにっこり笑った。彼女の天候の精度は、最終切り替え前に比べると、確かに少し荒かった。でも、彼女は楽しそうだった。「ぴったり」じゃない天気を、住人が楽しんでくれるのがわかっているからだ。
「ふん、新しい迷宮の構想が、ようやくまとまってきおる」
ダンジが、新しいダンジョン群の設計図を見せに来た。彼の目は、職人の目に戻っていた。前より大きく、前より複雑で、前より美しい迷宮の構想だった。
「お前、いいの作るな」
「ふん」
ダンジは照れて、すぐに自分の作業に戻っていった。背中の輪郭が、最終切り替えのあとに少し細くなったまま戻っていない。本人は気にしていない、というか、たぶん、気に入っている。
ノードがそっとつぶやいた。
「ダンジさん、最近、よく笑いますね」
「お前にだけ、わかるんだろうな」
ノードは恥ずかしそうに、また自分のコンソールに目を戻した。
* * *
地上では、勇者パーティが、それぞれの新しい役割を始めていた。
アリアは、各地を巡りながら、住人たちに「目には見えない場所で、世界を守ってくれている人がいる」という話を、少しずつ語り始めていた。固有名は出さない。仔細も伝えない。ただ、「守ってくれている誰かがいる」という事実を、各地に届けて回っていた。
カイルは、それに同行しながら、相変わらず「めんどくせぇな」と言いつつ、彼女の盾を続けていた。革細工の腕は、村ごとに修繕の依頼をもらえるくらいに有名になっていた。
フィオナは、新しい魔法体系の研究にのめり込んでいた。彼女の最新のノートには、「論理的に考えましょう」よりも、「これは、まだ理解できませんわ。でも、面白いですわね」という言葉が増えていた。
リーゼルは、神殿で、新しい神官たちに祈りを教えていた。神託の鈴は、もうほとんど鳴らなくなった。アラートが減ったからだ。リーゼルは、その静けさが、「神様が安心している証拠」だと感じていた。
ガルドは、ギルドの机で、相変わらず冒険者たちの相談に乗っていた。最近の彼の口癖は、「落ち着いてください。状況を整理しましょう」のあとに、もうひとつ加わっていた——「大丈夫、いまの世界は、ちゃんと続いていますから」。
* * *
元魔王だったヴェルノスと、ゼーレは、世界のどこか、静かな谷に住んでいた。
戦う相手も、終わらせる役割も、もう、なかった。
ヴェルノスは、毎日、近くの川で水を汲み、火を起こし、簡単な食事を作っていた。命令から解放された存在が、なぜ生きるのかは、まだ彼自身にもわからなかった。でも、わからないまま生きることに、彼は少しずつ慣れていた。
ゼーレは、相変わらず、人間の詩集を読んでいた。新しく手に入れた本も、戦場の遺品ではなく、ちゃんと町で買ってきたものだった。彼の左目の青は、もう隠していなかった。
ある日、ヴェルノスがゼーレに尋ねた。
「私たちは、これから、何になっていくのだろう」
「主よ……いや、ヴェルノス。たぶん、何にもならないまま、毎日続くのだと思います」
「……それで、いいのか」
「いいのです。命令のない世界では、それで」
ヴェルノスは、しばらく黙ってから、ほんの少し、笑った。それは、戦場の彼の口元に一度も浮かんだことのなかった、静かな笑い方だった。
その夜、ふたりは、谷の上空にかかった月を、長い時間、何も話さずに見ていた。命じられて見ていたわけでも、判定するために見ていたわけでもなかった。ただ、月が綺麗だったから、見ていた。それだけだった。
* * *
南部のリオン村。
ミラは、もう、五歳分は大きくなっていた。村の広場で、年下の子供たちを集めて、よく話を聞かせていた。
「あのね、空のずっと向こうに、世界を見守ってくれてる人がいるんだよ」
子供たちが、目を輝かせた。
「ほんと?」
「うん。わたしには、わかるの。風が吹くたびに、ちょっとだけ、優しい音が混じってる。あの人が、いまも、ちゃんと働いてくれてる音」
「ねぇミラ姉ちゃん、その人、どんな人?」
ミラは、しばらく考えてから、笑った。
「知らない。でもね、わたしには、なんとなくわかるの。空のずっと向こうで、誰かが世界をじっと見守ってくれてる。きっと、ちょっと寡黙で、何かを直すたびに、小さく、ため息をついてるんじゃないかな」
子供たちが、よくわからない単語に首をかしげながら、笑った。
ミラも、笑った。
「だいじょうぶ、その人はね、ちゃんといるよ。風が、ときどき教えてくれるから」
子供たちが、空を見上げた。ちょうど、軽い風が麦畑を渡って、穂先がいっせいに揺れた。子供のひとりが「あっ」と声を上げた。誰にも見えない誰かに、ほんの小さく、挨拶をしているような揺れ方だった。
空の色は、いつもと同じくらい、優しく澄んでいた。
* * *
管理層。
俺はダッシュボードを閉じた。
今日も、世界は、動いていた。
北部で小さな天候の揺らぎ。中央部で軽い経済の振動。南部で、平和な午後。地上には、世界の作り直しがあったことを知る人はほとんどいない。それでいい。住人が「ちゃんと続いている」と感じられること。そのために、俺はここにいる。
「ノード」
「はい」
「明日も、運用だ」
「はい」
ノードが、いつもの笑顔で、うなずいた。
俺は、隣の椅子に深く座り直した。今日の業務は、まだ終わっていない。深夜のバッチ処理の確認、明日の天候の予想、来週のメンテナンス計画。やることは、たくさんある。
でも、もう、ひとりじゃない。
ふと、前の世界のことが思い出された。同じように、ダッシュボードの前で夜を越えた何度もの当直。あの頃の自分にもし伝えられるなら、ひとつだけ言ってやりたい——お前のその「またキャッシュか」のつぶやきは、ちゃんと、誰かの今日を守ってる、と。
ノードが、画面の隅で、新しい黄色のアラートを見つけた。
「悠真さん、また、キャッシュです」
俺は、苦笑した。
「またか」
「はい、また、です」
「じゃあ、また、直そう」
管理層の片隅で、俺たちは、もう一日を終えようとしていた。
見えない場所で、今日も、世界は動いていた。
お読みいただきありがとうございます。
そして——最終話まで、本当に、本当にありがとうございました。
全36話、ここまでお付き合いくださった皆さまに、書き手としてこれ以上ない幸せをいただきました。
【今回のIT用語】
安定運用:システムが大きな変化を終えて、日常のメンテナンスサイクルに入る状態を指します。SREの仕事の本質は、派手な新機能の追加よりも、この「淡々と続く運用」を支えることにあります。本作の最終話で描いたのは、すべての劇的な出来事が終わったあとに残る、日常のメンテナンスの姿——「またキャッシュか」と小さくつぶやきながら直していく、いちばんSREらしい時間です。
長期運用の心構え:システムは「動かし続ける」ものです。終わらせるためではなく、続けるために、毎日少しずつ手を入れていく。本作の世界は、これからもずっと、誰かが運用していきます。世界も、システムも、人生も——「今日も動いている」ことが、たぶん、いちばんの幸せです。
【最終話のあとがき】
『世界が落ちる前に』は、自分にとって、ひとつの分散システムを立ち上げて運用していくような連載でした。プロット設計書というドキュメントを書き、キャラクター設定という型を切り、技術仕様書というスキーマを引いて——36話の連載は、ささやかな「長期運用」だったように思います。書けない日(障害)も、書き直し(ロールバック)も、後付けでねじ込んだ設定も、設計との矛盾に深夜気づいて慌てる夜(インシデント対応)もありました。可用性、たぶん99.9%は割っています。すみません。
特に——白状しておきますと、序盤こそ「毎日定時リリース」のつもりで快調に投下していたものの、中盤あたりから書き手側のキャパシティが追いつかなくなり、当初予定していた毎日更新のペースは早々に崩れました。後半に至っては、数話分をまとめて一気に投下する「バッチリリース」に切り替わってしまった日も少なくありません。本来であれば毎日少しずつお届けして、「次の話までの待ち時間」を短く保つべきところ、まとめて一気に流す形になってしまったこと、心からお詫びします。「次の話、いつ来るんだ」と画面の前で待ってくださっていた方には、本当に、本当に申し訳ありませんでした。それでも最終話まで完走できたのは、長いリリース間隔のあいだも、この作品をそっと「監視」し続けてくださった皆さまのおかげに、他なりません。
正直に書いてしまうと、感想やブックマーク、評価をたくさんいただけたわけではありませんでした。それでも、ときどき届くひと言の感想や、静かに増えていくブックマークの数字、あるいは「黙って読んでくれているだろう誰か」の気配——その一つひとつが、何度もこの連載を立て直す燃料になりました。SREの世界には「観測されていないシステムは存在しない」という言葉がありますが、これは創作にも、たぶん、半分だけ当てはまります。残りの半分は——たとえ反応が直接見える形で返ってこなくても、画面の向こうで誰かが一度でも開いてくださったという事実そのものが、書き手にとっては最終話までの長い「運用」を支える理由になる、ということでした。読んでくださったあなたが、この作品を「動かして」いました。
悠真は、地味で、目立たなくて、「またキャッシュか」とつぶやきながら世界を運用する男です。派手な勇者ではなく、誰にも気づかれずに世界を支える、いちばんSRE(サイトの安定運用を担うエンジニア)らしい主人公を書きたかった。もしこの物語を読んで、「あ、こういう仕事もあるんだな」「裏方の人にちょっとだけ優しくしたいな」と感じてくれた方がいたら、書いた甲斐があります。深夜に呼び出されているどこかの運用エンジニアに、コーヒーの一杯でも差し入れる気持ちで読んでもらえていたら、最高です。
そして——本作はここで「完」となりますが、次のシステムの設計フェーズには、すでに着手しています。今度は別の切り口で、また皆さまに「動いている世界」をお届けできるよう、淡々と、しかし全力で運用していくつもりです。次回作でも、ぜひ、よろしくお願いします。リリースの暁には、また監視(読書)にお越しいただけたら嬉しいです。
それからもうひとつ——リリースされたシステムが運用フェーズに入ってからも日々パッチを当てられていくのと同じように、この物語自体も、「完」を迎えたあとも、少しずつ手を入れていくつもりです。誤字脱字の修正はもちろん、表現のなめらかさの調整、足りなかった描写の補足、ときには小さなシーンの差し替えまで——現代のシステム開発でいうところの「継続的デリバリー」のサイクルで、ゆっくり育てていく予定です。もし数ヶ月後、ふと読み返したときに「あれ、ここ、前と少し違うかも」と感じることがあったら、それはマイナーアップデートかホットフィックスが入った合図です。物語の幹は変わりませんが、より良く読めるように、コツコツとメンテナンスは続けていきます。リリースして終わりではなく、「動かし続ける」のがSREの仕事、というのは、たぶん物語にも当てはまることなのだろうと思います。
最後にひとつだけ。
いま、あなたが手にしているスマホやPCが、今日も静かに動いていたら——それはきっと、世界のどこかで誰かが、「またアラートか」とつぶやきながら直してくれているおかげです。その「誰か」に、ちょっとだけ優しい一日を。
そして、この物語を最後まで運用してくださった、あなたにも。
ここまで、本当にありがとうございました。
感想・ブックマーク・評価、ひとつでもいただけたら、次回作という新しいシステムを立ち上げるための、何よりの燃料になります。
また、次の世界で、お会いできますように。
——『世界が落ちる前に』完




