云架构中心-OPS04-03 基础设施即代码

时间:2024-07-19 11:31:23

OPS04-03 基础设施即代码

基础设施即代码(IaC)是指使用代码而不是手动流程来管控基础设施的能力。 应用程序环境都需要许多基础设施组件,例如操作系统、数据库连接和存储。 开发人员必须定期设置、更新和维护基础设施,以开发、测试和部署应用程序。 手动管理基础设施既耗时又容易出错,尤其是在大规模管理应用程序时。

  • 风险等级

  • 关键策略

    使用声明式工具:与命令式工具相比,声明式工具是部署和管理 IaC 的更好的整体选择。声明性工具对其定义文件使用更简单的语法,仅定义部署完成后所需的环境状态。命令式工具需定义达到所需最终状态所需的步骤,因此文件可能比声明性文件复杂得多。声明性定义文件还有助于减少维护命令式代码(例如部署脚本)的技术债务,这些技术债务会随着时间的推移而增加。

    使用云平台工具和其他经过行业验证、集成到平台中的工具:云平台提供的工具可以使 IaC 的部署变得简单直接。利用这些工具而不是开发自己的解决方案。云平台包含满足您大多数需求的内置功能,并且由平台提供商不断更新,随着平台的发展而变得更加有用。

    标准化模块化方案:模块可以使基础设施部署可重复,标准化有助于确保模块的构建能够满足特定目标。建议使用模块来封装复杂的配置或资源组合。此外,在开发新模块时非敏感场景可以适当使用开源模块。

    标准化人工步骤:如果存在与部署和维护相关的人工步骤,要尽可能减少这类活动。在运维指南和标准操作程序中,清楚地记录人工步骤,并实现标准化,以确保安全、一致地执行任务。

    回收闲置资源:由于配置管理工具及其限制等原因,有时 IaC 工具无法自动删除资源。例如,假设需要从虚拟机迁移到 PaaS 服务,而 IaC 工具没有删除闲置资源的逻辑。如果忘记手动删除这些资源,这些资源可能会成为孤立资源。为了处理这些场景,需要标准化扫描闲置资源并明确删除策略。

  • 相关云服务和工具

    资源编排 服务 RFS

support.huaweicloud.com/usermanual-architecture/architecture_06_0026.html