DevOps 软件开发技术中可用的工具范围越来越广泛。 如今,有数以千计的工具可供选择,每种工具都有其在您的业务中使用的理由:通过它如何帮助实现您的目标甚至日常任务。 无论您是新手还是经验丰富的开发人员,您都可能会为正确的选择而不知所措。
即使您将范围缩小到潜在工具列表(您感兴趣的工具),您要解决的问题类型也是多种多样的。 例如,您可能希望在信息技术 (IT) 基础架构中进行特定的配置管理或应用程序部署,因此很难做出选择。 Chef 和 Ansible 是目前领先的工具。
如果您对 DevOps 感兴趣,则需要了解何时选择特定的自动化技术堆栈以及原因。 在这篇文章中,我将分解这两种自动化工具,同时牢记每个开发人员都有独特的需求。 虽然“最佳”工具是主观的,但我会向您展示差异,提及共同属性,从而帮助您做出明智的选择。
需要了解的 DevOps 自动化术语
在深入了解 Ansible 和 Chef 之间的整个交易之前,了解 DevOps 自动化中最常用的术语以顺畅地理解该领域是值得的。
什么是 Ansible?
Ansible 是其母公司 Ansible Works 于 2012 年创造的一种 IT 自动化工具,用于在 IT 环境中自动化整个应用程序生命周期。 Ansible 有助于自动化配置管理、编排工作流程和应用程序开发; 名单很长。 Ansible 的操作模型以特定顺序执行任务,其中一个是它自己的,一致地执行 IT 环境流程。
Ansible 通过优化 IT 环境提高质量和生产力,同时降低成本。 它也可能是在 IT 领域引入智能的解决方案。 Ansible 将传统 IT 环境与敏捷软件实施联系起来。 它是开源的,并且确实依赖于客户端-服务器模型。 Ansible 设计师声称它是唯一一个在持续交付时间线内自动化整个 APK 生命周期的自动化引擎。 自动化涉及将复杂任务转化为可重复的剧本、简化流程并最终加快生产速度。
不出所料,“ansible”这个名字来源于科幻文学。 它描述了一个瞬时超空间通信系统。
Ansible 控制机器是基于 Linux/Unix 的——比如 Debian、RedHat Enterprise Linux 和 macOS。 您可以在 Python 2.7 或 3.5 上运行 Ansible。 当您转向云平台时,Ansible 可以在亚马逊网络服务 (AWS)、微软 Azure、谷歌云和 Docker 等众多供应商中运行。 Ansible 使用 winRM 和 OpenSSH 进行远程连接,提供自助服务,执行基于角色的访问控制 (RBAC),并允许增强权限。 因此,Ansible 在 DevOps 和 IT 运营中提供了可靠性和安全性。
Ansible 可以被域中的许多操作员(包括操作员、IT 主管、经理和发布工程师)用来自动化 IT 基础设施。 既然我已将 Ansible 与其用户绑定在一起,那么组织呢? 无论您经营的是大型企业还是小型企业,都可以采用 Ansible 来简化您的 IT 运营。 然而,许多使用 Ansible 的公司都是在信息技术和通信领域量身定制的。
Ansible 的主要特性
Ansible的优势
- 简单易学。 您不需要任何先决条件。
- 简化的配置管理和应用程序部署。
- 增强的安全性和可靠性。
- 可用的集中式自动化和可视化仪表板。
- 支持 IT 法规遵从性。
- 时间有效。
- 允许持续集成。
- 更大的社区
缺点
- 不支持 macOS。
- 欠发达的图形用户界面 (GUI)
- 无状态,因此不跟踪依赖关系的变化。
- 不良的调试能力。
什么是厨师?
Chef 于 2009 年由其母公司 OpsCode 创造。 Chef 技术是继难以理解且学习曲线陡峭的旧配置工具 Puppet 之后的后继软件。 与 Ansible 不同,Chef 有点难以理解。 但是,通过练习,它会变得很容易,就像使用任何编程语言一样。 Chef 和 Puppet 由 Ruby 编程语言操纵。
“Chef 是一个强大的自动化平台,可将基础设施转化为代码……”
– 厨师设计师
因此,Chef 是另一个在持续部署和配置管理方面表现出强大实力的自动化工具。 无论您的操作是本地、混合环境还是基于云,Chef 都能通过您的网络自动配置、部署和管理,无论其规模如何。
Chef 在 Windows、Cisco IO 和 Nexus 等多个平台上运行。 如果您是那种热衷于云技术的开发人员,Chef 支持 Microsoft Azure、Amazon Web Services (AWS) 和 Google Cloud Platform 等平台。 清单不止于此; 进行研究以确认您首选的云供应商是否受支持。
与许多用户使用的 Ansible 不同,Chef 明确面向 DevOps 和 DevSecOps 工程师。 该解决方案被中高级信息技术和服务公司固有地采用。
厨师的主要特点
Chef Solutions 具有许多重要的架构特性; 这是故障。
- Chef Infra – 此工具允许您高效地自动化、配置、管理和部署您的 IT 基础架构。 Chef Infra 将基础架构转换为代码,并在其中提供稳定的部署。 Chef Infra 由三个部分组成; Chef 服务器、工作站和客户端。 作为主力,工作站可以运行在任意平台上,支持使用各种工具进行代码测试。
- Chef Habitat – 作为开源产品,此工具支持应用程序部署,无论您的平台如何。 如果您查看其组成组件、通常是隔离的、可审核且不可变的打包格式,以及管理这些包的栖息地主管,它会自动定义、打包和交付应用程序。
- Chef InSpec – 这个开源测试框架可以在任何平台上运行。 该框架对人类和机器都是可读的。 它还是一种增强安全性和合规性的解决方案。 一个额外的好处是你可以用它来测试你的物理硬件。
- Chef Automate – 这是您集成 Chef InSpec 和 Habitat 等开源产品的门户。 它提供全栈持续安全性和合规性。 您还可以使用 Chef Automate 查看您的整个 IT 生态系统并生成足智多谋的见解。
厨师优势
- 可简化配置的预打包模板。
- 便于使用; 快速开发食谱。
- 保证部署的一致性和质量。
- 良好的工具定制; 自定义仪表板以满足您的需求。
- 您无法轻松迁移 Chef。
- 自动化 IT 合规性。
- 为关键应用程序提供安全、顺畅的交付。
厨师的缺点
- 许多工具需要用户澄清。
- 需要您了解 Ruby 编程语言。
- 陡峭的学习曲线。
- 不是微型组织的最佳选择。
- 遵循主客户端方法,使其变慢。
- 成本相对较高。
Ansible 和 Chef 之间的主要区别
尽管 Ansible 和 Chef 在自动化方面都在同一页面上,但它们具有不同的特征。 本节重点介绍 Ansible 和 Chef 之间的区别。
FeatureAnsibleChefInstallation易于安装,因为它使用无代理架构。使用需要 Chef Agent 在每台客户端计算机上运行的主客户端标准。 Chef 的工作站组件也需要配置,这会减慢其整体安装过程。使用的语言它使用需要 Chef Agent 在每台客户端计算机上运行的主客户端标准。 与其本机 Ruby 相关联,Ruby 更基于开发人员。配置 Ansible 中的配置文件称为剧本。 Ansible采用push配置操作模型。Chef中的配置文件称为cookbooks。 Chef 应用拉取配置技术。社区
(不限于聚会、社交媒体存在、书籍和培训的多样化操作。)新产品和相对较少的学习。
拥有庞大的社区。Chef 是一个较旧的产品,因此它的文档更好。
相对较小的社区。
把它们放在一起
正如您所见,Chef 和 Ansible 是最多产的自动化和配置系统,支配着 DevOps、DevSecOps 和其他 IT 流程。 Ansible简单易用,很多用户都可以学习。 相反,Chef 具有众多功能,可帮助执行复杂的信息技术操作。
您还看到了 Ansible 和 Chef 的优点和局限性。 要选择您的自动化解决方案,您需要评估您的要求。 在满足您的要求的同时,从便利性的角度来看,还有其他几个因素需要考虑; 您选择的解决方案的当前可用功能以及长期前景。 考虑其他因素,例如未来的工作量或您组织的规模随时间的增长。
如果您已经做到了这一步,那么 DevOps 已经激发了您的兴趣。 如果是这样的话,我建议你继续你的职业选择或想法; 这就是为什么你应该查看我们的指南,我们的专家精心策划了最好的 DevOps 课程。