DevOps: The Blueprint to Operational Excellence
DevOps Terminology: A Glossary
A
Agent
A program that performs a small, specific task in the background. It is used to automate repetitive tasks.
Agile Software Development
A lightweight framework that promotes iterative development and incremental delivery using self-organizing cross-functional teams.
Application Release Automation (ARA)
ARA involves using tools, scripts, or products to achieve the consistent and repeatable process of packaging and deploying an update, feature, or application from development to production.
Artifact
An artifact is documentation or any deliverable associated with a project that helps to describe the function, architecture, and design of the software being developed.
Artificial Intelligence (AI)
AI simulates human intelligence in machines that are programmed to learn and problem-solve, among other things.
Autonomy
Autonomy refers to the ability to make decisions independently, without having to wait on or defer to someone higher up in the hierarchy.
B
Behavior-Driven Development (BDD)
BDD is an evolution of test-driven development (TDD) that focuses on how the software should behave rather than how that behavior is implemented. BDD tests are written in common language, allowing both technical and non-technical members of the team to describe the requirements of a software system in a collaborative manner.
Black Box Testing
A type of functional testing that involves testing the internal structure, design, and coding of software. It is distinguished from white box testing in that the internal design of the software is not known to the tester, and is therefore a “black box”.
Branching
Branching occurs when an object under review in source control is duplicated so that other developers can work on it concurrently.
Build Agent
A type of agent that sends and receives messages about handling software builds.
Build Artifact Repository
Build artifact repositories are used to store, organize and distribute artifacts (that is, binary files plus their metadata) in a single centralized location. This reduces the amount of time spent downloading dependencies from a public place and prevents inconsistencies by allowing development teams to find the right version of an artifact easily.
Build Automation
Build automation involves scripting and automating the process of compiling computer source code into binary code.
Business Analytics (BA)
Business analytics uses big data, statistical analysis, and data visualization to transform existing information into predictive insights that lead to improved planning.
Business Intelligence (BI)
Business intelligence combines business analytics, data mining, data visualization, data tools and infrastructure, and best practices to help organizations to make more data-driven decisions.
C
Canary Release
Derived from the phrase “canary in a coal mine”, the canary release functions in a similar manner. It is used to gradually introduce a software release to a small subgroup of users, making sure that it is safe and functional before being rolled out to the general populace.
Capacity Test
Capacity tests measures how many users or transactions an application can handle, providing a performance benchmark for that application.
Cloud Computing
Cloud computing is the delivery of compute power, database, storage, applications, and other IT resources via the internet (as opposed to your computer’s hard drive).
Cluster
A set of connected computers that work together to enable load balancing, auto scaling and high availability.
Commit
The process of pushing code to a source code repository and logging the changes that were made.
Complex-Adaptive System (CAS)
A system where perfect understanding of the individual components does not translate into a perfect understanding of the system’s behavior. Climate change, economic markets, and the human body are all prime examples of this.
Configuration Drift
Configuration drift occurs when servers in an organization’s infrastructure become more and more different over time, drifting away from their original intended state. Typically it is caused by changes to software or hardware that are not recorded or tracked consistently.
Configuration Management
Configuration management is the discipline of continuously monitoring and ensuring that organizational infrastructure is configured to the correct specifications. This maintains the integrity and consistency of a system or product throughout its lifetime.
Containerization
The natural evolution of virtualization, containerization treats each application as its own logically distinct server by virtualizing the operating system.
Containers
The natural evolution of virtualization, containerization treats each application as its own logically distinct server by virtualizing the operating system. Containers are immutable, meaning that no matter where you create it, on what hardware or underlying operating system, the container will work exactly the same.
Containers-as-a-Service (CaaS)
A cloud service model that offers container-based virtualization with container engines, orchestration and compute resources.
Continuous Delivery (CD)
An evolutionary outgrowth of continuous integration, continuous delivery is a set of processes and practices that automates the SDLC from build to testing, thereby enabling a rapid feedback loop between a business and its users. Together with continuous integration, it forms the modern CI/CD delivery pipeline.
Continuous Deployment (CDE)
Continuous deployment enables a development team to integrate code segments to the production environment several times per day. It is a fully automated version of continuous delivery.
Continuous Improvement
Continuous improvement is a philosophy with the objective of creating a culture that allows anyone on the team to make or suggest improvements to a product or process at any given time.
Continuous Integration (CI)
Continuous integration is a software development practice where developers are required to integrate code into a shared repository multiple times per day for the purpose of getting rapid feedback. Together with continuous delivery, it forms the modern CI/CD delivery pipeline.
Continuous Quality Improvement (CQI)
CQI is a quality management philosophy that organizations use to reduce waste, increase efficiency, and increase internal and external satisfaction.
Continuous Testing
Continuous testing aims to reduce waiting time for developers by testing early and often, and automating as much as possible.
D
Deployment
Deployment refers to all the processes involved in getting new software up and running properly in its environment. Typically this encompasses activities like installation, configuration, running, and testing.
DevOps
DevOps is a methodology that strives to improve collaboration and automate as much as possible, with the end goal of releasing software faster and more efficiently.
DevSecOps
DevSecOps involves incorporating security into all stages of the software development workflow instead of saving it for the last stage.
E
Event-Driven Architecture
A loosely coupled software architecture framework for application design where the capture, communication, processing, and persistence of events are at the very core of the solution design.
Everything as Code
Everything as code treats the entire system as code, meaning that everything from bare metal servers to deployment configurations is stored in a repository as code and can be recreated or rolled back to a past state with the click of a button.
Exploratory Testing
A type of testing that emphasizes testers freely discovering the capabilities of the software rather than following fixed methodologies.
F
Fail Fast
Fail fast is a software development mentality that emphasizes testing early and often, with the aim of quyickly determining whether an idea has value. It is a key tenet of agile methodology.
Functional Testing
A type of black-box testing where functions (also known as features) are tested by feeding them input and examining the output.
G
Governance
IT governance is a set of policies and procedures, usually set at the board or executive level, designed so that IT assets can provide maximum value to the company and its stakeholders.
H
Hybrid Cloud
A hybrid cloud spans at least one private and one public cloud, giving businesses the ability to seamlessly scale up their on-prem infrastructure to the public cloud to handle any overflow.
I
Infrastructure-as-a-Service (IaaS)
IaaS provides access to computing resources through a virtual server instance, which replicates the capabilities of an on-premise data center. It is elastic and scalable, which makes it practical for workloads that are temporary or unpredictable.
Infrastructure-as-Code (IaC)
IaC involves managing and storing your infrastructure in a repository as code, where it can be recreated or rolled back to a past state with the click of a button.
Integration Testing
The testing of a component or module of code to ensure it integrates correctly with other components or modules of code.
Issue Tracking
To record and follow the progress of every problem or “issue” that a user identifies until the problem is resolved.
K
Kanban
Kanban is a visual workflow management method that is commonly managed using a whiteboard layout, with tasks written on sticky notes that move from column to column.
L
Lead Time
The average amount of time needed for one feature request to make it through the entire development cycle from concept to delivery.
Lean
Lean aims to create more value for customers with fewer resources by identifying and eliminating waste.
Legacy Application
An outdated or obsolete software program that is difficult to transition away from due to time, money, or other challenges within the organization.
M
Machine Learning (ML)
Machine learning is a branch of artificial intelligence that gives computers the ability to learn without being explicitly programmed.
Mean Time Between Failures (MTBF)
MTBF is the average time that elapses between failures or breakdowns of a device. It is a way to measure reliability.
Mean Time to Recovery (MTTR)
MTTR is the average time that a device will take to recover from a failure, i.e. going from “down” to “available”.
Microservices Architecture
A new software design architecture that breaks apart monolithic systems into loosely coupled services which can be developed, deployed, and maintained independently. Each microservice is a discrete process that provides a unique business capability.
Model-Based Testing
A testing technique where test cases are automatically generated from models. A model is an abstraction of the real-world function and represents the expected behavior of the system.
Monolithic Architecture
A traditional software design architecture that is single-tiered, with tightly coupled components. This means that each component and its associated components must be present in order for code to be executed or compiled.
N
Non-Functional Testing
Non-functional testing is performed to confirm whether the system’s behavior meets non-functional requirements like usability and performance. It handles everything that is not covered by functional testing.
NoOps
NoOps (no operations) is the idea that automation can completely eliminate the need for a dedicated operations team.
O
Open Source
Software that makes its original source code freely available for people to use, share, and modify.
Out-of-the-Box
Features of a product that work immediately after installation without any configuration or modification.
P
Pair Programming
An agile software development method that involves two programmers working together at a single workstation. One programmer (the driver) writes code while the other (the observer) reviews it, with frequent role changes between the two.
Platform-as-a-Service (PaaS)
PaaS expands on the IaaS model by providing not only infrastructure through the cloud, but also middleware, development tools, business intelligence, database management systems and more.
Private Cloud
A private cloud serves the needs of a single organization. It’s often hosted on-prem and is optimized to fit a particular infrastructure use case.
Product Owner
The product owner has a leadership role in agile development and is responsible for managing the product backlog.
Production
Production, also known as live, is an environment where the application or feature is accessible to users.
Provisioning
The process of providing customers, users, employees, or IT personnel with access to data and technology resources.
Public Cloud
A public cloud is hosted by a cloud provider such as Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform. It provides on-demand cloud services that are pay-as-you-go.
R
Regression Testing
A type of software testing which verifies that existing software still performs the same way after being changed in some way (such as with software enhancements, patches, or configuration changes).
Release Management
Release management is the orchestration of software delivery activities and resources across multiple, interdependent releases and change initiatives.
Rollback
The process of returning a product or application back to a previous version. Usually this is done when the current version experiences problems or issues.
Root Cause Analysis
Root cause analysis is a systematic approach for identifying the underlying causes of problems or events. Its long-term goal is to understand why issues occur in order to prevent them from happening in the first place.
S
Scrum
Scrum is an agile project management framework that breaks the available work into discrete units and then works on them during periods called sprints. At the end of each sprint, the deliverable is a potentially releasable increment to the product.
Self-Service Deployment
Self-service deployment refers to situations where deployment is not fully automated. A single manual command can take push code from staging to production.
Shift-Left
Shift-left is the practice of testing earlier in the software delivery process. Rather than deferring thorny issues to an unknown later date, testers can improve quality by catching errors before they snowball or become critical.
Software-as-a-Service (SaaS)
SaaS hosts applications and makes them available to users over the internet.
Source Control
Source control (or version control) is a system that records changes to a file or set of files over time so that previous versions can be accessed and recalled later. It is useful for rollbacks and disaster recovery, among other things.
Sprint
A sprint is a defined work period, usually a month or less, in which a scrum team completes a discrete unit of work.
Staging Environment
A nearly exact replica of a production environment used to test codes, builds, and updates to make sure everything works properly before deployment.
T
Technical Debt
Refers to the rework that must be done when speedy delivery and easy implementation is prioritized over a better, but usually slower or more expensive, approach.
Test Automation
Allows testers to reuse tests in a repeatable process, thereby eliminating time-consuming and repetitive tasks. Test automation is crucial for agile and DevOps environments.
Test Environment
An environment that testing teams use to execute test cases and fix bugs prior to a release.
U
Unit Testing
Unit testing involves breaking down the code segments into small bitesize chunks or units of code or logic that can be quickly and easily tested.
User Acceptance Testing (UAT)
A type of software testing that verifies that a given application works for the user. During this process, actual users test the software to make sure it behaves as expected in real-world scenarios.
V
Value Stream Management
A new category that maps, optimizes, visualizes, and governs business value flow through heterogeneous enterprise software delivery pipelines.
Value Stream Mapping
A lean technique that relies on structured visualizations to get a holistic view of how work flows through systems. This is used to better understand and optimize the entire process of manufacturing a product, delivering a service, or developing a software program.
Virtual Machine (VM)
A software program or operating system that behaves like an actual computer. It reduces the need for physical hardware systems, thereby limiting costs.
W
Waterfall
Waterfall is a software development methodology where the software’s requirements are gathered at the beginning of a project, then executed upon in linear fashion, with the next phase beginning only when the previous one is complete.
White Box Testing
A software testing method that involves testing the internal structure, design, and coding of a piece of software. It is distinguished from black box testing in that code is visible or transparent to the tester, and is therefore a “white box”.