16
Mrina Natarajan
Open source in China

Do you like free stuff? Automated, open source tools supported by the developer community are the stuff of dreams. Here’s a list of more than 60 of the best open source tools to help you get DevOps right.



First, development tools

Version control & Collaborative development

1. Version control system Git

Git is an open source distributed version control system designed to handle project version management from very small to very large projects efficiently and quickly.

2. Code hosting platform GitLab

GitLab is an open source application developed using Ruby on Rails to implement a self-hosted Repository of Git projects that can be accessed via a Web interface to both public and private projects.

3. Code review tool Gerrit

Gerrit is a free, open source code review software that uses a web interface. With web browsers, software programmers on the same team can review each other’s modified code and decide whether to submit, send it back, or continue making changes. It uses Git as the underlying version control system.

Mercurial version control system

Mercurial is a lightweight distributed version control system implemented in Python that is easy to learn, easy to use, and extensible.

5. Version control system Subversion

Subversion is a version control system that uses a branch management system as opposed to RCS and CVS. Subversion is designed to replace CVS. Most free version control services on the Internet are based on Subversion.

6. Version control system Bazaar

Bazaar is a distributed version control system, distributed under the GPL license and available for Windows, GNU/Linux, Unix, and Mac OS systems.

Automated build and test

1.Apache Ant

Apache Ant is a tool that automates the steps of compiling, testing, and deploying software, mostly for software development in a Java environment.

2.Maven

In addition to its application-building capabilities, Maven also provides advanced project management tools that Ant lacks. Because of the high reusability of Maven’s default build rules, simple projects can often be built with two or three lines of Maven build scripts, as opposed to a dozen lines with Ant. In fact, due to Maven’s project-oriented approach, many Apache Jakarta projects now use Maven, and the percentage of corporate projects adopting Maven continues to grow.

3.Selenium (SeleniumHQ)

Thoughtworks is a powerful tool for integrated testing.

4.PyUnit

The Python Unit Testing Framework, or PyUnit for short, is The Python version of JUnit designed by two clever guys, Kent Beck and Erich Gamma.

5.QUnit

QUnit is the unit testing framework for jQuery.

6.JMeter

JMeter is an open source project organized by Apache. It is a functional and performance testing tool implemented 100% in Java.

7.Gradle

Gradle is a build system that uses Groovy to write build scripts. It supports dependency management and multiple projects, similar to Maven but simpler and lighter.

8.PHPUnit

PHPUnit is a lightweight PHP testing framework. It is a complete port of the JUnit3 series under PHP5 and is part of the xUnit family of testing frameworks (all based on the design of pattern pioneer Kent Beck).

Continuous integration & Delivery

1.Jenkins

Jenkins, formerly Hudson, is a scalable continuous integration engine.

2.Capistrano

Capistrano is a tool for executing the same command on multiple machines in parallel, used to install an entire batch of machines. It was originally developed to distribute Rails applications.

3.BuildBot

BuildBot is the software most needed for a system’s automated build/test cycle to verify code changes. Reduce unnecessary failures by automatically rebuilding and testing every time something changes before construction is quickly identified.

4.Fabric

Fabric8 is an open source Java Containers(JVMs) deep management integration platform. Fabric8 makes it easy to automate, configure, and manage operations from a central location consistent with UI and UX. Fabric8 also provides non-functional requirements such as configuration management, service discovery failover, centralized monitoring, automation, and more.

Tinderbox

5.Travis CI

Travis CI is a cloud-based continuous integration project that currently supports most major languages: C, PHP, Ruby, Python, Nodejs, and more.

6.Continuum

Apache Continuum is one of the newest CI servers and a new entrant worth watching. The Web-based interface makes it easy to configure projects. And there’s no need to install a Web server, because Continuum has a Jetty Web server built in. Also, Continuum runs as a Windows service and helps a lot by embedding context-sensitive documents in some parts of the application.

7.LuntBuild

LuntBuild is a powerful automated build tool. Continuous building of the system is easy with a clean Web interface.

8.CruiseControl

CruiseControl is a framework for continuous build applications (continuous project integration) that includes an email notification plug-in, Ant, and various CVS tools. CruiseControl provides a Web interface that allows you to view current compilation status and history status at any time.

9.Integrity

Integrity is a continuous integration server developed by Ruby.

10.Gump

Gump is an Apache integration tool. It is written in Python and fully supports Apache Ant, Apache Maven, and other software building tools.

11.Go

Go is a compiled, concurrent, garbage collection programming language developed by Google.

Deploy tools

(I) Container 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 distribute them to any popular Linux machine, as well as virtualization.

2.Rocket

Rocket (also known as RKT) is a container engine from CoreOS that, like Docker, helps developers package applications and dependencies into portable containers, making it easier to deploy in environments.

3.Ubuntu(LXC)

LXD is a refactoring of Ubuntu based on LXC technology, and the container naturally supports non-privileged and distributed. LXD is different from Docker in that Docker is PAAS and LXD is IAAS. The LXC project consists of a Linux kernel patch and some userspace tools. These Userspace tools use new kernel features added by the patch to provide a simplified set of tools for maintaining containers.

