ロールバックとディザスタリカバリ
CI/CD パイプライン内で効果的なロールバック手順とディザスタリカバリ計画を設計・実装します。
「ロールバックとディザスタリカバリ」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
予期しない問題は起こります
ソフトウェア開発が常に順調に進むとは限りません。新しいデプロイによってバグが入り込んだり、既存の機能が壊れたりすることがあります。そこで必要になるのが、ロールバックとディザスタリカバリです。
これらは、システムの安定性とユーザーの信頼を維持するうえで重要です。
ロールバックを理解する
ロールバックとは、問題のあるデプロイ後に、システムやアプリケーションを以前の安定した状態に戻すプロセスです。最近行った変更を取り消す「元に戻す」ボタンのようなものです。
ロールバックは通常、問題のあるリリースの影響を最小限に抑え、通常の運用を復旧するために迅速に実行されます。
一般的なロールバック方法
ロールバックの方法は、デプロイ戦略に応じていくつかあります。
- コードのリバート: 以前の、正常に動作することが確認されたアプリケーションコードのバージョンをデプロイします。
- トラフィックの切り替え: ユーザーのトラフィックを問題のある新しいバージョンから、以前のバージョンへ戻します。
- データベースのロールバック: データベースのスキーマやデータの変更を元に戻します。多くの場合、最も複雑な部分です。
Actionsによるロールバックの自動化
GitHub Actionsでは、ロールバック手順を自動化できます。特定のイベント(手動ディスパッチなど)をきっかけに、以前の安定したリリースを再デプロイしたり、インフラストラクチャの変更を元に戻したりするワークフローを作成できます。
これにより、高速で一貫性があり、エラーの起こりにくいロールバックプロセスを実現できます。緊迫した状況での人的ミスも減らせます。
手動ロールバック用のワークフロー
特定の以前のバージョン(タグやコミットハッシュなど)をデプロイするための手動トリガーは、次のように設定できます。このワークフローは、ユーザーからversionの入力を受け取ります。
name: Manual Rollback Deployment
on:
workflow_dispatch:
inputs:
version:
description: 'Tag or commit hash to deploy'
required: true
default: 'main'
jobs:
rollback:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.version }}
- name: Deploy previous version
run: |
echo "Deploying version: ${{ github.event.inputs.version }}"
# Add your specific deployment commands here
# e.g., helm upgrade, kubectl apply, etc.
ロールバックの先へ: ディザスタリカバリ
ディザスタリカバリ(DR)は、壊滅的な事象の後にシステムとデータを復旧するための、より広範な戦略です。データセンターの停止、自然災害、大規模なサイバー攻撃などが該当します。
不適切なデプロイを修正するロールバックとは異なり、DRはシステム全体の障害やプライマリ環境の喪失後に、サービス全体を復旧することを目的とします。
CI/CDにおけるDR計画
CI/CDパイプラインでDRを計画する際は、次の点を検討してください。
- バックアップ: データ、設定、アーティファクトを定期的にバックアップします。
- 冗長性: 複数のリージョンまたはアベイラビリティゾーンにデプロイします。
- 復旧ワークフロー: バックアップからサービスを復元したり、新しいインフラストラクチャにデプロイしたりする専用のワークフローを用意します。
- テスト: 必要なときに機能することを確認するため、DR計画を定期的にテストします。
復旧のためのビルドアーティファクトの保存
GitHub Actionsでは、DRに不可欠なビルドアーティファクトを保存できます。これには、コンパイル済みバイナリ、Dockerイメージ、デプロイマニフェストなどが含まれます。正常なビルドの完了時に、これらをアップロードできます。
保存したアーティファクトは、DRワークフローの一部としてダウンロードし、新しい環境にデプロイできます。
name: Build and Archive Artifacts
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build application
run: |
echo "Building app..."
mkdir -p build_output
echo "App version 1.0.0" > build_output/app.txt
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: application-build
path: build_output/
ロールバックとDRの確認
新機能のデプロイによって重大なバグが発生し、アプリケーションにアクセスできなくなりました。この特定の問題を迅速に修正してサービスを復旧するために、主に使用する戦略はどれですか。
ロールバックとDR: 要点
このレッスンでは、ロールバックとディザスタリカバリという重要な概念について学びました。ロールバックは問題のあるデプロイを迅速に元に戻す一方、ディザスタリカバリは大規模な障害後にシステムを復旧するためのものです。
GitHub Actionsは両方のプロセスの自動化に役立ち、アプリケーションのレジリエンスを高め、ユーザーへの影響を最小限に抑えられます。
よくある質問
「ロールバックとディザスタリカバリ」レッスンは無料ですか?
はい。「ロールバックとディザスタリカバリ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「ロールバックとディザスタリカバリ」で何を学びますか?
CI/CD パイプライン内で効果的なロールバック手順とディザスタリカバリ計画を設計・実装します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ロールバックとディザスタリカバリ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Blue/Green デプロイ
- Actions によるカナリアリリース
- ロールバックとディザスタリカバリ
- フィーチャーフラグと段階的ロールアウト