Void Platformのサバイバルモード:プレッシャー下でもセルフホスト型デプロイを稼働させ続ける
Void Platformのサバイバルモードは、保持されたログ、ロールバック履歴、冗長なアクセス経路、不具合リリース時のランブックによって、セルフホスト型デプロイを稼働させ続けます。
共有デプロイプラットフォームにおけるほとんどの障害は、あなたが出荷するコードが原因ではない。原因は、誰も維持してこなかった可視性とロールバック経路にある。Void Platformのサバイバルモードとは、リリースがうまくいかなくなったときに、プラットフォームが実際に保持しているものだけを使ってサービスを復旧するための運用姿勢である。これを正しく整えておけば、問題のあるデプロイのコストは数分で済む。怠れば、同じデプロイが週末をつぶす。本ガイドでは、Void Platformのサバイバルモードが対象とする範囲、標準インストールでも生き残る機能、そしてプレッシャーが現実になったときにチームが従えるランブックの作り方を解説する。
Void Platformのサバイバルモードが実務上意味するもの
サバイバルモードはパニックボタンではない。通常運用が破綻したときに、意図的に最小限のやり方でプラットフォームを動かすことだ。トラフィックの提供を続け、証拠を残し、推測に頼らず最後に正常だった状態へ戻る。
その重みのほとんどを支えるのは3つの機能だ。プラットフォームの保持ログは、ライブテールが消えた後に何が起きたかを教えてくれる。保持されたプラットフォームのデプロイメントは、具体的に戻せる先を提供する。機能するサインイン経路とゲートウェイがあれば、修正作業中に実際にコントロールへ到達できる。
| 柱 | 何を守るか | どこから来るか |
|---|---|---|
| 保持されたランタイムログ | インシデント後の証拠と根本原因 | ライブテールではなく、プラットフォームレベルのログ保持 |
| 保持されたデプロイメント | 迅速で予測可能なロールバック | プラットフォームのデプロイメント履歴 |
| アクセスとルーティング | そもそも行動できる能力 | 有効化されたログイン方法とインストールのゲートウェイ |
| Sandboxのキャパシティ | 復旧中の分離された実行 | プラットフォームアカウントのWorkers Paid |
| メール配信 | 通知とアカウントフロー | 自分で設定する共有メールドメインとゾーン |
個人アプリをデプロイする単独の開発者には、こうしたものは不要だ。Cloudflareへ直接デプロイする方がシンプルで安価である。複数の人が1つの共有ターゲットへデプロイし、何が変わったかの履歴を失う余裕が誰にもなくなった瞬間から、Void Platformのサバイバルモードは意味を持つ。
サバイバルモードではないもの
これは有効化するスイッチではない。「survival」と書かれたチェックボックスは存在しない。管理者がインストール時に下し、その後リハーサルする保持・アクセス・ルーティングの判断の積み重ねである。
監視の代替でもない。開かないログは単なるストレージにすぎない。価値が現れるのは、誰がログを読み、何がロールバックの引き金になるかをあらかじめ決めている場合だけだ。
サバイバルベースライン:コアインストールに実際に含まれるもの
標準インストールは意図的に最小限である。マネージドSandboxとメールゲートウェイを同梱するが、メールは管理者が共有メールドメインとゾーンを設定して初めて機能する。それ以外はすべてオプションであり、意図的に追加する必要がある。
つまり、ユーザーダッシュボード、マネージドGitHubビルドとWebhook、ビルド用Container、カスタムプロジェクトドメインはコアの外にある。サバイバル計画がこれらの存在を前提にしているなら、必要になる前に確認しておくこと。
| 機能 | Cloudflareへ直接 | コアのセルフホスト型プラットフォーム |
|---|---|---|
| Workers AIとプロバイダーリクエスト | 自分のアカウントとゲートウェイ | インストールのゲートウェイとプロキシ |
| ランタイムログ | ライブテールのみ | プラットフォームの保持ログ |
| アプリケーションのロールバック | Workerのバージョン | 保持されたプラットフォームのデプロイメント |
| Sandbox | Workers PaidとDockerが必要 | プラットフォームアカウントのWorkers Paidが必要 |
| ユーザーダッシュボードとマネージドGitHubビルド | 不要 | 標準インストールには含まれない |
実務上の要点はこうだ。どちらのターゲットも同じアプリケーションAPIを公開するため、開発者はVoid CLIをプラットフォームURLに接続し、有効なログイン方法でサインインし、同じようにデプロイする。変わるのは、その後プラットフォームが何を覚えているかであり、サバイバルモードがよりどころにするのはまさにその記憶である。Voidセルフホスト型プラットフォームの公式ガイドには、完全なインストール手順と前提条件が記載されている。
サバイバルモードが破綻する場所:6つの失敗ポイントと修正
ほとんどのチームは、最悪の順序で自分たちの穴に気づく。ここでは最もよく現れる6つと、管理者がインシデント前に適用できる修正を示す。
| 失敗ポイント | どのように現れるか | 修正 |
|---|---|---|
| 保持ログの保存先がない | ライブテールが閉じると証拠が消える | プラットフォームのログ保持が有効で、どこを見るべきかを誰かが把握していることを確認する |
| Workerバージョンによるロールバックのみ | コードは戻せるが、その周辺のデプロイメントコンテキストは戻せない | 保持されたプラットフォームのデプロイメントを主要な経路として頼る |
| 単一のログイン方法 | IDプロバイダーの問題時に誰も認証できない | 複数のログイン方法を有効にし、文書化された管理者経路を維持する |
| メールゲートウェイが未設定 | 招待と通知が静かに失敗する | インストール中に共有メールドメインとゾーンを設定する。後回しにしない |
| Webhookイングレスが露出している | GitHubサービスがAccessで保護されたAPIの背後にあり、入る経路がない | AccessがAPIを保護する場合は、分離されたWebhookイングレス構成を使う |
| Sandboxのキャパシティを前提にしている | アカウントプランでは実行できず、復旧ジョブが止まる | 事前にプラットフォームアカウントのWorkers Paidを確認する |
パターンは一貫している。どれも珍しい障害ではない。穏やかな火曜日にはオプションに思えた設定判断である。Void Platformのサバイバルモードとは、それらを必須として扱う規律にほかならない。
実例
午後5時のデプロイが2つのサービスでエラー率を上げたとしよう。保持のないプラットフォームでは、対応者はライブテールを見て、できる範囲でスクリーンショットを撮り、再デプロイによる二分探索を始める。遅く、危険である。
保持が整っていれば、同じ対応者がデプロイ時間帯の保持ログを取得し、変更を確認し、直前の保持されたデプロイメントを復元する。同じインシデントでも、午後の過ごし方はまったく違う。違いは才能ではなく準備である。
Void Platformサバイバルモードのランブックを作る
ランブックは、サバイバルモードをアイデアから手順へ変える成果物である。ストレス下でも誰かが追える程度に短く、午前2時に判断を迫られない程度に具体的に保つ。
| ステップ | アクション | 成功の合図 |
|---|---|---|
| 1 | インシデントの時間帯と影響を受けたサービスを確認する | 全員が合意できるタイムスタンプ付きの範囲 |
| 2 | その時間帯のプラットフォーム保持ログを取得する | 具体的な変更またはエラーシグネチャ |
| 3 | 最後に正常だった保持デプロイメントを特定する | 推測ではなく、名前の付いたデプロイメント |
| 4 | ロールバックし、スモークテストで検証する | エラー率がベースラインに戻る |
| 5 | プラットフォームに依存しないチャネルで開発者へ通知する | プラットフォーム外で確認が取れる |
| 6 | ログが新しいうちに短いインシデント後メモを書く | 根本原因を含む日付入りの記録 |
手順に加えて、インシデント前のいくつかの確認は定期的に繰り返す価値がある。
- すべての開発者が少なくとも1つの有効な方法でサインインできることを確認する。
- メールドメインやゾーンの変更後も、メールゲートウェイが配信できることを確認する。
- インフラ移行後も、CLIが正しいプラットフォームURLを指していることを確認する。
- 実際に依存しているオプションサービスを見直し、その所有者を文書化する。
- 四半期ごとに1回ロールバックをリハーサルし、必要になる前に身体で覚えた手順を身につけておく。
リハーサルを行うチームは、検知から復旧までのギャップを劇的に縮める傾向がある。単純に、インシデントの最中に誰も初めてドキュメントを読むことがないからだ。それこそがVoid Platformのサバイバルモードの狙いである。判断を習慣に変えることだ。
サバイバルモードをチームプラットフォームへ拡張する
開発者の数が増えるにつれ、プラットフォームは便利ツールではなく共有インフラになる。その時点でチームプラットフォームにはWorkers for Platformsと、その周辺の文書化されたインフラが必要であり、利用可能な機能はインストールの構成方法に大きく依存する。
ここで管理者はスコープについて正直である必要がある。オプションのGitHubサービスを追加したソースビルドのプラットフォームは、コアインストールとは別物であり、AccessがAPIを保護する場合は常に分離されたWebhookイングレス構成が必要になる。2つの構成を頭の中で混同することが、障害を必要以上に長引かせる原因になる。
| 状況 | 通常運用 | サバイバルモード |
|---|---|---|
| デプロイ頻度 | レビュー済みのデプロイを1日複数回 | ベースラインが復旧するまで新規デプロイを凍結 |
| ログアクセス | 簡単な確認にはライブテール | インシデント時間帯には保持ログ |
| ロールバック | 便利機能 | 主要な復旧ツール |
| アクセス | 標準のSSOフロー | バックアップのログイン方法と文書化された管理者経路 |
| コミュニケーション | プラットフォーム内のチャット | プラットフォームに依存しないチャネル |
| ドキュメント | 前提とされている知識 | 書かれたランブックを文字どおりに従う |
チーム規模でのVoid Platformサバイバルモードは、ツールよりも明確さの問題である。誰がインシデントを宣言し、誰がロールバックし、誰がステークホルダーと話し、証拠がどこにあるのか。必要になる前にこれらの役割を割り当てれば、残りは自然についてくる。
FAQ
Void Platformのサバイバルモードは、有効化できる組み込み機能ですか? いいえ。コアプラットフォームが提供する機能、すなわち保持ログ、保持されたデプロイメント、マネージドSandbox、メールゲートウェイを組み合わせた運用姿勢です。インストール時の選択とリハーサルを通じて組み立てるものです。
標準インストールから欠けていて、サバイバルモードが必要とする可能性があるものは何ですか? ユーザーダッシュボード、マネージドGitHubビルドとWebhook、ビルド用Container、カスタムプロジェクトドメインはすべてコアの外です。また、共有メールドメインとゾーンが設定されるまでメールは有効になりません。
単一アプリにプラットフォームはそもそも必要ですか? 必ずしも必要ではありません。開発者が自分だけなら、Cloudflareへ直接デプロイする方がシンプルです。Void Platformのサバイバルモードは、複数の人が1つの共有アカウントへデプロイし、問題のあるリリースをまたいで履歴を残す必要が出てきたときに意味を持ちます。
これをチーム規模で運用するには何が必要ですか? チームプラットフォームにはWorkers for Platformsと文書化されたインフラが必要で、機能はインストールの構成に依存します。人員増で移行を迫られる前に計画してください。
ランブックはどのくらいの頻度でテストすべきですか? ほとんどのチームにとって四半期ごとが妥当なペースです。1回のリハーサルロールバック、1回のアクセス確認、依存するようになったオプションサービスの見直しを1回行います。