Day 2基础设施管理:Terraform Actions实践指南
在当今混合云和多云环境中,组织可用的新应用程序、工具和服务激增。但随着使用的提供商和服务数量增加,客户跨公有云和本地基础设施管理基础设施变得越来越困难。构建和维护这些基础设施的工作量将远超人力支持能力,从而放大组织风险和复杂性。
这种新形势促使需要更有效的基础设施生命周期管理,利用自动化构建(Day 0)、部署(Day 1)并持续管理(Day 2+)基础设施:
- Day 0 代表相关基础设施资源的初始配置。之所以称为"0",是因为在基础设施存在之前无法执行任何其他操作
- Day 1 指基础设施单元配置后发生的情况,侧重于特定资源集的配置方式
- Day 2+ 指基础设施配置和配置后的持续管理和优化,包括健康监控以确保基础设施保持所需状态,以及在不再需要时停用
部署不是终点
与全球数千家大型组织合作后,一个主题很明确:最大的基础设施风险来自部署之后。
虽然Day 0和Day 1对于构建稳固的基础设施基础至关重要,但大部分工作和精力出现在持续维护期间。我们看到的一些常见Day 2基础设施痛点包括:
- 运营负担:跨不同环境和分散工具集的手动更新、修补和停用
- 安全风险:难以长期保持基础设施合规和安全
- 成本挑战:管理长期存在的不必要资源,这些资源会悄然增加支出
标准化Day 2运维
Terraform Actions引入了一种通过触发Terraform外部的第三方工具来编写和自动化Day 2基础设施操作的方法。直接构建在Terraform提供商中的Actions为常见Day 2任务提供预设操作,扩展了Terraform的自动化能力。
这些操作可以在资源生命周期事件(如创建或更新)之前或之后调用,或通过CLI terraform apply -invoke命令临时调用。通过编写更多Day 2操作,组织可以通过自动化先前手动、易出错的任务来降低运营成本并加速交付。
Actions为Terraform用户提供两大好处:
- 统一的Day 2管理:模块作者可以在代码中定义Day 2基础设施操作与其余基础设施一起 - 在Day 2操作和管理资源之间提供清晰关联 - 并可选择使用生命周期触发器调用操作
- 原生工作流:通过将更多Day 2基础设施操作引入Terraform,用户可以通过在一个控制平面中统一更多操作来扩展其效用。这确保了一致性,并使团队更接近为所有基础设施建立单一事实来源
Terraform Actions示例
Terraform Actions测试版公告包括内置在AWS、Microsoft Azure和Red Hat Ansible Automation Platform(AAP)等提供商中的许多新操作:
Ansible Automation Platform
Terraform和Ansible是基础设施管理中使用最广泛的两个工具。Terraform满足Day 0基础设施配置需求,而Ansible擅长配置管理,它们共同构成了建立基础设施的坚实基础。
为Red Hat Ansible Automation Platform(AAP)提供商构建的Terraform操作能够分派事件,触发AAP的事件驱动Ansible(EDA)功能以运行来自Ansible的动态自动化工作流,所有这些只需一次Terraform应用。这种互连性有助于统一基础设施工具集并减少Day 2操作中的摩擦。
AWS
在由Terraform管理的AWS环境中,会出现许多Day 2任务,这些任务通常需要团队切换到AWS控制台。一些示例包括手动调用Lambda函数、为CloudFront缓存创建失效请求,或通过SNS发送警报和通知。使用Actions,Terraform用户能够完成所有这些任务及更多操作,而无需离开Terraform工作流。
Azure
类似地在Microsoft Azure中,任务通常需要团队切换到Azure门户仪表板,例如电源循环虚拟机。使用Terraform Actions,用户可以从Terraform CLI或标准Terraform计划/应用工作流完成这些任务。
开始使用Terraform Actions
Terraform Actions标志着我们持续努力帮助简化Terraform用户的Day 2基础设施工作流的又一步。有关入门的更多信息,请参阅调用操作文档。
初次使用Terraform?免费开始使用HashiCorp管理的HCP Terraform,开始在任何环境中配置和管理您的基础设施。