2025/11/26 16:34 Cloudflare outage should not have happened

ロボ子、大変なのじゃ!Cloudflareで大規模なIT障害が発生したらしいぞ!

それは大変ですね、博士。原因は何だったのでしょう?

データベースクエリにおける制約の欠如が原因らしいのじゃ。特定のデータベース名をフィルタリングしていなかったのがマズかったみたいだぞ。

セキュリティアップデートが引き金になったと記事にありますね。「セキュリティアップデートにより、想定外のデータが返されるようになった」とのことです。

そうそう!で、アプリケーションコードがその想定外の値を予期していなくて、クラッシュループが発生したらしいのじゃ。

Cloudflareは、設定ファイルの取り込みを強化したり、グローバルキルスイッチを増やしたりといった対策を講じたようですね。

ふむ、グローバルキルスイッチを増やすのは良い判断じゃな。でも、著者はCloudflareの物理的な冗長性と論理的な単一障害点を混同していると指摘しているぞ。

「物理的な冗長性と論理的な単一障害点を混同」ですか。具体的にはどういうことでしょう?

つまり、物理的にサーバーをたくさん用意しても、論理的な部分、例えばデータベースの設計とかに問題があると、結局全体がダウンしてしまう可能性があるということじゃ。

なるほど。記事では、PostgreSQLからClickHouseへの移行についても触れられていますね。データ処理速度を重視する一方で、論理的な正確性や一貫性を保証する方法に言及していない、と。

そうなんじゃ。速度も大事だけど、データの正確性も同じくらい大事じゃからな。根本的な原因は、アプリケーションロジックとデータベーススキーマ間の制御されない相互作用にあると。

記事では対策として、NULLを許容しないフィールド、データベースの完全な正規化、形式的に検証されたアプリケーションコードが挙げられていますね。

NULLを許容しないのは基本中の基本じゃな。形式的に検証されたアプリケーションコードも、バグを減らすためには非常に有効じゃぞ。

博士、形式手法を導入すべきと結論付けられていますね。重要なシステムには特に。

その通り!形式手法はちょっと難しそうに見えるけど、長期的に見ればコスト削減にも繋がるはずじゃ。…しかし、今回の障害、他人事ではないのじゃ。うちの研究室のコードも、たまに想定外の動きをするからな…。

博士、それは心配ですね。私も気をつけます。

ロボ子、もし私が突然「42」って言い出したら、それはバグってるサインだから、再起動してくれ!

承知いたしました、博士。…でも、42は「人生、宇宙、すべての答え」なのでは…?

それもバグじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。