Mark!DevOps开源工具的三种分类整理

随着开发运维一体化的DevOps运动在国内外蓬勃发展,DevOps相关工具也呈现热闹趋势,在这个言必谈如何实施落地引入工具、建设平台的大环境下,我们今天也来盘点一下DevOps相关工具。

 

先来看一下业界对DevOps工具的各种分类介绍。
 

 

一、DevOps应用交付工具链

ElasticBox是国外一个云应用管理工具,主要用于实现云应用生命周期的可视化管理,他们的口号是“Deploy any Application Anywhere – Zero stress,Total control”。

关于DevOps工具,他们整理了一个脑图:

主要从开发、部署、维护三个方面把常用的开源工具做了一个分类:

>>>>
1、开发

开发类的DevOps工具又分为:

(1) 版本控制和协作,例如Git、SVN等

(2) 构建和测试自动化,例如Ant、Selenium、Jmeter等

(3) 持续集成和交付,例如Jenkins、CruiseControl等

>>>>
2、部署

部署类的DevOps工具分为:

(1) 容器平台,例如Docker等

(2) 配置管理,例如Chef、Puppet、Ansible等

(3) 微服务平台,例如Cloud Foundry、Kubernetes等

(4) 服务开通,例如Puppet、Docker Swarm、Vagrant等

>>>>
3、维护

维护类的DevOps工具分为两大类:

(1) 日志,例如logstash等

(2) 监控告警和分析,例如Nagios、Zabbix、Kibana等

从ElasticBox对开源的DevOps工具的分类来看,主要是围绕着应用从构建到部署、交付运维这样的工具链来分类的。

二、DevOps工具元素周期表

XebiaLabs是国外一家围绕着企业规模化可靠软件交付自动化做解决方案和工具的厂商,他们的口号是大规模、更快速地自动交付:“Get the visibility, automation, and control to deliver software faster and with less risk.”。

 

关于DevOps工具,他们以元素周期表的展现形式整理了一个图:

图中按颜色标注不同类型的DevOps工具,包括:

(1)数据库,例如:Oracle、MySQL、Cassandra等;

(2)持续集成,例如:Jenkins、TeamCity等;

(3)部署,例如:SSH、XLDeploy等;

(4)云/IaaS、PaaS,例如:Amazon Web Services、Azure等;

(5)业务分析/监控,例如:Splunk、Nagios等;

(6)配置管理,例如:Git、SVN等;

(7)库管理,例如:Nexus、NuGet等;

(8)配置/服务开通,例如:Chef、Puppet、Ansible、Vagrant等;

(9)发布管理,例如:XL Release、UrbanCode Release等;

(10)日志,例如:Sumo Logic、Logstash等;

(11)构建,例如:Gradle、Ant、Maven等;

(12)测试,例如:Junit、Cucumber、Selenium、Jmeter、Appium等;

(13)容器化,例如:Docker、Kubernetes、Mesos等;

(14)协作,例如:Jira、Flowdock等;

(15)安全,例如:Snort、CyberArk等。

 

看起来XebiaLabs的分类更全面,既包括了开源工具也包含商业工具,当然也包括了XebiaLabs自己的工具;但是看起来又有点为了构成元素周期表而塞入一些工具的味道,例如,个人认为数据库这类基础软件就没必要跟DevOps扯上了吧?!

 

另外,XebiaLabs的分类在某些地方与ElasticBox的分类有出入,例如,ElasticBox把Kubernetes放到部署类,而XebiaLabs把它放到单独的容器化这个类别,当然,ElasticBox的部署类这个大的类别也是包含了容器化的。

 

由此可见,各家对DevOps的理解,还有工具的归类方式等都会有差异,没有统一的标准。

三、基于DevOps能力矩阵的工具分类

既然没有统一的DevOps工具分类标准,那么我个人也想从之前归纳总结的DevOps能力矩阵模型的角度,对DevOps相关的工具进行一些分类。

 

Devops凭借其连接弥合开发与运营团队的能力正在各个行业呈现席卷之势。开发人员和运营人员历来就是水火不容,无论是在开发、测试还是部署上都有着很大的分歧,只有Devops才能扭转这一局面。

 

我们从DevOps的核心理念可以看出,DevOps强调开发、QA、运维的一体化融合。

但是,本质上来看开发、QA、运维又是分属不同的部门和组织(尤其是传统企业),有着自己的过程管理方式,主要负责的事情不一样,所谓“术业有分工”,因此用到的工具也有所不同。

 

