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)