The DevOps Glossary: Open-Source Tools for Automation & Configuration Management
DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. It emphasizes people and culture while seeking to improve collaboration between operations and development teams.
With all the hype surrounding DevOps, understanding the lingo associated with this technology can be a challenge. Here’s a list of common terms—and definitions—to help you understand DevOps better:
Chef — A configuration management tool and an automation platform for DevOps that revamps infrastructure into simple code. A Chef helps automate configuration, deployment, and scaling of servers and applications, regardless of whether the server or application is in the cloud, on-site, or in a hybrid environment. Chef runs in two modes: Client/Server and standalone configuration, and it’s written in the Ruby programming language.
Puppet — An open-source IT automation software that aids management of an infrastructure throughout its lifecycle, from provisioning and configuration to orchestration and reporting. Puppet enables automation, deployment, and scaling of applications in the cloud and on-site, and it follows the Client/Server computing model. It is written in the Ruby programming language.
Salt — A configuration management application that handles remote execution of applications. Its purpose is to provide central system management. Salt provides a dynamic communication bus for infrastructures that can be used for orchestration, remote execution, and configuration management. It’s written in the Python programming language.
LXC — A LinuX Container (LXC) is an operating system–level virtualization method that allows multiple isolated Linux systems to run as a single host and act as a controller. Virtualization is not provided through virtual machines, but rather through a virtual environment with a process set and network space. Each isolated system has its own directory structure, network devices, IP addresses, and process table. LXE is fully written in user space and supports bindings in programming languages written in C, Python, Shell, and Lua.
Docker — An application deployment automation tool that resides inside software containers. It helps package an application and its dependencies as a virtual container. Docker is written in the Go programming language.
Jenkins — An open source continuous integration server featuring numerous plugins that support project building and testing. Jenkins monitors a version control system by maintaining a build system, monitoring it for changes, and providing appropriate change notifications. It is written in Java.