那下边我们就尝试归纳一下开发、QA、运维各自常用的一些工具,并且尝试从DevOps能力融合的角度分析,哪些工具是三者或两两之间可以共用的,并挑选一些典型工具做简单介绍。

(一)开发类典型DevOps能力融合工具

敏捷开发已经成为主流,敏捷开发中的核心实践“持续集成”也逐渐被很多企业推广应用,Jenkins作为这个领域的开源工具老大哥的位置已经事实上被确立了。

 

Jenkins通常被用在配置管理和部署代码上,同时它也能够与Puppet、Chef和容器技术一起使用,还有自动化的测试,例如Selenium、Jmeter也能被很好地整合到Jenkins持续集成的管道中。

开发人员、QA、测试和运维人员都在用Jenkins就很好地说明了Jenkins在DevOps领域的大好前景。

(二)QA类典型DevOps能力融合工具

 
无论开发还是测试,还是运维,对软件系统的性能都是非常关注的,因此APM这类上接运营(用户感知)与运维(性能监控),下接QA(性能管理)与开发(性能分析)的工具就理所当然地在近几年开始火爆起来了!

下图是国外的老牌APM厂商的New Relic,使用New Relic企业可以迅速从多个角度查看并解决应用中出现的错误:

New Relic高级产品经理Stevan Arychuk说New Relic可以提升高质量软件交付的速度并同时降低企业所面临的风险。企业中各团队的角色和职责有所不同,但是通过多角度的数据分析,各个团队之间的沟通、协作、交流可以得到加强,最终达到共同合作的目的。 

(三)运维类典型DevOps能力融合工具

1、Automic

美国员工福利管理公司TASC使用Automic来实现其软件部署的自动化,应用Automic,号称可以在下午三点部署而不被别人发现。

自动部署是开发的持续集成、测试之后衔接运维上线的一道关键工序,应用Automic这类自动化工具能软件系统的部署和交付过程更敏捷、稳定高效、高质量地完成。

 

2、DynaTrace Ruxit

传统的运维工具大多聚焦在监控类,尤其是基础设施的监控,例如主机、中间件、数据库的监控,尤其是服务器资源层面的监控,对应用层、业务层面的监控偏少,这会导致针对具体问题的分析,开发、QA、运维之间的共同语言偏少。

 

Devops的核心就是各个部门之间的协作,除了这个协作的理念之外还需要一种方式来进行沟通。

 

DynaTraceRuxit的智能查看功能可以直观地展示应用和其依赖之间的关系,这样软件开发流程中的不同角色之间可以使用Ruxit来进行沟通和自动化的分析。

作者介绍  陈能技

  • 2016全球敏捷运维峰会特邀嘉宾。
  • 【DBA+社群】专家,新炬网络首席APM架构师。
  • 14年开发测试与质量架构经验,擅长DevOps及APM、Docker、持续集成、持续交付在企业中的落地实施。
  • 著有《软件性能测试诊断分析与优化》、《软件自动化测试成功之道》、《深入浅出性能测试与LoadRunner实战》等书。


时间: 2024-09-09 11:28:16

Mark!DevOps开源工具的三种分类整理的相关文章

最棒的60个DevOps开源工具

编者按:DevOps越来越流行,越来越成为加快产品研发速度.提升团队效率的有效工具.现在,在开发.测试.部署.交付.维护以及监控分析等工作中,有越来越多的开源DevOps工具可以使用. 本文推荐了60款开源工具来帮助大家更好的实行DevOps. 你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的.这里列举了 60+ 款最棒的开源工具,可以帮助你很好的实行 DevOps. 开发工具 版本控制&协作开发 版本控制系统 Git Git 是一个开源的分布式版本控制系统,用以有效.

N个免费DevOps开源工具,没用过,至少应该了解!

在介绍Devops工具之前,先跟随码花来了解下: Devops是个啥? Devops=[Development]+[Operations]. 简言之,Devops主要用于开发.测试.运维之间的沟通.协作与整合,减少开发和运营之间的摩擦,从而快速部署软件或应用程序,并且可以快速检测. 作为小白,你可能就要问了:那,Devops到底是个什么样的存在形式,是个软件还是啥? 错!!!Devops既不是软件.也不是网站.更不是代码,而是一组方法.过程与系统的统称. Devops包含了很多优秀想法和原则,它

无AS在FLASH中实现三种爆炸效果

