DevOps Bootcamp · 课时

通过审批门部署到生产环境

学习如何使用 GitHub Actions 环境保护规则、手动审批和部署门,将构建安全地从预发布环境提升到生产环境

第 4 / 4 课13 个步骤

通过审批门部署到生产环境 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

为什么生产环境需要关卡

持续部署会自动发布代码,但在没有任何检查点的情况下直接推送到生产环境存在风险。糟糕的版本可能会立即影响每位用户。

审批关卡是一次有意设置的暂停,由人员或自动检查确认部署是否应继续。

  • 降低错误的影响范围
  • 创建记录谁批准了什么的审计轨迹
  • 让您区分 staging 与 production 的信心级别

GitHub 环境

GitHub Actions 有一项名为环境的功能。环境(例如 production)可以拥有自己的机密信息、变量和保护规则。

您可以使用 environment 键从作业中引用环境。这是添加审批关卡的基础。

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - run: echo 'Deploying to production'

必需的审核者

在仓库设置的 设置 > 环境 > 生产环境 下,您可以启用必需的审核者。

当作业以该环境为目标时,工作流运行会暂停并等待列出的某位审核者点击 Approve。

  • 最多可以配置 6 名审核者
  • 默认情况下,任何一名审核者的批准都会解除作业阻塞
  • 根据设置,批准者不能是触发运行的人员

完整的审批工作流

这里会先运行 build 作业,然后 deploy 作业通过 needs 依赖于它,并以受保护的 production 环境为目标。

在必需的审核者批准之前,部署不会启动。

name: Deploy
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo 'build artifact'
  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: production
      url: https://myapp.example.com
    steps:
      - run: echo 'deploy to prod'

等待计时器

除了审核者之外,环境还支持等待计时器。它会强制部署延迟一段时间(最长 30 天)后才能继续。

较短的等待计时器可用作安全冷却期:它为团队提供了在运行到达生产环境前取消运行的时间窗口。

部署分支限制

环境可以限制允许进行部署的分支。对于 production,通常只允许 main(或发布标签)。

这样可以防止从功能分支意外部署到生产环境。

  • 受保护的分支——只有具有保护规则的分支
  • 选定的分支——明确的允许列表或标签模式

按环境限定的机密信息

每个环境都有自己的机密信息。production 环境可以保存 PROD_DB_URL,而 staging 环境保存 STAGING_DB_URL。

环境中定义的机密信息仅可供以该环境为目标的作业使用,从而增加了另一层隔离。

    steps:
      - name: Deploy
        env:
          DB_URL: ${{ secrets.PROD_DB_URL }}
        run: ./deploy.sh

跟踪部署状态

在环境上设置 url 会在 GitHub 用户界面中的部署旁添加可点击的链接,并通过 Deployments API 记录一个部署对象。

这样您就能看到清晰的历史记录:哪个提交被部署到生产环境、部署时间以及执行者。

    environment:
      name: production
      url: https://myapp.example.com

批准待处理的运行

当带关卡的作业正在等待时,您会在工作流运行页面看到黄色的Review deployments横幅。

  • 在操作选项卡中打开运行
  • 点击 Review deployments
  • 选择环境,然后点击 Approve and deploy 或 Reject

您还可以留下评论来说明决定。

组合多个关卡

最强的生产环境关卡会组合多项规则:

  • 必需的审核者(人工批准)
  • 等待计时器(冷却期)
  • 分支限制(仅限 main)
  • 环境机密信息(隔离)

将这些规则分层组合起来,可以建立从预发布环境到生产环境的稳健发布流程。

安全地绕过关卡

有时您需要处理紧急热修复。与其移除保护规则,不如考虑使用单独且范围严格限定的热修复工作流,并为其设置独立的日志记录和更严格的审核者要求。

绝不要为了方便而永久禁用关卡——那会违背安全机制的目的。

快速检查

检验您对生产环境审批关卡的理解。

回顾

您已经学会如何使用 GitHub 环境为生产部署添加审批关卡。

  • 使用 environment 键指定受保护的环境
  • 必需的审核者会添加人工批准
  • 等待计时器会添加冷却时间窗口
  • 分支限制和环境机密信息会增加隔离

这些关卡结合起来,可以让从预发布环境到生产环境的发布过程安全且可审计。

免费开始

用 AI 导师学习 DevOps Bootcamp — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
142
课程
568

常见问题解答

「通过审批门部署到生产环境」课时是免费的吗?

是的 — 「通过审批门部署到生产环境」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「通过审批门部署到生产环境」这节课中我会学到什么?

学习如何使用 GitHub Actions 环境保护规则、手动审批和部署门,将构建安全地从预发布环境提升到生产环境 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

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

「通过审批门部署到生产环境」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 持续部署简介
  2. 部署到预发布环境
  3. 环境变量与机密信息
  4. 通过审批门部署到生产环境
← 返回 DevOps Bootcamp