自动执行和管理更改

Last reviewed 2024-10-31 UTC

Google Cloud 架构框架的卓越运营支柱中的这一原则提供了一些建议,可帮助您自动执行和管理云工作负载的更改。这涉及实现基础架构即代码 (IaC)、建立标准操作程序、实现结构化变更管理流程,以及使用自动化和编排。

原则概览

变更管理和自动化在确保云环境中顺利且有序地进行转换方面发挥着至关重要的作用。为了有效管理变更,您需要采用可最大限度减少中断情况并确保变更与现有系统无缝集成的策略和最佳实践。

有效的变更管理和自动化包括以下基本要素:

  • 变更治理:制定清晰的变更管理政策和流程,包括审批流程和沟通计划。
  • 风险评估:识别与变更相关的潜在风险,并通过风险管理技术加以缓解。
  • 测试和验证:全面测试更改,确保其符合功能和性能要求,并减少可能出现的回归问题。
  • 受控部署:以受控方式实现更改,确保用户能够无缝过渡到新环境,并在需要时提供无缝回滚机制。

这些基础要素有助于最大限度地减少变更的影响,并确保变更对业务运营有积极影响。这些元素由运营准备工作的重点领域中的流程、工具和治理来表示。

建议

如需自动执行和管理更改,请考虑以下部分中的建议。本文档中的每项建议都与一个或多个运营准备工作的重点领域相关。

采用 IaC

基础架构即代码 (IaC) 是一种革命性的云基础架构管理方法。您可以使用 Terraform 等工具以声明方式定义和管理云基础架构。IaC 可帮助您实现一致性、可重复性和简化更改管理。它还支持更快、更可靠的部署。此建议与以下运营准备工作的重点领域相关:流程和工具。

以下是采用 IaC 方法进行云部署的主要优势:

  • 直观易懂的资源配置:借助 IaC 方法,您可以使用 JSON 或 YAML 等直观易懂的格式声明云基础架构资源。基础架构管理员和运维人员可以轻松了解和修改基础架构,并与他人协作。
  • 一致性和可重复性:IaC 可实现基础架构部署的一致性和可重复性。无论是谁执行部署,您都可以确保基础架构始终以相同的方式进行预配和配置。这种方法有助于减少错误,并确保您的基础架构始终处于已知状态。
  • 提高问责能力并简化问题排查:IaC 方法有助于提高问责能力,并简化问题排查。通过将 IaC 代码存储在版本控制系统中,您可以跟踪更改,并确定更改的时间和更改者。如有必要,您可以轻松回滚到之前的版本。

实现版本控制

Git 等版本控制系统是 IaC 流程的关键组成部分。它提供强大的变更管理和风险缓解功能,因此被广泛采用,无论是通过内部开发还是 SaaS 解决方案。此建议与以下运营准备工作的重点领域相关:治理和工具。

通过跟踪 IaC 代码和配置的更改,版本控制可让您了解代码的演变,从而更轻松地了解更改的影响并发现潜在问题。这种增强型可见性有助于负责同一 IaC 项目的团队成员之间开展协作。

大多数版本控制系统都允许您在需要时轻松回滚更改。此功能有助于降低意外后果或错误的风险。通过在 IaC 工作流中使用 Git 等工具,您可以显著改进变更管理流程、促进协作并降低风险,从而实现更高效、更可靠的 IaC 实施。

构建 CI/CD 流水线

持续集成和持续交付 (CI/CD) 流水线可简化云应用的开发和部署流程。CI/CD 流水线可自动执行构建、测试和部署阶段,从而提高发布速度和频率,并改进质量控制。此建议与“运营准备情况”重点领域中的工具相关。

CI/CD 流水线可确保代码更改持续集成到中央代码库(通常是 Git 等版本控制系统)。持续集成有助于及早发现和解决问题,并降低出现 bug 或兼容性问题的可能性。

如需为云应用创建和管理 CI/CD 流水线,您可以使用 Cloud Build Cloud Deploy 等工具。

  • Cloud Build 是一项全代管式构建服务,可让开发者以声明方式定义和执行构建步骤。它可与热门的源代码管理平台无缝集成,并且可以通过代码推送和拉取请求等事件触发。
  • Cloud Deploy 是一项无服务器部署服务,可自动将应用部署到各种环境(例如测试环境、预演环境和生产环境)。它提供蓝绿部署、流量拆分和回滚等功能,可让您更轻松地管理和监控应用部署。

将 CI/CD 流水线与版本控制系统和测试框架集成有助于确保云应用的质量和可靠性。通过在 CI/CD 流程中运行自动化测试,开发团队可以在代码部署到生产环境之前快速发现并修复任何问题。此集成有助于提高云应用的整体稳定性和性能。

使用配置管理工具

Puppet、Chef、Ansible 和 VM Manager 等工具可帮助您自动配置和管理云资源。借助这些工具,您可以确保在所有云环境中实现资源一致性和合规性。此建议与“运营准备情况”工具重点领域相关。

自动配置和管理云资源可带来以下好处:

  • 显著降低手动错误的风险:涉及手动流程时,出错的可能性更高。配置管理工具通过自动化流程来降低此风险,以便在所有云资源中一致且准确地应用配置。这种自动化操作可以提高云环境的可靠性和稳定性。
  • 提高运营效率:通过自动执行重复性任务,贵组织可以让 IT 人员腾出时间来专注于更具战略意义的计划。这种自动化操作可以提高工作效率、节省成本,并更好地响应不断变化的业务需求。
  • 简化复杂云基础架构的管理:随着云环境的规模和复杂性不断增加,管理资源可能变得越来越困难。配置管理工具提供了一个集中式平台来管理云资源。借助这些工具,您可以更轻松地跟踪配置、发现问题和实施更改。使用这些工具可以提高云环境的可见性、控制力和安全性。

自动执行测试

将自动化测试集成到 CI/CD 流水线有助于确保云应用的质量和可靠性。通过在部署之前验证更改,您可以显著降低出错和回归的风险,从而获得更稳定、更强大的软件系统。此建议与以下运营准备重点领域相关:流程和工具。

将自动化测试纳入 CI/CD 流水线的主要优势如下:

  • 尽早检测 bug 和缺陷:自动化测试有助于在 bug 和缺陷在生产环境中造成重大问题之前,在开发过程中尽早检测到它们。此功能可避免在开发流程的后续阶段需要进行昂贵的重做和 bug 修复,从而节省时间和资源。
  • 高质量且符合标准的代码:自动化测试有助于确保代码符合特定标准和最佳实践,从而提高代码的整体质量。此功能可让应用更易于维护和更可靠,并且不易出错。

您可以在 CI/CD 流水线中使用各种类型的测试技术。每种测试类型都有特定用途。

  • 单元测试侧重于测试各个代码单元(例如函数或方法),以确保它们按预期运行。
  • 集成测试用于测试应用的不同组件或模块之间的交互,以验证它们能否协同正常运行。
  • 端到端测试通常与单元测试和集成测试搭配使用。端到端测试会模拟真实场景,以整体测试应用,并有助于确保应用符合最终用户的要求。

若要将自动化测试有效集成到 CI/CD 流水线中,您必须选择合适的测试工具和框架。有许多不同的选项,每种选项都有自己的优缺点。您还必须制定明确的测试策略,其中概述了要执行的测试类型、测试频率以及测试通过或失败的标准。遵循以下建议可确保自动化测试流程高效运行。此流程可提供有关云应用质量和可靠性的有价值的数据洞见。