Wen/ Esdk
Before introducing DevOps tools, follow the code flower to understand: what is DevOps?
Devops= "Development" + "Operations".
In short, devops is used primarily for development, testing, communication between operations, collaboration and integration, reducing friction between development and operations, enabling rapid deployment of software or applications, and rapid detection.
As a small white, you may have to ask: So, what is DevOps, a software or a form of existence?
Wrong!!! DevOps is neither software nor Web sites, nor code, but a set of methods, processes, and systems collectively.
DevOps encompasses a number of good ideas and principles that encourage collaboration between the development and operations departments. In a devops environment, developers and system administrators build relationships, processes, and tools to better engage with customers and ultimately deliver better services.
With a quick overview of what DevOps is all about, take a look at these 60 best open source tools to help you implement DevOps well.
(click on the image to see a larger image)
first, development toolsversion Control & Collaborative Development
1. Version control system Git
Git is an open source distributed version control system for efficient, high-speed processing of project versioning from very small to very large.
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 be accessed through a web interface for public or private projects.
3. Code review Tool Gerrit
Gerrit is a free, open source code review software that uses a Web interface. Using a Web browser, the same team of software programmers can review each other's revised program code, 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 extensibility.
5. Version control system Subversion
Subversion is a version control system, relative to the RCS, CVS, using the branch management system, it is designed to replace CVS. The free version Control service on the Internet is based 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.
second, automated construction and testing
1. Apache Ant
Apache Ant is a tool that automates the process of software compilation, testing, deployment, and so on, mostly for software development in the Java environment.
2. Maven
In addition to its program building capabilities, Maven offers advanced project management tools that are missing from Ant. Because MAVEN's default build rules are highly reusable, it is often possible to build a simple project with two or three rows of maven building scripts, while using ANT requires more than 10 rows. 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 Unit Testing framework), referred to as Pyunit, is the JUnit python version designed by Kent Beck and Erich Gamma, the two clever guys.
5, Qunit
Qunit is the unit test framework for JQuery.
6, JMeter
JMeter is an Apache-organized open source project, which is a tool for functional and performance testing, and 100% is implemented in Java.
7, Gradle
Gradle is a build system that can use Groovy to write build scripts that support dependency management and multi-project, like Maven, but it's simpler and lighter.
8, PHPUnit
PHPUnit is a lightweight PHP testing framework. It is a complete transplant of the JUNIT3 series version under the PHP5, a member of the Xunit Test framework family (both of which are based on the design of model pioneer Kent Beck).
iii. Continuous Integration & Delivery
1. Jenkins
Jenkins, formerly known as Hudson, is an extensible, continuous integration engine.
2, Capistrano
Capistrano is a tool for parallel execution of the same command on multiple machines, 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 compile/test cycle to validate code changes. By automatically rebuilding and testing what has changed every time, reduce unnecessary failures before building is quickly identified.
4. Fabric
Fabric8 is an open source Java Containers (JVMs) deep management integration platform. With Fabric8, you can easily automate, configure, and manage from a consistent central location, both UI and UX. FABRIC8 also offers a number of non-functional requirements, such as configuration management, service discovery failover, centralized monitoring, automation, and more.
5. Travis CI
Travis CI is a cloud-based, continuous integration project that currently supports most 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 entry for attention. A WEB-based interface makes configuration items easy. Also, you do not need to install a Web server because Continuum has a built-in Jetty Web server.
And, Continuum can run as a Windows service, and it also provides a lot of help by embedding context-sensitive documents in some parts of the application.
7, Luntbuild
Luntbuild is a powerful auto-built tool. A simple web interface makes it easy to build the system continuously.
8, CruiseControl
CruiseControl is a framework for continuous build programs (Project continuous Integration), which includes an email notification plugin, Ant and a variety of CVS tools. CruiseControl provides a web interface to view the current compilation status and historical status at any time.
9, Integrity
Integrity is a continuous integration server developed by Ruby.
10, Gump
Gump is an integrated tool for Apache. It is written in Python, full support for Apache Ant, Apache Maven, and other software build tools.
11. Go
Go is a compiled, hair-style, and garbage-collected programming language developed by Google.
Iv. Deployment ToolsContainer Platform
1. Docker
Docker is an open-source application container engine that allows developers to package their applications and dependencies into a portable container, and then publish them to any popular Linux machine or virtualize them.
2, Rocket
Rocket (also known as RKT) is a container engine launched by CoreOS, similar to Docker, which helps developers to package applications and dependencies into portable containers, simplifying deployment tasks such as environments.
3. Ubuntu (LXC)
LXD is a refactoring of Ubuntu based on LXC technology, which naturally supports non-privileged and distributed containers. LXD and Docker have different ideas, Docker is Paas,lxd is IAAS. The LXC project consists of a Linux kernel patch and some userspace tools.
These userspace tools use the new kernel features added by patches to provide a simplified set of tools to maintain the container.
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 every important aspect of your system using a cross-platform specification language that manages the individual elements that are typically clustered in different files, such as users, cron jobs, and hosts that are clearly discrete elements, such as wrappers, services, and files.
3, CFengine
Cfengine (Configuration engine) is a Unix management tool designed to automate simple administrative tasks and make difficult tasks easier. The Cfengine is suitable for managing a variety of environments, from one host to tens of thousands of host machines.
4. Bash
Bash is the default shell for most Linux systems and Mac OS X v10.4, which can run on most UNIX-style operating systems and even be ported to the Cygwin system 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. This means that each host in the Kubernetes cluster has its own full 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 a variety of 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 seen as a weakened version of the enhanced +puppet version of Func. Written using Python. Very easy to use and fast to deploy based on Epel. Salt is an open source tool for managing your infrastructure and can easily manage thousands of servers.
8, Ansible
Ansible provides one of the simplest ways to publish, manage, and orchestrate a computer system, and you can do it in a few minutes. Ansible is a model-driven Configuration manager that supports multi-node publishing and remote task execution. SSH is used by default for remote connections. There is no need to install additional software on managed nodes, which can be extended using a variety of programming languages.
Micro-Service platform
1, OpenShift
OpenShift is a platform-as-a-service (PaaS) opened by Red Hat for open source developers. OpenShift enables developers to build, test, run, and manage their applications by providing developers with more choices in languages, frameworks, and the cloud.
2. Cloud Foundry
Cloud Foundry is the industry's first open source PAAs cloud platform, launched on April 12, 2011, that supports a broad range of frameworks, languages, runtime environments, cloud platforms, and application services, enabling developers to deploy and scale applications within seconds. No need to worry about any infrastructure issues.
3, Kubernetes
Kubernetes is an open source container cluster Management system from the Google cloud platform. A scheduling service that builds a container based on Docker. The system can automatically select a working container for use in a container cluster. Its core concept is the Container Pod.
4, Mesosphere
Apache Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications or frameworks that can run Hadoop, MPI, hypertable, and Spark.
Service Opening
1, Puppet
Puppet, you can centrally manage every important aspect of your system using a cross-platform specification language that manages the individual elements that are typically clustered in different files, such as users, cron jobs, and hosts that are clearly discrete elements, such as wrappers, 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 capabilities 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 automated virtual environments using Chef.
4. Powershell
5. OpenStack Heat
Five, maintenanceLog Records
1, Logstash
Logstash is a platform for application logging, event transfer, processing, management, and search. You can use it to unify the collection management of the application log, providing a WEB interface for querying and statistics.
2, COLLECTD
COLLECTD is a daemon (daemon) process used to collect system performance and provide a variety of storage methods to store different value mechanisms. In the form of an RRD file, for example.
3, STATSD
STATSD is a simple network daemon that listens to various statistics, including counters and timers, and sends aggregated information to backend services, such as Graphite, based on the node. JS platform, via UDP or TCP.
vi. Monitoring, warning & analysis
1. Nagios
Nagios is a monitoring system that monitors the system's operational status and network information. Nagios can monitor the specified local or remote host and service, as well as provide exception notification functionality.
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, RRDtool for data storage and visualization.
3, Sensu
Sensu is an open-source monitoring framework. Main features: highly composable; Provides a monitoring agent, an event handler, and document APIs; designed for the cloud; Sensu's modern architecture allows monitoring of large-scale dynamic infrastructures and the ability to monitor thousands of globally distributed machines and services through complex public networks; a passionate community.
4, Zabbix
Zabbix is an enterprise-class open source solution that provides distributed system monitoring and network monitoring capabilities based on a web interface.
5, ICINGA
The ICINGA project was initiated by people such as 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 that collects real-time information and statistics on the website, which can be used to collect various website service running status information. The graphite service has an average of 4,800 update operations per minute.
7, Kibana
Kibana is a WEB interface that provides log parsing for Logstash and ElasticSearch. It can be used to efficiently search, visualize and analyze logs.
(For more information about, please follow developer community,own open door:don't ask me what I call, others call me Lei Feng )
N Free devops Open source tools, no use, at least understand!