(2) 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 all of the individual elements normally clustered in different files, such as users, CRON jobs, and hosts together obviously discrete elements, such as wrappers, services, and files.

3.CFengine

Cfengine(Configuration Engine) is a Unix administration tool designed to automate simple administrative tasks and make difficult ones easier. Cfengine is designed to manage a variety of environments, from a single host to a cluster of tens of thousands of hosts.

4.Bash

Bash is the default shell for most Linux systems and Mac OS X V10.4. It runs on most Unix-style operating systems and has even been ported to Microsoft Windows Cygwin to implement the POSIX virtual interface of Windows. It has also been ported to MS-DOS by the DJGPP project.

5.Rudder

Rudder has changed its name to Flannel and provides a subnet for every machine using Kubernetes. This means that each host in the Kubernetes cluster has its own complete subnet. For example, machines A and B can have 10.0.0.0/24 and 10.0.0.0/24 subnets.

Powershell 

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. Users can operate any number of servers through the CLI or web UI, greatly reducing the threshold for server automation.

7.Saltstack

Saltstack can be seen as an enhanced version of Func + a weakened version of Puppet. Written in Python. Very easy to use and fast to deploy on EPEL. Salt is an open source tool for managing your infrastructure, easily managing thousands of servers.

8.Ansible

Ansible provides the easiest way to publish, manage, and orchestrate computer systems in minutes. Ansible is a model-driven configuration manager that supports multi-node publishing and remote task execution. By default, SSH is used for remote connection. There is no need to install additional software on the managed nodes and can be extended using a variety of programming languages.

(3) Micro-service platform

1.OpenShift

OpenShift is a platform as a Service (PaaS) launched by Red Hat for open source developers. OpenShift enables developers to build, test, run, and manage their applications by giving them more choices in languages, frameworks, and the cloud.

2.Cloud Foundry

Cloud Foundry is the industry’s first open source PaaS Cloud platform launched by VMware on April 12, 2011. It supports multiple frameworks, languages, runtime environments, Cloud platforms and application services, enabling developers to deploy and scale applications in seconds without any infrastructure concerns.

3.Kubernetes

Kubernetes is an open source container cluster management system from Google Cloud Platform. Build a container scheduling service based on Docker. The system can automatically select a working container from a container cluster for use. The 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. It can run Hadoop, MPI, Hypertable, and Spark.

(4) Service opening

1.Puppet

Puppet, you can centrally manage every important aspect of your system using a cross-platform specification language that manages all of the individual elements normally clustered in different files, such as users, CRON jobs, and hosts together obviously discrete elements, such as wrappers, services, and files.

Razor

2.Docker Swarm

Docker Swarm is a Dockerized local cluster of distributed applications that optimize the utilization of host resources and fault tolerant services based on the features provided by Machine. Specifically, Docker Swarm allows users to create host resource pools that can run Docker Daemons, and then run Docker containers in the resource pools. Docker Swarm manages workloads and maintains 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 and Chef to create automated virtual environments.

4.Powershell

5.OpenStack Heat

Five, maintenance,

logging

1.Logstash

Logstash is a platform for the transfer, processing, management, and search of application logs and events. You can use it to centrally collect and manage application logs, providing a Web interface for queries and statistics.

2.CollectD

Collectd is a daemon that collects system performance and provides a mechanism for storing different values in various ways. For example, in an RRD file.

3.StatsD

StatsD is a simple network daemon based on node. js platform that listens for various statistics including counters and timers via UDP or TCP and sends aggregate information to back-end services such as Graphite.

Monitoring, warning & analysis

1.Nagios

Nagios is a monitoring system that monitors system health and network information. Nagios monitors specified local or remote hosts and services, provides exception notification, and so on.

2.Ganglia

Ganglia is a distributed monitoring system for cross-platform scalable, high-performance computing systems such as clusters and grids. It is based on a layered design and it 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 combinable; Provide a monitoring agent, an event handler and document APIs; Design for the cloud; Sensu’s modern architecture allows monitoring of a large-scale dynamic infrastructure, with the ability to monitor thousands of globally distributed machines and services through a complex public network; A welcoming community.

4.zabbix

Zabbix is an enterprise-level open source solution that provides distributed system monitoring and network monitoring capabilities based on a Web interface.

5.ICINGA

Project ICINGA was developed by Michael Luebben, HendrikB? Cker and JoergLinge, who are both members of the existing Nagios project community committee, promised that the new open source project would be fully compatible with previous Nagios applications and extensions.

6.Graphite

Graphite is an open source project for collecting real-time information and statistics of websites, which can be used to collect a variety of website service operating status information. Graphite services have an average of 4,800 update operations per minute.

7.Kibana

Kibana is a Web interface for log analysis for Logstash and ElasticSearch. It can be used for efficient search, visualization, analysis and other operations on logs.

Above, if there is any other supplement can share with you in the comments!