博客

为 F5application服务选择 Ansible 或 Terraform

Lori MacVittie 缩略图
洛里·麦克维蒂
2019 年 9 月 30 日发布

选择其中一个(或两者)来部署和操作 F5application服务。

开源运动始终致力于自由。 根据技能、预算、架构和目标,自由选择最适合您的解决方案。 如今,当谈到为部署管道构建可重复的基础设施时,这一原则仍然是一个重要因素。

有很多很好的选择可以实现应用服务的自动化配置和运行。 其中两个比较受欢迎的选择是 RedHat Ansible 和 HashiCorp Terraform。 

让我在这里停下来并提一下,F5 完全支持AnsibleTerraform 。 我们与双方合作以确保互操作性和集成性,因此您不必费心。 无论你做出何种选择,我们都会支持你。

但我们在与客户合作的过程中注意到,对于某些任务,Ansible 表现出色,而对于其他任务,Terraform 则大放异彩。 这是因为自动化和维护管道需要不同的任务集。

Terraform 擅长编排——环境状态的管理。 这意味着 Terraform 了解环境应该是什么样子以及应该如何运作。 如果出现问题,Terraform 可以将其标记以供审查。

Ansible 擅长配置管理。 这意味着它的重点是维护各个组件的状态。 如果环境中的单个组件出现问题,Ansible 可以调整配置来解决问题。 

每种工具的重点不同,这意味着当我们看到它们一起用于自动化部署生命周期时,我们并不感到惊讶。 

要了解这两个工具如何与 F5application服务协同工作,最好从部署生命周期的角度来设定共同点: 

部署生命周期

正如应用具有生命周期和相应的交付管道一样,应用服务也具有生命周期和相应的部署管道。 该生命周期需要多个步骤:

  1. 条款
    一个。 配置是实际启动实例的过程 - 无论是虚拟机还是容器,无论是在公共云还是私有云中。
  2. 船上
    一个。 需要进行入职培训才能设置在已部署 BIG-IP 的环境中运行所需的网络。
  3. 部署
    一个。 在生命周期的部署阶段,定义、配置和启动应用服务。
  4. 操作
    一个。 正在进行的操作需要监控和分析。 F5 遥测流使 BIG-IP 能够插入遥测管道以共享所需的指标和数据。
  5. 改变
    一个。 更改是修改现有配置(最初在部署阶段指定)的过程。

Ansible 和 Terraform 都可以成为所有五个阶段的主要自动化提供商。 然而,每种方法在不同阶段各有优势,因此同时使用两种方法实际上可能是一种更好的策略。 我们更有可能看到 Ansible 用于部署和更改(配置管理)阶段,而 Terraform 更多地用于配置和入职(编排)。

Ansible 与 Terraform 结合

我们还知道许多客户希望标准化他们的工具链——这是有充分理由的。 保持对多种工具的专业知识可能很困难 - 更不用说操作和维护运行多种工具链所需的基础设施。 在这种情况下,有办法选择其中哪一个出色的工具进行标准化。

  1. 基础设施很少发生改变
    在这种情况下,您正在对应用服务进行更改,但不一定对基础设施(即 BIG-IP)进行更改。 利用现有的 BIG-IP 部署新应用时通常会出现这种情况。 Ansible 是一个不错的选择,因为它擅长配置管理,而这正是您主要要做的。 Ansible 支持多种语言和 API 样式,非常适合 DevOps 和 NetOps 团队对应用服务进行更改。 您可以使用 Ansible 通过 F5 Ansible 模块或通过 F5 AS3 配置 F5应用服务。 或者您可以根据您的具体需要同时使用两者。 要深入了解如何选择 Ansible 方法,请查看Mani Gadde 和 Andrius Benokraitis 的精彩博客
  2. 基础设施频繁变更
    云(尤其是公共云)通常被选中来促进应用及其支持基础设施的高速变化。 不可变的基础设施通常有助于管理这种情况下的波动性,即拆除并重新部署整个基础设施。 Terraform 是这种场景的绝佳选择,因为它擅长快速配置和加入整个基础设施。 它的设计和对编排的关注非常适合大规模创建一致、可重复的基础设施,特别是在云这样的不稳定环境中。 
  3. 基础设施和应用服务频繁变更
    Terraform + Ansible 可以很好地组合起来,用于管理基础设施和应用服务的高变化率。 由于您预计环境和各个组件的状态会频繁发生变化,因此您需要变更管理编排工具来帮助维护应用及其支持应用服务的可用性

无论您选择什么 - Ansible、Terraform 还是两者 - F5 都致力于通过原生集成和预打包模板以及积极贡献和完善两者的社区来支持您的选择。