All Blogs

30 DevOps Terms You Need to Know

January 14, 2019

Development and operations (DevOps) covers a wide range of functions – everything from software development to quality assurance to configuration management to infrastructure. Now, let’s take a look at 30 terms and definitions to help you better understand DevOps.

  1. Agent

An agent is a program installed on a physical server, and it executes various server processes.

  1. Agile Software Development

Agile refers to an iterative set of software development best practices. The top priorities related to agile software development include software quality, user feedback and the ability to “fail fast” and implement rapid changes as needed.

  1. Autonomy

Autonomy involves self-governance. An autonomous DevOps team empowers each member to act based on the situation and resources available – all without the need to defer to a superior.

  1. Behavior-Driven Development

Behavior-driven development is a form of software development that involves ongoing communication between developers, business analysts, quality assurance teams and others. It promotes constant communication and helps key stakeholders work together to achieve common software development goals.

  1. Branching

Branching refers to a programming technique in which a source code copy is used to create two versions of software. This enables the source code to be modified by two developers at the same time.

  1. Capacity Test

A capacity test allows a DevOps team to determine the maximum number of end users an application, computer or server can handle before it crashes.

  1. Complex-Adaptive System

A complex-adaptive system consists of an IT platform or project that includes multiple components. In this system, each component interacts with others in ways that cannot be accurately predicted or controlled.

  1. Configuration Drift

Configuration drift occurs when a hardware or software infrastructure configuration changes from a recovery or secondary configuration. It may occur due to inconsistent configuration items across a set of computers or devices.

  1. Configuration Management

Configuration management refers to a systems engineering process for creating and maintaining product consistency. It involves management of a product’s performance, function and physical attributes relative to its design and requirements.

  1. Containerization

Containerization refers to the use of virtual software containers that include operating system resources, memory and services to run an application or service. It often helps a developer test production flows for services deployed in the cloud.

  1. Continuous Delivery

Continuous delivery is a software engineering approach that involves the use of short, frequent cycles to produce software.

  1. Continuous Deployment

Continuous deployment involves the use of an automated software code test. If code passes this test, the software automatically moves into a production environment.

  1. Continuous Integration

Continuous integration is a software engineering practice that involves merging developer code changes into a single repository. Once continuous integration is complete, the merged code is used to automate software builds and tests.

  1. Continuous Quality

Continuous quality involves the integration of software quality reviews into the continuous delivery pipeline. It requires quality assurance team members to review software code as soon as it becomes available, as well as address any potential code issues during the software development cycle.

  1. Continuous Testing

Continuous testing refers to the execution of automated tests as part of the software delivery pipeline. It enables a DevOps team to obtain feedback it can use to identify potential risks before software is publicly released.

  1. Deployment

Deployment describes all of the activities performed before software is publicly released.

  1. Event-Driven Architecture

Event-driven architecture is a form of software architecture that involves the creation of events by a system; the system then uses these events to identify or consume similar occurrences in the future.

  1. Exploratory Testing

Exploratory testing is a strategy that provides human software testers with the ability to analyze different areas of a piece of software. It empowers human software testers with the flexibility to test potential software issues that may otherwise go undetected during automated tests.

  1. Infrastructure-as-a-Service (IaaS)

IaaS refers to a form of cloud computing that involves the use of virtualized computing resources over the internet.

  1. Integration Testing

Integration testing involves the evaluation of myriad software components. During an integration test, software components are combined and analyzed as a single group.

  1. Mean Time Between Failures (MTBF)

MTBF is commonly used to measure hardware component or system reliability. It is calculated as an average of the time between hardware component or system failures.

  1. Mean Time to Recovery (MTTR)

MTTR refers to the average time it takes to return to production status after a hardware component or system fails.

  1. Microservices

Microservices, aka microservices architecture, refer to a software development methodology that involves building single-function modules with clearly defined interfaces and operations.

  1. Model-Based Testing

Model-based testing requires the use of test cases derived from visual models that represent the desired behavior of a particular system or environment. It is commonly used to generate manual tests, test data and automated tests.

  1. Pair Programming

Pair programming is a software development technique in which two developers simultaneously work on a single feature. It promotes collaboration, as both developers can analyze each other’s code to bolster overall code quality.

  1. Platform-as-a-Service (PaaS)

PaaS is a form of cloud computing services that involves the use of a platform to develop, run and control applications. With PaaS, a third-party provider delivers hardware and software tools to end users via the internet.

  1. Technical Debt

Technical debt is a programming concept related to the implied cost of extra development work. A DevOps team may build technical debt if it implements a solution that delivers short-term results versus a long-term solution that requires additional time to produce.

  1. Test Automation

Test automation involves the use of software to perform tests and compare actual and predicted test outcomes.

  1. Unit Testing

Unit testing is a software testing methodology in which each part of an application (unit) is evaluated individually.

  1. Virtual Machine (VM)

A VM is a computer file that acts like a computer system. It runs like a typical computer program and replicates the system experience.

Ultimately, DevOps enables an organization to quickly and efficiently produce applications, products and services. With a clear understanding of key DevOps terms and definitions, an organization can optimize its DevOps results.