The Essential DevOps Terms You Need to Know

| March 21, 2016 | 0 Comments

New to the DevOps world and looking to get a grip on some of the industry’s key terms? Search no further. This short list of Essential DevOps Terms will serve as a foundation from which you can build your understanding of the industry’s tools and methodologies.


DevOpsPic

 

Agile

A precursor to Devops; Agile is a software development and, more broadly, business methodology that emphasizes short, iterative planning and development cycles to provide better control and predictability and support changing requirements as projects evolve.

DevOps

DevOps (development and operations) is a software development phrase used to describe a type of agile relationship between Development and IT Operations. The goal of DevOps is to improve communication, collaboration, and processes between the various roles in the software development cycle, in order to improve and speed up software delivery.

Continuous Delivery

Continuous Delivery (CD) is a set of processes and practices that radically removes waste from your software production process, enables faster delivery of high-quality functionality and sets up a rapid and effective feedback loop between your business and your users.

Continuous Integration

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

Microservices

Microservices are software architecture design pattern, in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task. 

Release Orchestration

Release Orchestration is the use of tools like XL Release which manage software releases from the development stage to the actual software release itself. 

Provisioning

Provisioning is the process of preparing new systems for users (in a Continuous Delivery scenario, typically development or test teams). The systems are generally virtualized and instantiated on demand. Configuration of the machines to install operating systems, middleware etc. is handled by automated system configuration management tools, which also verify that the desired configuration is maintained.

Configuration Management

A term for establishing and maintaining consistent settings and functional attributes for a system. It includes tools for system administration tasks such as IT infrastructure automation.

Deployment Management

Deployment Management aims to plan, schedule and control the movement of releases to test and live environments.

Test-Driven Development (TDD)

A development practice in which small tests to verify the behavior of a piece of code are written before the code itself. The tests initially fail, and the aim of the developer(s) is then to add code to make them succeed. Check out Xebia Labs’ testing dashboard and analytics tool here.

Build Automation

Tools or frameworks that allow source code to be automatically compiled into releasable binaries. Usually includes code-level unit testing to ensure individual pieces of code behave as expected.

Unit Testing

Code-level (i.e., does not require a fully installed end-to-end system to run) testing to verify the behavior of individual pieces of code. Test-driven deployment makes extensive use of unit tests to describe and verify intended behavior.

Application Release Automation (ARA)

Tools, scripts or products that automatically install and correctly configure a given version of an application in a target environment, ready for use.

Canary Release

A go-live strategy in which a new application version is released to a small subset of production servers and heavily monitored to determine whether it behaves as expected. If everything seems stable, the new version is rolled out to the entire production environment.

Dark Launch

A go-live strategy in which code implementing new features is released to a subset of the production environment but is not visibly, or only partially, activated. The code is exercised, however, in a production setting without users being aware of it.

Regression Testing

Testing of the end-to-end system to verify that existing functionality has not been negatively impacted by changes to the application.


Feeling confident with these terms? Feel free to check out our Periodic Table of DevOps or DevOps Glossary if you want to learn about more terms, tools, and practices within DevOps.


Also published on Medium.


Alexander Moss-Bolaños

About the Author ()