There are 60 kinds of DevOps "weapons", which ones do you use?

Pre-editor's note : Automation, open source tools supported by the developer community are what everyone dreams of. Here are more than 60 of the best open source tools that can help you implement DevOps well.



image


One, development tools


Version control & collaborative development


1. Version control system Git


Git is an open source distributed version control system for effective and high-speed processing of version management from very small to very large projects.


2. Code hosting platform GitLab


GitLab is an open source application developed with Ruby on Rails, which implements a self-hosted Git project repository, which can access public or private projects through a web interface.


3. Code review tool Gerrit


Gerrit is a free, open source code review software that uses a web interface. Using a web browser, software programmers in the same team can review each other's modified program code and decide whether to submit, return or continue to modify. It uses Git as the underlying version control system.


4. Version control system Mercurial


Mercurial is a lightweight distributed version control system, implemented in Python language, easy to learn and use, and strong in scalability.


5. Version control system Subversion


Subversion is a version control system. Compared with RCS and CVS, it adopts a branch management system. Its design goal is to replace CVS. Most of the free version control services on the Internet are based on Subversion.


6. Version control system Bazaar


Bazaar is a distributed version control system. It is released under the GPL license and can be used on Windows, GNU/Linux, Unix and Mac OS systems.


2. Automated construction and testing


1.Apache Ant


Apache Ant is a tool that automates software compilation, testing, deployment and other steps. It is mostly used for software development in the Java environment.


2.Maven


In addition to its ability to build programs, Maven also provides advanced project management tools that Ant lacks. Because Maven's default build rules are highly reusable, a simple project can often be built with two or three lines of Maven build scripts, while using Ant requires more than a dozen lines. In fact, due to Maven's project-oriented approach, many Apache Jakarta projects now use Maven, and the proportion of company projects adopting Maven continues to grow.


3.Selenium (SeleniumHQ)


A powerful tool for integration testing from Thoughtworks.


4.PyUnit


The Python unit testing framework, PyUnit for short, is a Python version of JUnit designed by two smart guys, Kent Beck and Erich Gamma.


5.QUnit


QUnit is jQuery's unit testing framework.


6.JMeter


JMeter is an open source project organized by Apache. It is a tool for function and performance testing, 100% implemented in java.


7.Gradle


Gradle is a build system that can use Groovy to write build scripts, supports dependency management and multi-projects, similar to Maven, but simpler and lighter than it.


8.PHPUnit


PHPUnit is a lightweight PHP testing framework. It is a complete porting of JUnit3 series versions under PHP5, and is a member of the xUnit test framework family (they are all based on the design of pattern pioneer Kent Beck).


Three, continuous integration & delivery


1.Jenkins


The predecessor of Jenkins is Hudson, which is an extensible continuous integration engine.


2.Capistrano


Capistrano is a tool used to execute the same command on multiple machines in parallel, used to install a whole batch of machines. It was originally developed to publish Rails applications.


3.BuildBot


BuildBot is the most needed software for a system's automated compilation/testing cycle to verify code changes. By automatically rebuilding and testing what changes every time, unnecessary failures are reduced before the construction is quickly identified.


4.Fabric


fabric8 是开源 Java Containers(JVMs) 深度管理集成平台。有了 fabric8 可以非常方便的从 UI 和 UX 一致的中央位置进行自动操作,配置和管理。fabric8 同时提供一些非功能性需求,比如配置管理,服务发现故障转移,集中化监控,自动化等等。


Tinderbox


5.Travis CI


Travis CI 是一个基于云的持续集成项目, 目前已经支持大部分主流语言了,比如:C,PHP,Ruby,Python,Nodejs等等。


6.Continuum


Apache Continuum 是最新的 CI 服务器之一,也是值得关注的一个新进入者。基于 Web 的界面使得配置项目很容易。而且,还不需要安装 Web 服务器,因为 Continuum 内置了 Jetty Web 服务器。并且,Continuum 可以作为 Windows 服务运行,还在应用程序的某些部分嵌入了上下文敏感的文档,从而提供了很多帮助。


7.LuntBuild


LuntBuild 是一个强大自动构建的工具。通过一个简洁的web接口就可以很容易地进行系统的持续构建。


8.CruiseControl


CruiseControl 是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。CruiseControl提供了一个Web接口,可随时查看当前的编译状况和历史状况。


