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.
Four, deployment work
(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!
If you want to learn more about Linux knowledge systems, you can take a look at the hundreds of knowledge systems we spent over a month organizing hundreds of hours:
“Linux cloud computing from entry to master” Linux learning entry tutorial series combat notes