ロールバック

Zeabur はすべてのデプロイの記録を保持しているため、新しいデプロイに問題が発生した場合、以前の成功したバージョンにいつでもロールバックできます。

ロールバックの仕組み

サービスをデプロイするたびに、Zeabur はそのデプロイのスナップショット(ビルドイメージ)を作成します。これらのスナップショットは保持されるため、いつでも正常な状態に戻すことができます。

ロールバックをトリガーすると:

  1. Zeabur は、選択した以前のバージョンのスナップショットを使用して新しいデプロイを作成します。
  2. 新しいデプロイは標準のヘルスチェックプロセスを経ます。
  3. ヘルスチェックが成功すると、トラフィックはロールバックされたバージョンにルーティングされます。
  4. 失敗したデプロイは参照用にデプロイ履歴に残ります。

ロールバックは通常のデプロイフローに従うため、ゼロダウンタイムの恩恵を受けます。古い(問題のある)デプロイは、ロールバックされたバージョンが正常であることが確認されるまでトラフィックを処理し続けます。

ダッシュボードからのロールバック

サービスをロールバックするには:

  1. Zeabur ダッシュボードでサービスを開きます。
  2. Deployments タブに移動します。
  3. デプロイ履歴で戻したいデプロイを見つけます。
  4. そのデプロイの Rollback をクリックします。
  5. Zeabur は選択したスナップショットに基づいて新しいデプロイを作成します。
💡

ロールバックは履歴に新しいデプロイエントリを作成します。以前のデプロイを消去または変更することはありません。

サービスタイプ別のロールバック方法

Git デプロイサービス

Git リポジトリからデプロイされたサービスには、2つのオプションがあります:

  • ダッシュボードからのロールバック — 上記の方法で以前のビルドスナップショットに戻します。
  • Git リバート — リポジトリにリバートコミットをプッシュします。Zeabur は新しいコミットを検出し、新しいビルドをトリガーして、通常の CI/CD フローを通じてコードをロールバックします。

Docker イメージサービス

Docker イメージからデプロイされたサービスの場合、サービス設定で以前のイメージタグを指定することでロールバックできます。イメージタグを目的のバージョンに更新すると、Zeabur はそのイメージを使用して再デプロイします。

プリビルトサービス(テンプレート)

Zeabur テンプレートからデプロイされたサービスのロールバックは、同じダッシュボードワークフローに従います。履歴から目的のデプロイを選択し、Rollback をクリックします。

ロールバックで復元されないもの

ロールバックはアプリケーションコードとビルド成果物を以前の状態に復元します。以下には影響しません:

  • 環境変数 — 元のデプロイ以降に変更された環境変数はそのまま残ります。
  • ボリューム — 永続ボリュームに保存されたデータは元に戻りません。
  • データベースの内容 — デプロイにデータベースマイグレーションが含まれていた場合、アプリケーションのロールバックではそれらのマイグレーションは元に戻りません。スキーマの変更は手動で対処する必要がある場合があります。
⚠️

デプロイにデータベースマイグレーションやその他のステートフルな変更が含まれていた場合、ロールバックを慎重に計画してください。必要に応じて、アプリケーションのロールバックと並行してデータベースバックアップの復元を検討してください。

ベストプラクティス

  • 本番環境にデプロイする前にテストしてください。 ステージングプロジェクトを使用して、メインデプロイに影響する前に問題を検出しましょう。
  • 小さな増分デプロイを使用してください。 小さな変更は診断やロールバックが容易です。
  • デプロイ後にモニタリングしてください。 各デプロイ後にメトリクスログを監視して、問題を早期に検出しましょう。