Chef Vs Puppet的区别
基础结构代码在Chef配置工具中定义。它主要通过编写代码来管理基础结构。该厨师由Adam Jacob在2009年开发。该厨师可以与基于云的平台集成。厨师可以配置和维护公司的服务器。Chef支持Linux和Microsoft Windows。Chef中使用的语言是Ruby和Erlang。由Luke Kanies在2005年创建的Puppet实验室开发了一个Puppet。Puppet用于长时间部署。Puppet的文档很好,可以在许多平台上使用。Puppet快速进行配置管理。它定义了系统的软件和配置要求。

Chef与Puppet之间的主要区别
因此,让我们看一下主要区别。

Chef可以被视为对节点进行编程并编写用于控制节点的代码,而Puppet是对配置文件的描述。由于配置文件的缘故,系统管理员更喜欢木偶,而由于编程和开发背景,开发人员更喜欢Chef。
Puppet用Ruby编写,支持Ruby的领域特定语言。Puppet中使用的语言是声明性的,类似于JSON或XML。应该在Puppet中首先描述期望的状态,该状态会限制工具的使用。Chef是用DSL的Ruby编写的,并且具有原型编程。使用Ruby的所有功能时,该语言势在必行。
Chef是通过外壳脚本安装的,该脚本对于代码而言不够安全。通过手动说明将Puppet安装在受支持的存储库中。在Puppet中编排节点需要DNS设置。对于配置,Puppet需要客户端证书才能进行客户端系统配置。使用Puppet DSL管理配置。在Chef中,使用的工作站是所有配置的容器,它将配置传递给主服务器。Ruby DSL用于管理Chef中的配置。第三方可用于安装Puppet和Chef。
配方和食谱等配置文件是在Chef中创建的,而清单和模块是在Puppet中创建的。使用术语解释配置的资源和一般概念,并且用户必须熟悉配置文件。所有烹饪术语都在Chef Project中使用。厨师使用Test Kitchen(又是一个烹饪术语)进行测试,而Puppet使用RSpec和Cucumber等标准工具进行测试。
在Puppet中,有许多用于Emacs,Vim,Atom,Sublime Text和IDE的插件。尽管我们在Chef中有插件,但它们并未在项目内部使用,并且未完全配置。
Chef和Puppet提供了DevOps工具。在应用程序自动化的Chef设置中,Chef automate被称为自动化的一站式。Puppet自动化称为Puppet Enterprise Console,它使客户可以自动化Puppet中的应用程序。
在Puppet中,它通过Ruby检查Puppet DSL的进度。DevOps自动化是Chef的重点。配置通过Puppet中的push方法分发到所有节点。Chef仅支持拉动过程。厨师的价格低于木偶。在所有配置工具中,Puppet的成本更高。

Puppet Chef
只有知道puppet DSL的人才能使用Puppet。Puppet配置中不需要其他编程语言。 需要一个Ruby程序员来管理Chef工具。Ruby语言用于配置管理的内部和外部,可以提供更大的帮助。
Puppet管理大型企业的基础架构,并用于长期部署。 Chef确实管理大型企业,并且以其可靠性着称。
由于未显示错误,因此在Puppet中安装过程很困难。通过Puppet中的代码和文档提供了手动说明。 安装过程需要第三方帮助,因为在安装过程中未描述错误。
学习新的资源和文件需要花费时间,而且学习的速度还不如Chef。完成学习需要三个小时。 可以更快地学习新的资源和模块。该教程说,学习可以在一小时内完成,包括测试文件。
文档是深入的,用户应在工作之前先阅读文档。Puppet工具提供了许多课程和培训。 该文档结构合理,即使对于初学者也很容易理解。现有的虚拟机系统可用于了解和学习Chef。
当主节点发生故障时,该角色由另一个主节点处理。基本上,它是一个多主系统。它遵循客户端-服务器体系结构,并且该体系结构中包含许多主机。 Chef中没有主节点,只有备份服务器。Chef还遵循客户端-服务器体系结构,但是Chef中没有主节点和从节点。
Puppet基于其系统管理员。没有要编写和开发的代码。管理员角色是配置文件,此工具将在此过程中提供帮助。 厨师主要面向开发人员。编写代码来管理用于保护文件安全和管理配置设置的工具。
木偶具有声明性风格。它遵循XML格式,并且文件采用主从结构。 厨师遵循程序样式编码。有一个主服务器负责文件存储,如果失败,则由其他服务器代替。
由于安装困难和文档不足,与Chef相比,Puppet并不受欢迎。在Puppet中工作总是需要额外的培训。 厨师比木偶更受欢迎,因为它易于理解和学习。服务器系统使存储文件变得很容易,任何托管系统都可以用来学习Chef。
在Puppet中,应用程序部署不是那么容易,但是一定程度上可以执行。管理员应该知道应用程序的部署。服务器查询也很困难,并且需要仔细的文档来完成。 Chef不执行应用程序部署。对此未作任何规定。此外,在此配置工具中也不进行查询

结论
Puppet和Chef主要侧重于两者之间的细微差别的配置。Puppet和Chef主要在Unix / Linux上工作,在配置中没有太多使用Windows。