原文地址:http://www.360doc.com/content/16/0322/07/31263000_544210096.shtml

随着开发运维一体化的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来进行沟通和自动化的分析。

本文参考了以下文章和相关材料:

(1)60best open source tools to do DevOps

https://elasticbox.com/blog/devops-open-source-tools/

(2)PERIODICTABLE OF DEVOPS TOOLS

https://xebialabs.com/periodic-table-of-devops-tools/

(3)7New Tools Java Developers Should Know

http://blog.takipi.com/7-new-tools-java-developers-should-know/

(4)8more cool tools for devops success

http://www.infoworld.com/article/3031009/devops/8-more-cool-tools-for-devops-success.html

 

作者介绍  陈能技

  • 2016全球敏捷运维峰会特邀嘉宾。

  • 【DBA+社群】专家,新炬网络首席APM架构师。

  • 14年开发测试与质量架构经验,擅长DevOps及APM、Docker、持续集成、持续交付在企业中的落地实施。

  • 著有《软件性能测试诊断分析与优化》、《软件自动化测试成功之道》、《深入浅出性能测试与LoadRunner实战》等书。

全球敏捷运维峰会【杭州站】

 

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

  1. 60个DevOps开源工具,你在用哪些?

    你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的.这里列举了 60 多款最棒的开源工具,可以帮助你很好的实行 DevOps. 一.开发工具 版本控制&协作开发 1.版 ...

  2. Jenkins学习总结(5)——免费DevOps开源工具简介

    一:开发工具 1.版本控制系统 Git Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 2.代码托管平台 GitLab GitLab是一个利用Ruby on ...

  3. 版本管理工具Git三种工作流

    Git是分布式版本管理控制的工具.学习Git一般都是先去学习Git的命令. 但是学习完Git的基本命令之后还是不知道怎样使用Git.首先,我们要清楚的 一点是Git的使用方法其实有很多种,也就是说Gi ...

  4. DevOps 开源工具

    1. 开发工具 版本控制&协作开发 版本控制系统 Git Git 是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.开源中国 Git 代码托管平台:http:/ ...

  5. SEM关键词的三种分类方式

    关键词分类是为了使sem账户搭建结构清晰便于管理关键词.基于对需求人群的深入分析,每个账户都有其独特的分类方式,比如招商加盟行业更多的是地域分类,品牌类企业通常用词性分类即可,而冷门行业用人群分类比较 ...

  6. 15个私有云上的 DevOps 开源工具

    原文:http://www.sohu.com/a/136276885_262549 在可维护性,可靠性,效率和安全性方面,DevOps 为私有云在改进操作流程方面发挥着重要的作用.私有云是一个由许多硬 ...

  7. 15个私有云上的DevOps 开源工具

    本文由来:之前工作需要,在查找运维自动化资料时,发现了这篇文章的英文原版,觉得很不错.它综合的介绍了哪些工具,我们运维人员需要掌握,并且如何进行结合其它工具一起使用.给了一些指导性的意见.由于是英文的 ...

  8. Ring0打开其他设备对象三种方式整理

    1.通过ZwCreateFile打开其他设备的Handle,此函数只能得到句柄.ZwCreateFile与NtCreateFile区别在于NtCreateFile更加底层,ZwCreateFile是基 ...

  9. 关于EF的三种分类----CodeFirst

    新建StudentInfo.cs using System; using System.Collections.Generic; using System.ComponentModel.DataAnn ...

随机推荐

  1. 扫面线+线段树(hdu1542)

    之前写过这个算法,时间长了就忘掉了,,现在不看书自己努力回想起来,对算法的理解,对线段树的理解感觉也更深了一点(可能心理作用,哈哈哈) 思路简单说一下吧 从做到右遍历每一条矩阵的边(左右边),看该边对 ...

  2. [JSOI2009] 有趣的游戏

    1444: [Jsoi2009]有趣的游戏 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1800  Solved: 645[Submit][Statu ...

  3. POJ 2785 4 Values whose Sum is 0(哈希表)

    [题目链接] http://poj.org/problem?id=2785 [题目大意] 给出四个数组,从每个数组中选出一个数,使得四个数相加为0,求方案数 [题解] 将a+b存入哈希表,反查-c-d ...

  4. [LOJ6208]树上询问

    题目大意: 有一棵n节点的树,根为1号节点.每个节点有两个权值ki,ti,初始值均为0. 给出三种操作: 1.Add(x,d)操作:将x到根的路径上所有点的ki←ki+d 2.Mul(x,d)操作:将 ...

  5. iOS音频的后台播放总结

     在没有网络的情况下,音频的后台播放比较简单,google一下可以搜到很多资料,但是如果每次歌曲的请求都是通过网络,就不成了,有时可以也扛不了几首,这里总结下实现方法,可以实现像电台一样的功能,后台播 ...

  6. 一致性hash-java实现treemap版

    把不同号段的数据储存在不同的机器上,以用来分散压力.假如我们有一百万个QQ号,十台机器,,如何划分呢? 最简单粗暴的方法是用QQ号直接对10求余,结果为0-9 分别对应上面的十台机器.比如QQ号为 2 ...

  7. linux-系统资源查看-动态

    1.top 2.sar http://blog.csdn.net/hguisu/article/details/7493661  很重要 http://blog.itpub.net/24435147/ ...

  8. 我的一次Postgre数据库Insert 、Query性能优化实践

    一.前言 以前的系统由于表设计比较复杂(多张表,表与表直接有主从关系),这个是业务逻辑决定的. 插入效率简直实在无法忍受,必须优化.在了解了Postgre的Copy,unlogged table 特性 ...

  9. jmeter 部署问题。

    -D  systemproperty 1.双网卡机器设置 执行 jmeter-server  -Djava.rmi.server.hostname=189.61.143.199 2.在Beanshel ...

  10. 自动生成logo的网址

    1.https://www.logaster.com/logo/