Juju和Puppet / Chef有什么区别?


80

曾尝试向第三方询问Juju和Puppet / Chef 之间的主要区别。第三党对Juju不太熟悉,无法说出来。他们只是简单地说其他人有很大的动力,很难克服他们的领先优势。

最接近Juju的用户是否愿意强调此软件的优势,以及为什么它会在配置管理领域超越Puppet / Chef?

Answers:


48

马克,这是一个很好的问题,这是有人问我关于聚州的第一个问题。这是一些大的差异。

  • Juju封装了服务-魅力定义了服务向其他服务公开或从其他服务消费配置数据所需的所有方式。护身符的工作方式就是护身符。它可以以独占模式使用从Shell脚本到Chef的任何工具。

  • Juju统筹配置-Juju跟踪其可用资源,并可以根据需要添加或删除它们。当前,这些资源是AWS EC2计算机,OpenStack云(例如HP Cloud),Microsoft Azure,Joyent,通过MAAS的裸机和LXC / KVM本地提供程序。

  • Juju使共享变得容易-任何人都可以在Juju Charm Store中贡献魅力; 这些魅力经过Juju社区的审查和同行审查。

这是人们在网络上进行的其他一些比较:


1
Puppet还负责描述资源,供应VM共享模块。您能解释一下Juju如何做到不同或更好,或解决另一个问题?
poolie

在回答时还不知道p云供应商。人偶模块在上次检查时没有命名间隔,因此存在共享问题,可能需要用户修改人偶模块的代码才能使用它。
SpamapS

puppet中有名称空间。我使用Puppet的方式不多,但是我的理解是,大多数问题是在两个模块实际上试图管理同一逻辑事物时发生的。Juju是否有某种系统的方法来防止这种情况发生?
Poolie

puppet中的名称空间最近进行了更改,以使共享工作的独立puppet模块更加容易。过去,需要等效的全局变量来在两个模块之间进行通信。Juju不会以任何形式处理实例的配置,它只是编排的辅助工具,所以不,它不会阻止在单个文件上出现两种魅力。
SpamapS 2013年

1
@SpamapS您好,这是关于您的第二点(又名Juju编排)。在puppet中,我们可以使用“ require”,“ notify”等定义关系。我们不能简单地使用此构造来编排供应吗?还是Juju提供了不同级别的编排语义?
Denis Weerasiri

33

(免责声明-我是Puppet的创始人和Puppet Labs的首席执行官)

我不太了解juju,但是据我所知,它们在不同层面上是不同的。Puppet擅长于管理机器本身的行为和功能,而juju似乎主要致力于讨论机器集,并且主要研究如何使机器对外部工具(如Puppet或Shell脚本)采取任何特定方式。

我们使用Puppet的策略是从头开始构建最佳堆栈,而juju似乎是堆栈的特定层,而其他层则留给了其他工具。因此,尽管您可以使用Puppet解决整个问题(尽管有时工作量可能比您想做的要多),但您需要将juju与其他工具集成在一起才能完成很多工作。

实际上,juju似乎是Amazon CloudFormation的本地版本,尽管没有该图等。因此,可以与Puppet等一起使用,但不能替代它。


6
不确定punting是否是正确的词..这就像说软件包将工具构建到autotools / scons / setup.py一样。如果软件包试图完成每个构建的每一步,那么我们将没有软件包!
SpamapS 2011年

9

这是Juju如何与其他自动化工具配合使用的另一种观点:

我在Canonical(负责Ubuntu和Juju的公司)负责Cloud Strategy。Juju不是Puppet或Chef的竞争对手。Juju可以安装Puppet或Chef,而从Juju对服务的封装中,您可以调用现有的Puppet模块或Chef收据。

那什么是枣?Juju使您可以立即部署,集成和扩展您的IT堆栈/服务/应用程序。即时获得IT收益,轻松无忧。通过命令行或GUI。

因此Juju更接近PaaS,然后更接近Devops工具,因为您可以构建云(Juju是Canonical的默认OpenStack安装程序),基于它的基础架构(web / app / db服务器,Hadoop,MongoDB等),但是大多数值得注意的是Juju允许部署和立即集成应用程序(Wordpress和MySQL之间的添加关系将自动在MySQL内部设置Wordpress表和数据)。

应用服务器(java,php,node.js,scala等)也可以与版本控制一起使用,因此可以自动部署和扩展应用。因此,与PaaS不同,您不仅限于特定的软件堆栈,而且还具有即时部署,集成和扩展的优势。可以将其视为一种灵活的PaaS或FlexiPaaS,它可以立即部署,集成和扩展您的软件服务,而不受限制或锁定。

来源 -警告:需要登录。


3

用最简单的术语来说,juju封装了服务发现,键值存储和配置管理。人偶/厨师等都是纯配置管理。

Juju基于事件,并使用中央“引导节点”来跟踪和协调事件。可以使人偶和厨师出现在事件的基础上,但是通常只是按计划执行相关工作。

Afaik,您不能在分布式或无代理状态下运行juju,这在大多数配置管理系统中都是可能的。

etc等大部分是领域特定的语言,而juju是系统而非语言。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.