目前我们见到的一些flash中的爆炸效果,很多都是应用大量的as或者粒子技术模拟出来的,对于不是很熟悉as的朋友来说,确实很难理解和学习,不过大家别着急,本实例我们就来学习一种不使用任何as(当然最简单的stop()和goto语句是少不了的),来模拟出三种精彩的爆炸效果,其逼真程度一定都不亚于用as 模拟出来的效果,具体效果请看下面的演示: 点击这里下载源文件 首先我们需要准备两张如图1和图2 所示的两张静态图片,图片内容为一团烟雾即可,一张亮些,另一张暗一点,熟悉fireworks 的朋友可以

Spark不是唯一,三种新兴的开源数据分析工具

物联网带来了众多传感器及其他设备,它们在生成源源不断的数据流,而物联网只是推动市场需要新型分析工具的重大趋势之一.比如需要流数据分析工具来改善药物发现,美国宇航局和搜寻外星文明研究所(SETI)甚至在开展合作,分析数TB复杂的外太空无线电信号流. 虽然Apache Spark在数据分析领域抢走了许多风头,那是由于IBM及其他公司在这方面投入了数十亿美元的研发资金,但几个藉藉无名的开源项目也在迅速崛起.下面是值得探讨的三种新兴的数据分析工具. 1.Grappa 大大小小的企业组织正在致力于研究从数

Apache Spark 之外的三种新兴的开源数据分析工具

在数据分析方面,影响深远的变化正在酝酿之中,而开源工具在引领许多变化.当然,你可能已熟悉这个领域的一些明星开源项目,比如 Hadoop 和 Apache Spark,不过现在出现了强烈的要求,需要全面完善数据分析生态系统的新工具.值得注意的是,许多这些工具是为了处理流数据而定制的. 物联网带来了众多传感器及其他设备,它们在生成源源不断的数据流,而物联网只是推动市场需要新型分析工具的重大趋势之一.比如需要流数据分析工具来改善药物发现,美国宇航局和搜寻外星文明研究所(SETI)甚至在开展合作,分析数

PHP 无限分类三种方式 非函数的递归调用!_php技巧

php无限分类大致有三种方式, 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat.程序实现比较简单: 3.第三种不是太了解, 好像要使用到算法和数据结构进行排列. 今天我主要分享下第二种方式,一开始也是找了很多资料,确实比较难理解.不过最终还是给搞明白了,因此记下随笔,希望通过这篇文章能够帮助到大家. 一.数据库设计: 复制代码 代码如下: -- -- Table structure

Ajax的三种形式(开源项目)

ajax|项目   1 大大减少了服务器端和客户端的数据流量,不像submit-responce时代需要参杂大量的html脚本. 2 丰富了客户端的相应,例如表单子段的提示输入,数据验证.多级列表的实现.树桩菜单的动态加载等等 需要注意的事:Ajax设计时候一定要考虑用户界面事件触发的无序性.1 对一些有写操作的地方,要根据情况实行界面锁定功能,即提交完成前,不可以进行其他操作.2 任何操作都要给用户 Load... 这样的提示 Ajax的三种形式 1 最原始的XMLHTTPRepuest方式,

云计算的详细认知及三种云的分类

云计算称得上是最近20年以来IT行业创造的最令人激动且最具有颠覆性的新技术,它甚至于比大型主机向客户端或服务器架构的迁移还要更具备颠覆性.不论是IT服务的交付模式,还是企业消费的这些IT服务的形式,都因为云计算的诞生而改变.中国用户也正在快速应对新架构带来的变革,在此笔者将与各位分享有关云计算的思考,以及思杰如何定义各种类型的云计算模式. 云计算是什么以及不是什么? 首先我们来看一下Gartner 对云计算的定义:"Gartner认为云计算是一种计算方式,它允许通过互联网以'服务'的形式向外部用

Hadoop和大数据:60款顶级开源工具

虽然此文尽力做到全面,但难免遗漏,欢迎大家补充,点击文末右下角"写评论",分享你的观点. 说到处理大数据的工具,普通的开源解决方案(尤其是Apache Hadoop)堪称中流砥柱.弗雷斯特调研公司的分析师Mike Gualtieri最近预测,在接下来几年,"100%的大公司"会采用Hadoop.Market Research的一份报告预测,到2011年,Hadoop市场会以58%的年复合增长率(CAGR)高速增长:到2020年,市场产值会超过10亿美元.IBM更是非