构建DevOps落地的自动化持续交付流水线的工具链

DevOps流程涉及到需求管理(包括需求的任务管理、进度管理等)、持续集成、版本管理、代码编译、测试、配置管理和监控等多项工作任务。DevOps需要构建相应的工具链,将工作任务自动化,才能实现自动化的持续交付流水线。

在这条工具链上,有多种工具可供选择,本文列举了可实现各工作领域工作自动化的主流工具。

 

一、需求管理

需求是软件的“源头”,对需求的管理、跟踪,也是对软件项目的管理。典型的工具包括:

1JIRA

澳大利亚Atlanssian公司的产品,支持任务管理、计划管理、图标报告。

2Kanboard,看板工具。

将故事卡片进行可视化,使用不同颜色区分不同类型的故事卡,将日常工作可视化。

支持拖拽。

引入在制品概念,提供在制品WIPWork In Process)列,通过设定WIP上限数量,暴露问题,解决问题,从而提升交付速率和质量。

3Rally

2个版本:

1)社区版(Community Edition),基于敏捷和精益的项目管理模式。免费试用版提供10个用户、5个项目同时使用。

2)无限版(Unlimited Edition),基于云平台。15天试用,不限用户数。

 

二、持续集成

1Jenkins

实现软件的自动化编译、测试、部署。

引入Pipeline概念,实现了工作流即代码(Pipeline as Code)。

2Bamboo

澳大利亚Atlanssian公司的产品,实现持续集成、持续部署、持续交付的工具。

30天试用版。

3Travis CI

可无缝的构建、测试GitHub上的项目。

通过.travis.yml文本文件实现工作流即代码(Pipeline as Code)的管理。

 

三、版本管理

版本是发布的基石,所有与发布相关的内容都需要版本管理。

1Git

开源的分布式版本管理系统,基于数据设计存储。

2GitHub

基于WebGit仓库服务,是一个中央协作平台,当前托管了大量项目,可以使用GitHub进行开发、代码评审、bug跟踪等。

提供网页版的图形界面和桌面集成。

3GitLab

类似GitHub,同时提供Wiki知识库功能和bug跟踪功能。

4Subversion

Apache许可证下的集中式开源版本管理工具,包含了CVS所有的功能。

5Mercurial

跨平台的分布式版本管理系统,支持windowsUnixFreeBSDMacOSLinux),使用Python语言开发。

 

四、编译工具

1Ant

实现软件编译过程自动化,最早用于2000年的Apache Tomcat项目开发。

使用Java语言开发。

无法简便的支持频繁修改依赖关系的项目。

2Maven

意思是知识的累加器,最早用于Java项目的自动化构建,功能单一。

3Gradle

Android Studio内置的封装部署工具,它改进了Ant Maven的缺点。

4MSBuild

.NET框架下的构建工具,Visual Studio依赖MSBuild。使用Visual StudioIDE生成项目,MSBuild的项目文件会自动生成。

 

五、配置管理

1chef对公司的服务器进行流水线式的任务配置和维护,能集成到主流云平台,如AWSOpen StackAzure

2Puppet

提供了一套标准的操作方式,实现软件的交付和维护

支持UnixWindow

3Ansible

集成了多节点部署、执行ad hoc任务、配置管理功能

特别适合集群管理的机器。

Redhat收购后,商业版Ansible Tower可以进行自动扩容、管理复杂的部署操作,工作流可以将配置的步骤可视化展示出来。

 

六、测试

1Junit

针对Java代码级的单元测试工具

2Selenium

支持多语言的测试脚本:JavaC#GroovyPerlPHPPythonRubby

基于UI的测试,支持多种浏览器

支持移动应用测试,通过驱动,可以对Android IOSUI进行测试

3Cucumber

自动化验收测试,用户行为驱动开发模式(BDD)的测试工具。采用Given-When-then的格式创建一个.feature文件,包含给定的执行条件,Cucumber执行这个文件即完成一个测试用例。

测试用例的执行报告可以通过JunitJunitreport模块生成。

4FitNesse

自动化验收测试+web服务器+wiki,需求可以直接通过web浏览器的方式创建和修改,即wiki。在FitNesse里创建的需求,可以被FitNesse自动执行。

 

七、监控

1Nagios

监控网络、系统、基础架构(主机、磁盘、进程)、节点

2Zabbix

企业级健康,可监控上万台服务器、虚拟机的性能和状态。

 

2017-11-27

你可能感兴趣的:(DevOps,自动化测试)