HashiCorp、Contino 企业 Terraform 推荐实践指南分享

  • Daniel Bryant
  • 罗远航

2018 年 1 月 28 日

话题:DevOps架构

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

HashiCorp 发布了一个Terraform 推荐算法实践指南来帮助那些希望拥抱云技术和架构即代码(IaC, Infrastructure as Code)的企业。其中提供了一个典型的推荐 Terraform 工作流(其中涉及到组织角色),还给出了一个“供应成熟度模型(provisioning maturity model)”,同时它还提供了许多建议来指导企业如何从一个阶段过渡到下一个阶段来对当前的实践进行演进。该指南是由 HashiCorp 与 Contino 共同合作完成的。HashiCorp 是诸多开源以及商业基础架构工具的创造者,例如:TerraformPackerVaultContino是 HashiCorp 系统集成的合作伙伴。

HashiCorp 发表了一篇博客,该博客宣布了该指南的发布,并指出了基于云端的服务能够使得开发团队更大程度地独立于传统基础架构的底层操作约束。然而,从传统的私有数据中心的“机架”物理基础设施迁移到软件定义一切(Software Defined Everything,SDx)的数据创建和管理架构中存在着技术上和组织上的双重挑战。比如说,通过编程 API 或 SDK 对计算资源进行协调管理以及使用软件定义网络(SDN)和软件定义存储(SDS)。

HashiCorp Terraform 使得工程师能够以一种“安全的、可预测的”方式将基础架构指定为声明性代码计划以及供应环境。现在有许多关于使用 Terraform 来结构化代码以及合作的经验报告和推荐的最佳实践,包括 Charity Majors 的系列博客、 Yevgeniy Brikman 的博客文章。后者是 O'Reilly 系列书籍《Terraform: Up and Running》 的校对者以及修订者。

然而,当我们咨询任何推荐的实践时,我们都该注意到,由于框架本身还在不断地发展中,而昨天的推荐时间很快就会被融入到 Terraform 本身的工作流中,或者被视作一种不必要的解决方案用以克服对框架的误解。

尽管 Terraform 是一个开源工具,但是也有商业级的 Terraform 企业产品,并且该指南聚焦于指导企业采用 Iac(以及 Terraform Enterprise)。然而,对于希望采用 Iac 方法来对云基础架构进行管理的组织来说,其中仍然有许多有用的工作流和相关的推荐实践。

该指南分为三个部分:

  • 第一部分:推荐工作流概览。该部分是对 Terraform 的代码即架构工作流的协作基础架构的整体概述。其中阐述了基础架构是如何被组织的、被管理的,并且阐述了人们是如何与其进行交互的。
  • 第二部分:评价你们目前的供应实践。这一部分提出了一系列问题来帮助大家评价一个组织的基础架构供应实践的状态。该指南针对该问题提出了一个四阶段基础架构成熟度模型。
  • 第三部分:如何演进供应实践。这一部分内容讲述了该如何利用四阶段操作成熟度模型来提升供应实践。

指南中的第一部分讨论了将 IaC 引进企业的组织上以及技术上的挑战,并且给出了规模化管理基础架构的四个主要角色:中心 IT(Central IT),负责定义公共基础设施和对应的执行策略;组织架构师( Organisation Architect),定义全局基础架构是如何划分和委托给业务部门的团队的;工作空间所有者(Workspace Owner),他们是拥有指定工作空间的个体,并且是领域内生产变革的主要支持者;工作空间贡献者(Workspace Contributor),他们通过将(非生产)更新作为代码配置,把该更改提交给工作空间。

它为每个角色都提供了推荐的实践,它使用了一个工作空间的基本概念,工作空间表示的是需要运行的东西的集合,例如:Terraform 配置、变量以及状态数据,工作空间被用于管理以及代理控制。

指南中的第二部分阐述了一个 IaC“供应成熟度模型”,其中包括:手动、半自动、架构即代码以及协作式架构即代码。该指南还向组织提出了一系列问题,以便组织能够进行自我评估。在这部分内容的基础上,第三部分内容阐述了将组织从当前成熟度阶段过渡到下一个阶段中所必须的步骤。

例如,指南中有一节内容介绍了如何“从半自动演进到架构即代码”,这部分内容涵盖了版本控制的推荐用法、学习创建Terraform 模块的指南(允许重用的组件化 Terraform 单元)以及如何定义组织的指导方针和相关政策。

这些指南很大程度上是基于来自以下云服务提供商的十分有用的架构指南和推荐实践:

Terraform 指南中总结了几个更高级的推荐实践的主题,其中包括:将 Terraform 与图像构建工具(如Packer)以及配置管理框架(如Chef)进行集成、编写自定义 Terraform Providers将 Terraform 运行于 CI/CD 构建流水线以及Terraform Provider 开发计划的意义。

HashiCorp 和 Contino 的Terraform 推荐实践指南可以在 Terraform 文档网站进行访问。

查看英文原文:HashiCorp and Contino Share Enterprise Terraform Recommended Practices

DevOps架构