介绍
随着各大企业在 2024 年加速采用云计算,基础设施即代码 (IaC)、策略即代码 (PaC) 和优化即代码 (OaC) 已成为成功实现云迁移、IT 现代化和业务转型的关键功能。
让我在云计划的背景下全面了解这些代码功能的当前状态。我们将研究现代云基础设施趋势、IaC、PaC 和 OaC 在云采用中扮演的角色、当前的工具和模式、集成方法、衡量结果、要避免的陷阱以及未来的道路。
加速云采用
云计算已成为大多数企业构建和部署应用程序的事实上的方法。超过 85% 的组织将采用多云或混合云策略。组织还发现,迁移到云可以通过技术转型实现更深层次的业务转型。
随着云应用的加速,基础设施的复杂性和规模正在达到新的高度。组织正在管理数据中心、公共云、边缘环境和物联网中不断膨胀的资产库存。这种异构性需要新的基础设施管理策略,同时增加了与成本、合规性、可靠性和性能相关的风险。
企业面临的云挑战
尽管势头强劲,但迁移到云对许多企业来说仍然具有挑战性。常见的陷阱包括缺乏技能、规划不足、不了解云经济、安全漏洞、供应商锁定以及无法重构遗留应用程序。
组织在初始迁移后也难以快速迭代,因为随着时间的推移,基础设施会逐渐走向优化不佳或不合规的状态。随着云在企业中的使用范围不断扩大,这些挑战变得越来越严重。
解决这些问题需要制定云采用策略,而不仅仅是一次性迁移工作。领先的团队采用持续的实践来优化基础设施、管理环境和实现交付现代化,以持续满足云目标。
IaC、PaC 和 OaC 在云成功中的作用
基础设施自动化很早就成为大规模采用云的必要条件。随后,嵌入策略护栏和推动持续优化的做法也变得同样重要。
基础设施即代码 (IaC) 允许团队以模板化、可共享的方式通过代码定义整个应用程序环境。IaC 对于高效地按需部署和复制资源至关重要。
策略即代码 (PaC) 将基础设施配置和变更的规则嵌入到代码中。这可以大规模、高速地管理云的使用,而缓慢、容易出错的手动策略方法无法跟上云的步伐。
代码优化 (OaC) 专注于将数据驱动的运营改进嵌入到基础设施自动化流程中。指标、分析和部署之间构建良好的反馈循环可创建“自我优化”的云环境。
这些代码功能使我们能够快速扩展云使用量,同时保持严格的治理和卓越的运营。那些以紧密集成的方式利用 IaC、PaC 和 OaC 的人将获得最高的云成功。
云环境中 IaC 的状态
几年前,IaC 的采用已达到主流地位,Terraform、CloudFormation 和 Ansible 等工具迅速成为行业标准。基础设施管道和 GitOps 等成熟模式将 IaC 代码直接集成到应用程序交付流程中。领先的云咨询公司现在将 IaC 功能作为其产品的核心,意识到这些功能是企业级云转型成功的关键。
多云和管理层影响
随着云应用的加速,一个关键趋势是企业越来越多地使用多云架构和管理层。企业经常使用跨 AWS、Azure 和 GCP 的混合环境来避免被锁定在单一供应商。新的工具已经出现,以促进跨目标云的无缝 IaC。
流行的多云 IaC 选项包括 Terraform、Pulumi、Ansible 和其他开源工具。多云管理的主要参与者包括 HashiCorp、RedHat、VMware、Datadog 和 AHEAD。原生提供商也提供了跨云的一些可移植性。
企业通常难以通过 Terraform、CloudFormation 等直接定制云,而是通过 IaaS 实现 VMware Cloud Foundation 或 Datadog Cloud Security Platform 等管理层。这些构建了更高级别的抽象,同时实现了跨环境的统一策略和自动化。
基础设施测试困难
虽然核心配置功能已经相当成熟,但用于验证和测试的 IaC 工具仍然不一致。根据安全性、合规性和架构标准验证实施仍然通常很慢且需要手动操作。
这会导致配置在大规模复杂环境中使用时,随着时间的推移偏离所需规格的风险。致力于完善测试工具并将自动验证检查直接嵌入基础设施管道的专门工作正在不断扩大。
集成 IaC 测试
尽管 DevSecOps 集成取得了一些进展,但在许多 IaC 项目中,测试代码质量和基础设施结果仍然脱节。领先的团队现在将测试自动化和断言推向上游代码存储库,并在部署前后针对云资源进行下游测试。
HashiCorp Sentinel、InSpec、Terraform Compliance 和 Amazon Inspector 代表了嵌入式 IaC 和云测试方面的进步。Checkov 提供针对安全配置错误的基础设施扫描。新兴模式包括“基础设施单元测试”和适用于 IaC 源代码的 CI/CD 样式管道。
基础设施漂移检测
相关的挑战是,随着变化的积累,基础设施会随着时间的推移偏离所需的配置基线。像 AWS Config Rules 这样的原生工具可以检测 AWS 资源的偏差,通常用于 PaC 实施。对于多云/混合环境,Dome9 Continuous Compliance 等工具会根据 CIS Benchmarks 等策略框架评估配置。NetApp 和其他公司提供跨资产的代理来检测细粒度的状态变化。
协调声明式 DSL 与命令式 DSL
IaC 语言使用声明式(Terraform、CloudFormation)或命令式 DSL(Ansible、Docker、Puppet)。每种方法在抽象能力和排序需求方面各有优缺点。集成挑战围绕状态管理和排序组合使用而存在。
HashiCorp Terraform Cloud 和 RedHat Ansible Automation Platform 代表了领先的商业解决方案,可在 IaC 工具中提供集成的工作流程。开源选项(如 Terraform 的 null 配置程序或 Ansible 调用 Terraform 模块)可在技术之间提供更轻量的桥梁。
云安全和合规性的 PaC 现状
将策略直接嵌入到基础设施自动化流程中已成为以企业规模和速度准确管理云使用情况的唯一方法。单个云提供商的策略累积问题也需要跨环境分析的工具来消除差距或冲突。
主要的云原生 PaC 解决方案
AWS、Azure 和 GCP 现在具有强大的本机 PaC 功能,可用于管理安全性、访问、成本和合规性。AWS 提供用于评估的 Config 和用于实施的 Guardrails。Azure 通过 Azure Sentinel 提供带有合规性仪表板的 Blueprint 和 Policy。GCP 包括 Org Policy 管理和用于最小特权实施的 Access Context Manager。
多云 PaC 可降低风险
第三方策略工具覆盖在原生选项之上,以集中控制和查看各种云变体。例如,Rebar Enforce 可应用自动化策略护栏,管理任何环境的成本、安全性和运营约束。Fugue 和 Blue Hexagon 等其他解决方案专注于降低跨多个平台的云安全风险。Lacework 等威胁检测工具可在复杂的混合环境中提供对漏洞和错误配置的统一查看。
使用 PaC 实现合规自动化
内置审计数据收集、持续合规性监控和自动证据收集功能也已显著成熟。例如,CloudTruth 和 LogicHub 等工具可自动验证 SOC2、ISO 27001、PCI DSS 和 HIPAA 等标准的控制。集中式合规性解决方案可减少使用分散的本机工具时遇到的审计疲劳。
将 PaC 集成到策略生命周期中
尽管工具不断创新,但许多组织仍然面临政策无序扩张、申请豁免流程效率低下以及问题补救缓慢等问题。要应对这些挑战,需要 PaC 工具与上游生命周期阶段(包括通常通过 ITSM 平台协调的申请、批准和补救工作流)之间实现更大程度的集成。
例如,ServiceNow 的 Safeguard 为整个策略生命周期覆盖了流程自动化。其他 ITSM 供应商提供成熟的云治理模块,包括 BMC Helix 和 Cherwell。ShiftLeft 提供 GitHub 集成,用于将安全策略门直接嵌入开发人员工作流程,以便在交付管道中尽早调整 PaC 执行点。
云环境中代码优化的现状
掌握成本效率、性能、可扩展性、可靠性和其他结果指标需要根据应用模式和业务变量对云基础设施进行微调。事实证明,临时修改或依赖狭隘的 AI/ML 优化是不够的,尤其是在环境规模扩大和变得更加复杂的情况下。
优化即代码的出现
这一现实推动了 OaC 框架的出现,这些框架旨在以可衡量、可测试的方式将运营改进嵌入到基础设施自动化流程中。主要示例包括 AWS Well Architected Framework,它指导团队根据最佳实践迭代改进云架构。
Cloudwaste 和 CloudZero 提供专门的优化器,可根据利用率和支出数据进行实时调整。Gremlin 和 Chaos Native 通过模拟灾难进行基础设施测试,构建弹性架构。在 Datadog、New Relic 和 Dynatrace 等工具中,云平台、应用程序、分析和自动化工作流程之间的核心重要运营反馈循环正在迅速成熟。
采用 OaC 实现成本和可持续性目标
云计算成本的飙升使得 OaC 对于避免浪费、合理使用和实现可持续发展至关重要。IDC 预测,到 2022 年,企业将浪费 33% 的云计算支出。调整预留计划、使用模式、资源分配和技术债务都是控制费用的必要条件。云优化必须在降低成本与保持性能、安全性和可靠性目标之间取得平衡。
将 OaC 集成到政策护栏中
领先的团队现在使用 PaC 护栏包裹 OaC 工具,以便在仍然管理环境的同时安全地优化云资源使用。例如,策略可以规定自动扩展模式,而优化器则根据需求信号和利用率目标不断调整这些阈值。成本策略可以设定一般界限,同时为优化器提供适当大小使用量的自由度。
这有助于避免一些常见的陷阱,即狭隘的优化过度导致性能、架构或安全问题。优化器识别改进,而策略即代码在定义的约束内实施更改。仪表、分析和自动化之间构建良好的反馈循环可确保安全的持续优化进程。
集成 IaC、PaC 和 OaC 的架构方法
精明的云架构师现在认识到将 IaC、PaC 和 OaC 工作结合到集成工作流中而不是采用分散的方法至关重要。紧密连接这些实践可在整个云生命周期中释放复合效益。
基础设施状态管理
管理所需状态配置和历史状态的强大系统是 IaC/PaC 集成的基础。所需状态来自 IaC 模板,而历史状态则反映用于评估偏差的部署现实。状态存储库提供真相来源,支持下游自动化。
基础设施管道模式:基础设施交付管道大量借鉴了软件 CI/CD 学科。存储库中的源代码经过构建、测试和部署阶段,这些阶段代表:规划 > 创建 > 验证阶段。金丝雀部署和推广流程为部署后的基础设施变更提供治理。
GitOps 用于声明式基础设施: GitOps 扩展了管道,实现了 Git 中所需的基础设施状态与平台上部署的实际状态之间的持续协调循环。自动化控制器(例如 Flux)不断检测和协调偏差,使环境回到版本化基线。好处包括改进恢复、减少错误/未经授权的更改以及环境状态的仪表板。
基础设施借贷库:经过批准的架构模板和共享服务精心构建的目录支持在大型组织中扩展 IaC,同时防止基础设施蔓延或重复。它们提供符合控制的模块化、经过实战检验的蓝图,可作为开发团队实施新方案的构建块。AWS Service Catalog、Terraform Modules 和 Azure Blueprints 就是这种方法的典型代表。
自我优化资源池:基础设施资源共享池(Kubernetes 集群、数据存储、无服务器等)可以自动配置和动态扩展,以供启用的服务使用。这些下一代“云原生”资源结构嵌入了数据驱动的分配,针对运行时的利用率和成本效率进行了优化。团队只需根据池 API 进行集成,而无需调整基础设施的大小。
策略和控制集成点:基础设施策略控制适用于各个级别的流程。基础技术控制直接嵌入跨环境的基础基础设施(IAM、VPC 设计等)。访问和更改控制层位于管理工具之上(Terraform Cloud 上的 RBAC、Azure Blueprints)。更高级别的护栏可以通过控制台 UI 或 API 上的可扩展平面进行连接。
OaC 嵌入式指标驱动调整:优化工具嵌入到核心自动化流程中时效果最佳,而不是保持孤立或偶发调整。策略控制为优化活动授予允许的边界。遥测数据管道进入分析和决策引擎,以确定在定义的护栏内启用的调整操作以完成反馈循环。
衡量成果
随着云采用达到主流规模,团队面临的压力也越来越大,他们需要在成本效率、风险降低、DevOps 加速和基础设施稳定性结果方面展示切实的投资回报。如果执行得当,集成的 IaC/PaC/OaC 实践将为可衡量的转型奠定基础,关键的客观和主观结果指标如下:
风险管理与合规
- 减少威胁面
- 暴露于错误配置
- 审计绩效
- 遵守标准
- 例外率
成本管理
- 优化云成本
- 自动化带来的节省
- 预留容量利用率
- 跨环境的可见性
卓越运营
- 事件响应
- 失败率
- 利用率和争用
- 备份和恢复性能
生产率
- 部署速度
- 开发人员体验
- 错误率
- 员工效率
每个结果领域都包含定量和定性 KPI,涵盖从业务标准到技术指标的一系列内容。整体仪表板使权衡和进展清晰可见,从而实现持续改进。
需要避免的陷阱
云的成功在很大程度上取决于选择正确的迁移策略,但许多人因技术规划不善或缺乏组织对迁移后卓越运营的承诺而失败。以下是破坏云工作的最常见错误:
- 追求无需更改应用程序的“提升和转变”计划
- 未能解决技术债务和遗留限制
- 缺乏优化持续成本的决心
- 自动化技能和人员不足
- 自动化孤岛仍处于断开状态
- 手动、被动的云管理方法
- 对实际云利用率的了解有限
- 合规实践存在问题,审计失败
- 不强制要求云原生架构原则
IaC/PaC/OaC 和云计算的下一步是什么
展望未来,云基础设施自动化将成为成熟组织的规则而非例外。随着规模、速度和连接性(物联网、边缘等)的复杂性不断增加,对云自动化和智能进行基本运营的依赖将很快成为开展业务的成本。
国家爆炸式增长和政策债务
政策覆盖范围、连通性和复杂性将使传统治理方法达到临界点,需要从根本上采用新方法。分散的工具和流程将过渡到统一的系统,以在整个企业堆栈中扩展云策略自动化。
安全性、合规性和成本测试的左移、
安全性和合规性实践将继续在部署之前尽早应用于开发流程。代码存储库、管道和云中的嵌入式保护措施将成为标准。资源优化将深入到代码,并根据使用情况信号调整从功能性能到基础设施开销的一切。
NoOps 和 GitOps 成为默认模式
NoOps 模式将消除剩余的手动更改流程,因为组织将云连接到直接更新基础设施的 MLOps 管道。GitOps 将提供统一的记录系统并继续自动化进程。这些将使速度大大加快,同时具有更高的稳定性和监督性。
决策智能和高级分析:云和基础设施分析将越来越多地关注决策支持、预测指导和规范行动,而不仅仅是监控和阈值警报。集成将加强监控、分析和自动化引擎之间的双向循环,从而实现更高级别的自主环境。
云技能的转变:随着云原生模式的接管,云技术专业知识将成为必需技能。关键技能将转向业务转型、客户关注、决策能力、分析能力、自动化和创造性解决问题的能力,而这些都是 AI/ML 无法比拟的。
业务驱动因素加速技术变革
虽然技术变革传统上侧重于 IT 目标,但云的发展将更直接地围绕核心业务目标和成果。业务线领导者必须倡导以客户和数据战略为基础的现代化,并将 IT 与更大的组织使命完全结合起来。
随着云基础设施自动化面临规模不断扩大的复杂性,未来的道路必将发生大规模技术变革。团队如何有效地利用和发展 IaC/PaC/OaC 实践,很可能决定哪些组织能在未来动荡的环境中茁壮成长。
结论
基础设施即代码、策略即代码和优化即代码是现代云采用策略的支柱,可实现云环境的成功迁移、持续管理和持续改进。将这些功能与交付管道、策略生命周期和强大的测量系统相结合,可实现转型业务成果。
2024 年的云工程仍然充满希望,但规模、风险和复杂性也在不断增加。随着世界经济迅速进入数字商业模式,云计算既是前景,也是危险。掌握云自动化、治理和创新相互交织的实践的组织是在未来动荡中蓬勃发展的关键。