9.Integrity


Integrity 是 Ruby 开发的持续集成服务器。


10.Gump


Gump 是 Apache 的整合工具。它以 Python 写成、完全支持 Apache Ant、Apache Maven 等等软件组建工具。


11.Go


Go 是 Google 开发的一种编译型,并发型,并具有垃圾回收功能的编程语言。


四、部署工具


(一)容器平台


1.Docker


Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。


2.Rocket


Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 类似,帮助开发者打包应用和依赖包到可移植容器中,简化搭环境等部署工作。


3.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 适用于管理各种环境,从一台主机到上万台主机的机群均可使用。


4.Bash


Bash 是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。


5.Rudder


Rudder 已改名为Flannel,为每个使用 Kubernetes 的机器提供一个子网。也就是说 Kubernetes 集群中的每个主机都有自己一个完整的子网,例如机器 A 和 B 可以有 10.0.1.0/24 和 10.0.2.0/24 子网。


Powershell  


6.RunDeck


RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。


7.Saltstack


Saltstack 可以看做是func的增强版+Puppet的弱化版。使用Python编写。非常好用,快速可以基于EPEL部署。Salt 是一个开源的工具用来管理你的基础架构,可轻松管理成千上万台服务器。


8.Ansible


Ansible 提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。


(三)微服务平台


1.OpenShift


OpenShift 是由红帽推出的一款面向开源开发人员开放的平台即服务(PaaS)。 OpenShift通过为开发人员提供在语言、框架和云上的更多的选择,使开发人员可以构建、测试、运行和管理他们的应用。


2.Cloud Foundry


Cloud Foundry 是VMware于2011年4月12日推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。


3.Kubernetes


Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。


4.Mesosphere


Apache Mesos 是一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行Hadoop、MPI、Hypertable、Spark。


(四)服务开通


1.Puppet


Puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件。


Razor


2.Docker Swarm


Docker Swarm 是一个Dockerized化的分布式应用程序的本地集群,它是在Machine所提供的功能的基础上优化主机资源的利用率和容错服务。具体来说,Docker Swarm支持用户创建可运行Docker Daemon的主机资源池,然后在资源池中运行Docker容器。Docker Swarm可以管理工作负载并维护集群状态。


3.Vagrant


Vagrant 是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境。它使用 Oracle 的开源 VirtualBox 虚拟化系统,使用 Chef 创建自动化虚拟环境。


4.Powershell


5.OpenStack Heat


五、维护


日志记录


1.Logstash


Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。


2.CollectD


collectd 是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以RRD 文件形式。


3.StatsD


StatsD is a simple network daemon based on the Node.js platform. It listens to various statistical information, including counters and timers, via UDP or TCP, and sends aggregated information to back-end services, such as Graphite.


6. Monitoring, warning & analysis


1.Nagios


Nagios is a monitoring system that monitors system operation status and network information. Nagios can monitor specified local or remote hosts and services, and provide exception notification functions.


2.Ganglia


Ganglia is a cross-platform scalable, distributed monitoring system under high-performance computing systems, such as clusters and grids. It is based on a layered design, it uses a wide range of technologies, such as XML data representation, portable data transmission, and RRDtool for data storage and visualization.


3. Make sense


Sensu is an open source monitoring framework. Main features: Highly composable; Provides a monitoring agent, an event processor and document APIs; Designed for the cloud; Sensu's modern architecture allows monitoring of large-scale dynamic infrastructures, capable of monitoring thousands of global distributions through complex public networks -Style machines and services; enthusiastic community.


4.zabbix


zabbix is ​​an enterprise-level open source solution that provides distributed system monitoring and network monitoring functions based on a web interface.


5.ICINGA


The ICINGA project was initiated by Michael Luebben, Hendrik Böcker, and Joerg Linge. They are all members of the existing Nagios project community committee. They promised that the new open source project will be fully compatible with previous Nagios applications and extended functions.


6.Graphite


Graphite is an open source project used to collect real-time website information and statistics. It can be used to collect information on the running status of various website services. The Graphite service has an average of 4800 update operations per minute.


7. Kibana


Kibana is a log analysis web interface for Logstash and ElasticSearch. You can use it to perform efficient search, visualization, analysis and other operations on the log.


Guess you like

Origin blog.51cto.com/15065848/2575842