Chef和Puppet引领开源云自动化

简介:

IT专业人员越来越多地转向Chef和Puppet开源云自动化和编排。但是其他选项,如TOSCA,也值得我们探索。

部署软件不是一件简单的事,而在面向服务架构、web服务、微服务和云的时代则更为复杂。虚拟化提出了新的挑战,赋予应用程序和服务器新的角色。基本的软件操作工具正在转变成自动化和流程编排工具,而开源软件则充当了引路人的角色,特别是Chef和Puppet。

现今用来部署应用的软件工具源自早期的一些工具,这些工具允许开发者将操作指南创建到应用中以达到简化部署的目的。这个概念,即所谓的DevOps,目标是准确和快速部署,但达到目标的不同方法很快分成了两种不同的派别。

Chef和Puppet二分天下

最简单的自动化部署方式是通过脚本。手动部署软件就是使用操作系统或云管理系统的工具启动命令,而脚本是一种可以灵活的将命令写到一个文件里然后快速执行的方式。当今市场上有两个很流行的开源自动化工具,Chef和Puppet。

Chef模型被认为是命令式或规定式,因为它是过程化的 ,明确地描述了如何部署和连接云应用程序组件。Chef以一种对程序员友好的方式来创建“菜谱”和“烹饪手册”。每个部署的步骤可以独立进行描述,这些独立的菜谱汇集到一起创建一个可重复的应用程序部署过程。由于每个操作步骤都可以在一个菜谱中描述,所有只要可以手动部署的步骤,Chef都可以自动化。

然而同样的程序员友好模式对某些用户来说并不是他们想要的。对这些用户来说,部署应用程序的合理方式是按照模型部署的最终状态来描述。该开源DevOps工具对模型进行处理来创建最终的状态。这个过程通常被称为声明式或基于目标的DevOps,也是另一种流行工具Puppet的基础。

如果Chef是对程序员友好的,那Puppet则最初源于运营人员,比起详细的如何操作的步骤,他们更熟悉如何描述他们最终想要的状态。就像高级语言让编程更加简单一样,Puppet模型能够简化部署描述。此外,由于最终状态的这种方法可以用来描述在应用生命周期管理(ALM)中的任何步骤,Puppet自然可以接纳一个完整的ALM功能,这也是Puppet的粉丝所喜欢的。

Puppet的问题是你只能部署那些可以被模型化的步骤。随着新的部署问题的出现,Puppet建模的过程开始变得同命令式脚本开发相似,而事实上,云的发展已经开始弥合这一鸿沟。Chef和Puppet似乎变得更接近彼此,而一些新的DevOps工具则跨过声明式/命令式的分隔线。不过,新的部署和配置管理的主候选工具全都支持声明模型;没有哪个是纯命令模式的。

云端的选择

云也迫使了部署和配置管理工具的发展。由于云部署需要处理虚拟化的两个层次,使得所有的部署和配置自动化变得更加复杂,而DevOps不得不同时面对部署和生命周期管理的问题。这反映在一个新的云名词上:编排。这反映了将复杂的步骤进行统一的需求。

编排连接了声明式和命令式的模型,但声明式编排似乎是更受欢迎的方法;描述一样东西当前和期望的状态是一种不错的生命周期管理的方法。两个新的纯声明式模型CFEngine和Juju,同Chef,Puppet一起正在获得更多关注。这些工具侧重于模型构造并提供政策和库的支持。此外,同时支持声明式和命令式的流程控制工具Ansible和SaltStack,正开始挑战过去的那种两极化方式。

目前为止提到的工具是从DevOps和传统部署演变而来。那么那些专门为云而生的工具的进展怎样了呢?国际标准化组织结构化信息标准推进组织(OASIS)开发了一个名为拓扑和业务流程规范云应用的声明性模型的方法。TOSCA解决了应用程序部署的最终状态定义以及虚拟资源和资源池的具体建模。TOSCA还集成了管理定义以支持生命周期自动化。

最适合你的云编排方式是什么?这里有一些技巧:

支持包括Chef在内的命令模型的工具是最强大的,在任何云中支持几乎任何种类的应用。但对于非程序员来说学起来更困难。

如果你计划依赖云端打包好的应用,那么检查该厂商是否拥有一个优选的编排方式,如果有的话,请在你的应用中也认真考虑采取这种方式。

TOSCA是云自己的模型,但也是最不成熟的。如果你当前无法做到,则可以考虑声明式云编排工具,这样过渡到TOSCA会更容易些。

如果你已经对数据中心部署的某个DevOps工具很熟悉,不要仅仅因为要迁移到云了就弃之不用了。所有的DevOps工具都在变得更加云友好。

尽管对编排这块来说还相对较新,但各式各样的开源,甚至一些商业的软件包,都支持TOSCA。一些流行的基于TOSCA的云编排工具包括Cloudify,OpenStack Heat,Alien4Cloud,以及ARIA和OpenTOSCA,这两个都是规范的参考实现。除此之外,TOSCA被接受的原因还包括网络功能虚拟化和软件定义网络。很多人认为TOSCA在这些领域的成功代表着这就是编排的未来。

编排对于应用的未来很关键。这是一种可以同时处理敏捷应用和敏捷虚拟资源的DevOps的形式。无论你用什么方法来编排,都应该随着应用和虚拟化发展的同时不断审查和修改细节。





====================================分割线================================


本文转自d1net(转载)

目录
相关文章
|
3月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
89 3
|
3月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
77 4
|
3月前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
118 2
|
8天前
|
人工智能 运维 Prometheus
AIOpsLab:云服务自动化运维 AI,微软开源云服务 AI 框架,覆盖整个生命周期
AIOpsLab 是微软等机构推出的开源框架,支持云服务自动化运维,涵盖故障检测、根本原因分析等完整生命周期。
75 13
AIOpsLab:云服务自动化运维 AI,微软开源云服务 AI 框架,覆盖整个生命周期
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
CogAgent-9B 是智谱AI基于 GLM-4V-9B 训练的专用Agent任务模型,支持高分辨率图像处理和双语交互,能够预测并执行GUI操作,广泛应用于自动化任务。
73 12
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
|
24天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
132 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
20天前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
115 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
2月前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
4月前
|
运维 Linux 网络安全
自动化运维的利器:Ansible、Puppet和Chef详解
自动化运维的利器:Ansible、Puppet和Chef详解
137 5
|
5月前
|
人工智能 搜索推荐 API
开源2.0|从事视频剪辑的“熬者们”,自动化剪辑工具 FunClip请收好
开源2.0|从事视频剪辑的“熬者们”,自动化剪辑工具 FunClip请收好
开源2.0|从事视频剪辑的“熬者们”,自动化剪辑工具 FunClip请收好

热门文章

最新文章