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 development & operations-oriented approach. DevOps emphasizes people, tools 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 bring all inventory to central place, further 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 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 Python.
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 function as a controller. Virtualization is not provided through virtual machines, but 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 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.
Kubernetes – Kubernetes, which is also referred to as K8s, is an open-source platform for automating the deployments, scaling, and management of the container applications. K8s gives freedom of running the opensource platform anywhere, i.e., on-premises, public cloud, private cloud infrastructure, letting you effortlessly shuffle the workloads anywhere based on the business\technical needs.