0Pricing
DevOps Bootcamp · 课时

回滚与灾难恢复

在 CI/CD 流水线中设计并实现有效的回滚流程和灾难恢复计划

回滚与灾难恢复 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

意外问题难免发生!

软件开发并不总是一帆风顺。有时,新部署会引入错误,或导致现有功能无法正常运行。这时就需要回滚和灾难恢复。

它们对于维护系统稳定性和用户信任至关重要。

了解回滚

回滚是指在部署出现问题后,将系统或应用程序恢复到之前稳定状态的过程。它就像是针对近期更改的“撤销”按钮。

通常会快速触发回滚,以尽量减少有问题的发布造成的影响,并恢复正常运行。

常见的回滚方式

根据部署策略的不同,您可以通过以下几种方式执行回滚:

  • 还原代码:部署之前已确认正常的应用程序代码版本。
  • 切换流量:将用户流量从有问题的新版本重新定向到旧版本。
  • 回滚数据库:还原数据库架构或数据更改,这通常是最复杂的部分。

使用操作自动执行回滚

GitHub 操作可以自动执行回滚流程。您可以创建工作流,在特定事件(例如手动触发)发生时,重新部署之前的稳定版本,或还原基础设施更改。

这样可以实现快速、一致且不易出错的回滚流程,减少紧张情况下的人为错误。

手动回滚工作流

下面介绍如何设置手动触发器,以部署指定的旧版本(例如标签或提交哈希)。此工作流会接收用户提供的 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 操作可以存储构建产物,这些产物对 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 操作可以有效地自动执行这两种流程,确保您的应用程序保持韧性,并让用户尽可能少受到服务中断的影响。

常见问题解答

「回滚与灾难恢复」课时是免费的吗?

是的 — 「回滚与灾难恢复」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「回滚与灾难恢复」这节课中我会学到什么?

在 CI/CD 流水线中设计并实现有效的回滚流程和灾难恢复计划 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「回滚与灾难恢复」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 蓝绿部署
  2. 使用 Actions 实现金丝雀发布
  3. 回滚与灾难恢复
  4. 功能开关与渐进式发布
← 返回 DevOps Bootcamp