你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的。这里列举了 n多款最棒的开源工具,可以帮助你很好的实行 devops。对的,生活不止有眼前的苟且,还有诗和远方的田野,当然,还有免费的devops开源工具。

标题一:开发工具
1.版本控制系统 git
git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
2.代码托管平台 gitlab
gitlab是一个利用ruby on rails开发的开源应用程序,实现一个自托管的git项目仓库,可通过web界面进行访问公开的或者私人项目。
3.代码评审工具 gerrit
gerrit是一个免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用git作为底层版本控制系统。
二:自动化构建和测试
1.apache ant
apache ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于java环境中的软件开发。
2.maven
maven 除了以程序构建能力为特色之外,还提供 ant 所缺少的高级项目管理工具。由于 maven 的缺省构建规则有较高的可重用性,所以常常用两三行 maven 构建脚本就可以构建简单的项目,而使用 ant 则需要十几行。事实上,由于 maven 的面向项目的方法,许多 apache jakarta 项目现在使用 maven,而且公司项目采用 maven 的比例在持续增长。
3.selenium (seleniumhq)
thoughtworks公司的一个集成测试的强大工具。
三:持续集成&交付
1.jenkins
jenkins 的前身是 hudson,它是一个可扩展的持续集成引擎。
2.capistrano
capistrano 是一个用来并行的在多台机器上执行相同命令的工具,使用用来安装一整批机器。它最初是被开发用来发布 rails 应用的。
四:部署工具
(一)容器平台
1.docker
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 linux 机器上,也可以实现虚拟化。
2.ubuntu(lxc)
lxd 是 ubuntu 基于 lxc 技术的重构,容器天然支持非特权和分布式。lxd 与 docker 的思路不同,docker 是 paas,lxd 是 iaas。lxc 项目由一个 linux 内核补丁和一些 userspace 工具组成。这些 userspace 工具使用由补丁增加的内核新特性,提供一套简化的工具来维护容器。
(二)配置管理
1.chef
chef 是一个系统集成框架,为整个架构提供配置管理功能。
2.puppet
puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, cron作业,和主机一起显然离散元素,如包装,服务和文件。
3.cfengine
cfengine(配置引擎)是一种 unix 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。cfengine 适用于管理各种环境,从一台主机到上万台主机的机群均可使用。
(三)微服务平台
1.openshift
openshift 是由红帽推出的一款面向开源开发人员开放的平台即服务(paas)。 openshift通过为开发人员提供在语言、框架和云上的更多的选择,使开发人员可以构建、测试、运行和管理他们的应用。
2.cloud foundry
cloud foundry 是vmware于2011年4月12日推出的业界第一个开源paas云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
(四)服务开通
1.puppet
2.docker swarm
docker swarm 是一个dockerized化的分布式应用程序的本地集群,它是在machine所提供的功能的基础上优化主机资源的利用率和容错服务。具体来说,docker swarm支持用户创建可运行docker daemon的主机资源池,然后在资源池中运行docker容器。docker swarm可以管理工作负载并维护集群状态。
五:维护
日志记录
1.logstash
logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 web 接口用于查询和统计。
2.collectd
collectd 是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以rrd 文件形式。
六:监控、警告&分析
1.nagios
nagios 是一个监视系统运行状态和网络信息的监视系统。nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。
2.ganglia
ganglia 是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如xml数据代表,便携数据传输,rrdtool用于数据存储和可视化。
====================================分割线================================