DevOps Glossary: Open source tools for automation, configuration management and CI

By Flux7 Labs
January 31, 2014

And some Glossary treat for the weekend. Check out how well you know DevOps terms!

Chef – Chef, a configuration management tool by Opscode, is an automation platform that revamps infrastructure into simple code. It helps to automate configuration, deployment and scaling of servers and applications, irrespective of whether the server or application is in the cloud, on site or a combination of both. Chef runs in two modes: Client/Server and standalone configuration. It is written in Ruby and Erlang.

Puppet – Puppet is an IT automation software by Puppet Labs that aids management of an infrastructure throughout its lifecycle. It provides automation and management, right from provisioning and configuration to start with until orchestration and reporting. Puppet helps automation, deployment and scaling of applications in the cloud or on site and follows the Client/Server model. It is written in Ruby.

Ansible – Ansible is an orchestration engine by AnsibleWorks that provides a framework for system automation. It aids multi–node deployment, ad hoc task execution and configuration management. It requires no special software, either for deployment or operation. Ansible allows use of customized modules written in any programming language, and allows integration points for numerous plugins. For security, it uses the authentication system of the operating system. It is written in Python.

Salt – Salt is a configuration management application by SaltStack 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.

CloudFormation – CloudFormation is an AWS service that helps create and manage AWS resources. It also supports resource provisioning and orderly updating. CloudFormation creates a template that helps describe AWS resources and all related dependencies needed to run an application. It manages the order of AWS resource provisioning .

Capistrano – Capistrano is an open source remote server automation tool used primarily for deployment of web applications. It helps to automate default tasks, including application deployment on more than one server, as well as database changes. Capistrano allows code copying from a source control repository to a server, and it aids pre- and post-deployment functions. It is written in Ruby.

Juju – Juju is a cloud infrastructure automation tool by Canonical. It helps configure, deploy, manage and scale applications that are on a public, private or hybrid cloud. It comes in two versions—command–line interface and Webapp. Juju is written in Python.

Vagrant – Vagrant is an open source tool used for creating and configuring Virtual Development Environments. It enables sharing of pre–configured virtual machines among users, thereby allowing use of a common development environment. Vagrant supports projects written in PHP, Python, Java, C# and Javascript. It’s written in Ruby.

LXC – LXC (LinuX Container) is an operating system–level virtualization method that allows multiple isolated Linux systems to run as a single host that acts as the controller. Virtualization is not provided through Virtual machines, but rather through a virtual environment with a process set and network space. Each isolated system gets its own directory structure, network devices, IP addresses and process table. It’s written in C, Python, Shell and LUA.

Docker – Docker is an automation tool by Docker, Inc., that automates application deployment inside software containers. It’s a tool that helps package an application and its dependencies as a virtual container. Docker is written in Go programming language.

Jenkins – Jenkins is an open source continuous integration server. It features 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 notifications of those changes. It is written in Java.