Wen/ Esdk 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Before introducing the DevOps tool, follow the code flower to understand the following: DevOps is a what. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Devops= "Development" + "Operations". 
 
 
 
 
 
 
 
 In short, devops is used primarily for development, testing, operational communication, collaboration, and consolidation, reducing friction between development and operations, rapidly deploying software or applications, and rapid detection. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 As a small white, you may have to ask: that, devops in the end is what kind of existence form, is a software or what. 
 
 
 
 
 
 
 
 Wrong... DevOps is neither a software, nor a Web site, not a code, but a group of methods, processes and systems collectively. 
 
 
 
 
 
 
 
 DevOps contains a number of good ideas and principles that encourage collaboration between the development sector and the operation and maintenance departments. In a devops environment, developers and system administrators build relationships, processes, and tools to better interact with customers and ultimately provide better services. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 With a simple understanding of what DevOps is, let's take a look at the 60 best open source tools below to help you implement DevOps well. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 (Click on the picture to see the big picture) 
 
 
 
 
 
 
 
 first, development tools version Control & Collaborative Development 
 
 
 
 
 
 
 
 1, Version control system Git 
 
 
 
 
 
 
 
 Git is an open source distributed version control system for efficient, high-speed processing from very small to very large project versioning. 
 
 
 
 
 
 
 
 2. Code Hosting Platform Gitlab 
 
 
 
 
 
 
 
 Gitlab is an open source application developed using Ruby on Rails to implement a self hosted Git project repository that can access public or private projects through the Web interface. 
 
 
 
 
 
 
 
 3. Code review Tool Gerrit 
 
 
 
 
 
 
 
 Gerrit is a free, open source code review software that uses the Web interface. With web browsers, software programmers from the same team can review each other's modified code and decide whether to submit, return, or continue to modify it. 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 scalability. 
 
 
 
 
 
 
 
 5, Version control system Subversion 
 
 
 
 
 
 
 
 Subversion is a version control system, relative to the RCS, CVS, the use of branch management system, its design goal is to replace CVS. The free version Control service on the Internet is based more on subversion. 
 
 
 
 
 
 
 
 6, Version control system Bazaar 
 
 
 
 
 
 
 
 Bazaar is a distributed version control system that is published under the GPL License agreement and can be used for Windows, Gnu/linux, Unix, and Mac OS systems. 
 
 
 
 
 
 
 
  II. Automated construction and testing 
 
 
 
 
 
 
 
 1, Apache Ant 
 
 
 
 
 
 
 
 Apache Ant is a tool that links the steps of software compilation, testing, and deployment to automate software development in the Java environment. 
 
 
 
 
 
 
 
 2. Maven 
 
 
 
 
 
 
 
 In addition to its program-building capabilities, Maven provides advanced project management tools that are missing from Ant. Because MAVEN's default build rules are highly reusable, it is often possible to build simple projects with two or three of maven build scripts, while using ANT requires more than 10 lines. In fact, because of MAVEN's project-oriented approach, many Apache Jakarta projects now use MAVEN, and the proportion of company projects using MAVEN continues to grow. 
 
 
 
 
 
 
 
 3, Selenium (SELENIUMHQ) 
 
 
 
 
 
 
 
 ThoughtWorks is a powerful tool for integrated testing of the company. 
 
 
 
 
 
 
 
 4, Pyunit 
 
 
 
 
 
 
 
 The Python Unit test framework (the Python Testing Framework), abbreviated as Pyunit, is the JUnit Python version of the two smart Guys, Kent Beck and Erich Gamma. 
 
 
 
 
 
 
 
 5, Qunit 
 
 
 
 
 
 
 
 Qunit is a unit testing framework for JQuery. 
 
 
 
 
 
 
 
 6, JMeter 
 
 
 
 
 
 
 
 JMeter is an open source project for the Apache organization, which is a tool for functional and performance testing, 100% of which is implemented in Java. 
 
 
 
 
 
 
 
 7, Gradle 
 
 
 
 
 
 
 
 Gradle is the build system that can use Groovy to write build scripts, support dependency management and multiple projects, similar to Maven, but easy and lightweight. 
 
 
 
 
 
 
 
 8, PHPUnit 
 
 
 
 
 
 
 
 PHPUnit is a lightweight PHP testing framework. It is a complete transplant of the JUNIT3 series under PHP5 and is a member of the Xunit Test framework family (they are all based on the design of the model pioneer Kent Beck). 
 
 
 
 
 
 
 
  Third, continuous integration & delivery 
 
 
 
 
 
 
 
 1, Jenkins 
 
 
 
 
 
 
 
 The predecessor of Jenkins is Hudson, which is an extensible continuous integration engine. 
 
 
 
 
 
 
 
 2, Capistrano 
 
 
 
 
 
 
 
 Capistrano is a tool for parallel execution of the same commands on multiple machines, used to install a whole batch of machines. It was originally developed to publish Rails applications. 
 
 
 
 
 
 
 
 3, Buildbot 
 
 
 
 
 
 
 
 Buildbot is a system that automates the compilation/testing cycle of the most needed software to validate code changes. By automatically rebuilding and testing things that have changed every time, before building is quickly identified, reduce unnecessary failures. 
 
 
 
 
 
 
 
 4. Fabric 
 
 
 
 
 
 
 
 Fabric8 is the open source Java containers (JVMs) depth management integration platform. With Fabric8, it is easy to automate, configure, and manage from the UI and the UX-consistent central location. Fabric8 also provides some non-functional requirements, such as configuration management, service discovery failover, centralized monitoring, automation, and so on. 
 
 
 
 
 
 
 
 5, Travis CI 
 
 
 
 
 
 
 
 Travis CI is a continuous integrated project based on cloud, which now supports most of the mainstream languages, such as: C,php,ruby,python,nodejs and so on. 
 
 
 
 
 
 
 
 6, Continuum 
 
 
 
 
 
 
 
 Apache Continuum is one of the newest CI servers and a new entrants to pay attention to. web-based interfaces make it easy to configure projects. Also, there is no need to install a Web server because the continuum has a built-in Jetty Web server. 
 
 
 
 
 
 
 
 Also, Continuum can run as a Windows service and provide a lot of help by embedding context-sensitive documents in parts of the application. 
 
 
 
 
 
 
 
 7, Luntbuild 
 
 
 
 
 
 
 
 Luntbuild is a powerful tool for automatic building. A simple web interface makes it easy to build a system continuously. 
 
 
 
 
 
 
 
 8, CruiseControl 
 
 
 
 
 
 
 
 CruiseControl is a framework for continuous build programs (continuous integration of projects) that includes an email notification plugin, ant, and a wide variety of CVS tools. CruiseControl provides a web interface that allows you to view current compilation and history situations at any time. 
 
 
 
 
 
 
 
 9, Integrity 
 
 
 
 
 
 
 
 Integrity is a continuous integration server for Ruby development. 
 
 
 
 
 
 
 
 10, Gump 
 
 
 
 
 
 
 
 Gump is the Apache integration tool. It is written in Python, fully supports Apache Ant, Apache Maven, and so on software build tools. 
 
 
 
 
 
 
 
 11, go 
 
 
 
 
 
 
 
 Go is a compiled, styled, and garbage-collected programming language developed by Google. 
 
 
 
 
 
 
 
  iv. Deployment Tools container platform 
 
 
 
 
 
 
 
 1, Docker 
 
 
 
 
 
 
 
 Docker is an open source application container engine that allows developers to package their apps and dependencies into a portable container, and then publish it to any popular Linux machine or virtualization. 
 
 
 
 
 
 
 
 2, Rocket 
 
 
 
 
 
 
 
 Rocket (also known as RKT) is a container engine launched by CoreOS, which is similar to Docker, helping developers pack applications and rely on packages to portable containers to simplify the deployment of environments. 
 
 
 
 
 
 
 
 3, Ubuntu (LXC) 
 
 
 
 
 
 
 
 LXD is a refactoring of Ubuntu based on LXC technology, and the container naturally supports non privileged and distributed. LXD and Docker ideas are different, Docker is Paas,lxd is IAAS. The LXC project consists of a Linux kernel patch and some userspace tools. 
 
 
 
 
 
 
 
 These userspace tools provide a simplified set of tools to maintain the container using the new kernel features added by the patch. Configuration Management 
 
 
 
 
 
 
 
 1, Chef 
 
 
 
 
 
 
 
 Chef is a system integration framework that provides configuration management capabilities for the entire architecture. 
 
 
 
 
 
 
 
 2, Puppet 
 
 
 
 
 
 
 
 Puppet, you can centrally manage each of the important aspects of your system using a Cross-platform specification language that manages the individual elements that are usually aggregated in different files, such as users, cron jobs, and the host together apparently discrete elements, such as packaging, services, and files. 
 
 
 
 
 
 
 
 3, CFengine 
 
 
 
 
 
 
 
 The Cfengine (configuration engine) is a Unix management tool designed to automate simple management tasks and make difficult tasks easier. Cfengine is suitable for the management of various environments, from a host to tens of thousands of mainframe machines can be used. 
 
 
 
 
 
 
 
 4. Bash 
 
 
 
 
 
 
 
 Bash is the default shell for most Linux systems and Mac OS X v10.4, it can run on most UNIX-style operating systems, and even ported to Cygwin systems on Microsoft Windows. To implement the POSIX virtual interface for Windows. In addition, it was ported to MS-DOS by the DJGPP project. 
 
 
 
 
 
 
 
 5, Rudder 
 
 
 
 
 
 
 
 Rudder has been renamed Flannel to provide a subnet for each machine that uses kubernetes. That is to say, each host in the Kubernetes cluster has its own complete subnet, such as machines A and B can have 10.0.1.0/24 and 10.0.2.0/24 subnets. 
 
 
 
 
 
 
 
 6, Rundeck 
 
 
 
 
 
 
 
 Rundeck is an Open-source tool written in Java/grails that helps users automate operations and processes in a data center or cloud environment. Through the command line or Web interface, users can operate on any number of servers, greatly reducing the threshold for server automation. 
 
 
 
 
 
 
 
 7, Saltstack 
 
 
 
 
 
 
 
 Saltstack can be viewed as a weakening version of Func's enhanced +puppet version. Written using Python. Very handy and can be deployed quickly based on Epel. Salt is an open source tool for managing your infrastructure, and can easily manage thousands of servers. 
 
 
 
 
 
 
 
 8, Ansible 
 
 
 
 
 
 
 
 Ansible provides the easiest way to publish, manage, and orchestrate a computer system, which you can do in a few minutes. Ansible is a model-driven Configuration manager that supports Multi-node publishing and remote task execution. Use SSH for remote connections by default. There is no need to install additional software on the managed nodes, which can be extended using a variety of programming languages. Micro Service Platform 
 
 
 
 
 
 
 
 1, OpenShift 
 
 
 
 
 
 
 
 OpenShift is an open platform for open source developers, a service (PaaS), launched by Red Hat. OpenShift enables developers to build, test, run, and manage their applications by providing developers with more choices on languages, frameworks, and clouds. 
 
 
 
 
 
 
 
 2, Cloud Foundry 
 
 
 
 
 
 
 
 Cloud Foundry is the industry's first open source PAAs cloud platform launched on April 12, 2011, which supports multiple frameworks, languages, runtime environments, cloud platforms, and application services, enabling developers to deploy and extend applications within seconds. No need to worry about any infrastructure problems. 
 
 
 
 
 
 
 
 3, Kubernetes 
 
 
 
 
 
 
 
 Kubernetes is an open source container cluster Management system from Google cloud platform. To construct a container scheduling service based on Docker. The system can automatically select a working container in a container cluster for use. Its core concept is Container Pod. 
 
 
 
 
 
 
 
 4, Mesosphere 
 
 
 
 
 
 
 
 The Apache Mesos is a cluster manager that provides effective resource isolation and sharing across distributed applications or frameworks, running Hadoop, MPI, hypertable, and Spark. Service Opening 
 
 
 
 
 
 
 
 1, Puppet 
 
 
 
 
 
 
 
 Puppet, you can centrally manage each of the important aspects of your system using a Cross-platform specification language that manages the individual elements that are usually aggregated in different files, such as users, cron jobs, and the host together apparently discrete elements, such as packaging, services, and files. 
 
 
 
 
 
 
 
 2, Docker Swarm 
 
 
 
 
 
 
 
 Docker Swarm is a local cluster of dockerized distributed applications that optimizes the utilization of host resources and fault-tolerant services based on the functionality provided by machine. Specifically, Docker swarm enables users to create a pool of host resources that can run Docker Daemon, and then run the Docker container in the resource pool. Docker swarm can manage workloads and maintain cluster status. 
 
 
 
 
 
 
 
 3, vagrant 
 
 
 
 
 
 
 
 Vagrant is a Ruby based tool for creating and deploying virtualized development environments. It uses Oracle's Open-source VirtualBox virtualization system to create an automated virtual environment using CHEF. 
 
 
 
 
 
 
 
 4, Powershell 
 
 
 
 
 
 
 
 5, OpenStack Heat Five, maintenance log record 
 
 
 
 
 
 
 
 1, Logstash 
 
 
 
 
 
 
 
 Logstash is a platform for application log, event transmission, processing, management, and search. You can use it to unify the collection management of application logs, providing WEB interfaces for querying and counting. 
 
 
 
 
 
 
 
 2, COLLECTD 
 
 
 
 
 
 
 
 COLLECTD is a daemon (daemon) process that collects system performance and provides mechanisms for storing different values in various storage ways. For example, in the form of RRD files. 
 
 
 
 
 
 
 
 3, STATSD 
 
 
 
 
 
 
 
 STATSD is a simple network daemon, based on the Node.js platform, listens to various statistics via UDP or TCP, including counters and timers, and sends aggregated information to back-end services, such as graphite. Vi. Monitoring, Warning & analysis 
 
 
 
 
 
 
 
 1, Nagios 
 
 
 
 
 
 
 
 Nagios is a monitoring system that monitors system operation status and network information. Nagios can monitor the specified local or remote host and service, as well as provide exception notification capabilities. 
 
 
 
 
 
 
 
 2, Ganglia 
 
 
 
 
 
 
 
 Ganglia is a cross-platform scalable, High-performance computing system for distributed monitoring systems, such as clusters and grids. It is based on layered design, which uses a wide range of technologies such as XML data representation, portable data transfer, and RRDtool for data storage and visualization. 
 
 
 
 
 
 
 
 3, sensu 
 
 
 
 
 
 
 
 Sensu is an open-source monitoring framework. Main features: Highly configurable, provides a monitoring agent, an event handler and document APIs, designed for the cloud; Sensu's modern architecture allows monitoring of large-scale dynamic infrastructure and the ability to monitor thousands of of globally distributed machines and services through complex public networks; enthusiastic community. 
 
 
 
 
 
 
 
 4, Zabbix 
 
 
 
 
 
 
 
 Zabbix is an enterprise-class open source solution based on the Web interface that provides distributed system monitoring and network monitoring capabilities. 
 
 
 
 
 
 
 
 5, Icinga 
 
 
 
 
 
 
 
 The Icinga project was initiated by Michael Luebben, Hendrikb?cker and Joerglinge, who are members of the existing Nagios Project community Committee, who are committed to The new open source project will be fully compatible with previous Nagios applications and extended functionality. 
 
 
 
 
 
 
 
 6, Graphite 
 
 
 
 
 
 
 
 Graphite is an open source project for collecting real-time information and statistics of websites, which can be used to collect information about the running status of various Web services. The graphite service has an average of 4,800 update operations per minute. 
 
 
 
 
 
 
 
 7, Kibana 
 
 
 
 
 
 
 
 Kibana is a WEB interface for log analysis provided for Logstash and Elasticsearch. It can be used to efficiently search, visualize, analyze and perform various operations on the log. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 (more  information please pay attention to  developer community, own open door: don't ask my name, others call me Lei Feng)