DevOps.yoga


A DevOps Wiki

View project on GitHub

DevOps Glossary

Note: We have seeded the tool list with glossaries composed from several sources; click here to see those sources. However, we have modified some descriptions, so please refer back to those sites for the originals.

If there is a term you don’t see here, it may be in the tools section.


A

  • A/B Testing
    A technique in which a new feature, or different variants of a feature, are made available to different sets of users and evaluated by comparing metrics and user behavior.

  • Acceptance Testing
    Typically high-level testing of the entire system carried out to determine whether the overall quality of both new and existing features is good enough for the system to go to production.

  • Agent
    An agent is a program installed on specific physical servers in order to handle the execution of various processes on that server.

  • 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.

  • Agile Software Development
    A software development methodology and philosophy, focused on user feedback, software quality, and the ability to respond quickly to changes and new product requirements

  • ALB
    Application Load Balancing an AWS service used for splitting the incoming traffic between multiple application instances across multiple Availability Zones to ensure your app runs smoothly.

  • Amazon Aurora
    An AWS service, providing a cloud-based relational database, which became the most rapidly growing service in AWS history. This database is 5 times faster than MySQL and 3 times faster than PostgreSQL, not to mention it is a default database for many AWS products and services.

  • Amazon AWS
    Amazon Web Services the most popular cloud service provider (CSP) according to the aforementioned State of DevOps report of 2017, offering a wide variety of cloud computing services for businesses of all sizes.

  • Ansible
    A configuration management and automation tool for various IT tasks, such as cloud infrastructure provisioning and configuration. Ansible is an open source tool that interacts with multiple software modules via SSH connection, PowerShell scripts and various APIs.

  • Apache
    One of the most popular open source web servers (second only to NGINX), a cross-platform tool for launching websites and applications.

  • API
    Application Programming Interface, a set of clearly stated rules for communication between various software modules.

  • Application Release Automation (ARA)
    A practice of deploying software releases to various environments and their configurations with as little human interaction as possible.

  • Artifact
    Any description of a process used to create a piece of software that can be referred to, including diagrams, user requirements, and UML models.

  • Auto Scaling Group (ASG)
    An AWS service used for combining multiple EC2 instances in logical groups for the sake of infrastructure design and management simplicity; the group is comprised of identical instances that are added or removed to meet the workload demands.

  • Autonomy
    The ability to make changes with the resources currently available, without the need to defer to something or someone higher up in the hierarchy.

  • AWS Command Line Interface (CLI)
    An AWS tool for managing various AWS services and products from a command line terminal.


B

  • Back-end
    Software that the user has no direct access to. Receives requests from the user interface and performs certain operations, including loading and saving the data to the database, etc.

  • Backup
    A process of copying the important data to provide the reserve copy and enable restoration on demand, as well as the result of the backup process, an archive with files.

  • Bare-metal
    The case when software is installed on a physical device rather than a virtual one.

  • Bastion host
    A special server used to access private networks and withstand hacker attacks. Usually hosts a single app (like a proxy server) and SSH keys for accessing and managing the underlying cloud infrastructure.

  • Behavior-Driven Development (BDD)
    A development methodology that asserts software should be specified in terms of the desired behavior of the application, and with syntax that is readable for business managers.

  • Black Box Testing
    A testing or quality assurance practice which assumes no knowledge of the inner workings of the system being tested, and which thus attempts to verify external rather than internal behavior or state.

  • Branching
    The duplication of an object under review in source control so that the same code can be modified by more than one developer in parallel.

  • Bucket
    A logical unit in Amazon S3 (Simple Storage Service), used for storing multiple types of objects (mostly various data and the metadata that describes it).

  • Build
    A specific version of program code, mostly referred to as the stage of new feature development. The most important builds are Canary builds, where the new code is tested for compliance with the existing app functionality in the production environment before being shipped to the customers.

  • Build Agent
    A type of agent used in continuous integration that can be installed locally or remotely in relation to the continuous integration server. It sends and receives messages about handling software builds.

  • Build Artifact Repository
    A tool used to organize artifacts with metadata constructs and to allow automated publication and consumption of those artifacts.

  • 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.


C

  • 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.

  • Capacity Test
    A test that is used to determine the maximum number of users a computer, server, or application can support just before failing.

  • CI/CD
    Continuous Integration/Continuous Delivery is the basis of the modern DevOps culture. CI ensures the new code is committed to the centralized code repository several times a day to pass automated unit tests and spin up the new software builds. If the tests are successful, CD ensures the new app version is automatically pushed to staging and production environments, without any service downtime. CI/CD workflow ensures all the bugs are found and fixed early and the product is available at all times.

  • Cloud computing
    A popular IT paradigm where computing resources are hosted by a 3rd party, usually using virtual servers, in such a way that resources can be automatically scaled according to demand. The opposite of using a dedicated server or personal computer.

  • CloudWatch
    Amazon CloudWatch is the default Amazon service for monitoring the infrastructure and apps running on it. CloudWatch helps monitor and log the events, configure smart alerts and manage the system resources efficiently.

  • Commit
    The process of pushing software code to a version control Git repository, and the resulting piece of code pushed. Typically contains a cryptographic hash that uniquely identifies that commit. Commits may contain just a single line of code changed, or many changes in many files. Commits typically cannot be altered, so changing a commit requires creating a new one.

  • Complex-Adaptive Systems
    Any system made of a collection of similar, smaller pieces that are dynamically connected and can change to adapt to changes for the benefit of a macrostructure.

  • Configuration Drift
    A term for the general tendency of software and hardware configurations to drift, or become inconsistent, with the template version of the system due to manual ad hoc changes (like hotfixes) that are not introduced back into the template.

  • 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.

  • Containers
    Resource isolation at the OS (rather than machine) level, usually (in UNIX-based systems) in user space. Isolated elements vary by containerization strategy and often include file system, disk quota, CPU and memory, I/O rate, root privileges, and network access. Much lighter-weight than machine-level virtualization and sufficient for many isolation requirement sets.

  • Continuous Delivery (CD)
    Continuous Delivery 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 Deployment
    A software development practice in which every code change goes through the entire pipeline and is put into production automatically, resulting in many production deployments every day. It does everything that Continuous Delivery does, but the process is fully automated, and theres no human intervention at all.

  • Continuous Integration (CI)
    A software development process where a branch of source code is rebuilt every time code is committed to the source control system. The process is often extended to include deployment, installation, and testing of applications in production environments.

  • Continuous Quality
    A principle that preaches the continuous quest for quality across the entire SDLC, starting from requirements definition, code development, testing, and operations. Another key area of focus for Continuous Quality is the application code pipeline orchestration. There are many opportunities to negatively impact the quality of an application when code is being manually moved across environments.

  • Continuous Testing
    The process of executing unattended automated tests as part of the software delivery pipeline across all environments to obtain immediate feedback on the quality of a code build.

  • Cron job
    A scheduled process that will run a given program on a server at a set time.


D

  • 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.

  • Delivery Pipeline
    A sequence of orchestrated, automated tasks implementing the software delivery process for a new application version. Each step in the pipeline is intended to increase the level of confidence in the new version to the point where a go/no-go decision can be made. A delivery pipeline can be considered the result of optimizing an organizations release process.

  • Deployment
    A stage of the software delivery lifecycle, centered at packaging the new software code, delivering it to the customers and updating the running apps, preferably without interrupting the end user experience.

  • Deployment Pipeline
    A deployment pipeline is an automated manifestation of your process for getting software from version control into the hands of your users.

  • DevOps
    DevOps a term used to describe a type of agile relationship between Development and IT Operations (among other groups). 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 product delivery.

  • DevOps Intelligence
    Providing the intelligence and insight companies need to deliver software more efficiently, with less risk, and with better results.

  • DevOps tools
    A tool used to perform the requirements of modern DevOps practices.

  • Docker
    An open source platform for building, delivering and running app containers. Docker is the basis of modern cloud computing, as it allows to leverage the cloud resources with utmost efficiency, providing a ubiquitous layer for building the cloud infrastructure.

  • Docker Swarm
    A container orchestration engine developed by Docker. It is a built-in Docker container clustering and scheduling tool capable of running thousands of containers at once. Unfortunately, it cannot boast the same functionality as Kubernetes and is literally out of use as of mid-2018.

  • Dockerfile
    A textual description of the Docker container build process, containing all the commands required. Dockerfiles allow easy and efficient configuration and management of Docker container creation and launch.


E

  • Amazon Elastic Compute Cloud (EC2)
    The central offering of Amazon Web Services, providing multiple types of virtual servers for running applications in the cloud.

  • Amazon Elastic Kubernetes Service (EKS)
    A managed Amazon service that allows anyone to deploy and run Kubernetes on AWS infrastructure without the need to look under the hood and configure the clusters themselves.

  • ElasticSearch
    A RESTful, distributed engine for data search and analytics, built on Apache Lucene. As a heart of Elastic stack, Elasticsearch allows to store and process the data from multiple cloud monitoring and logging tools.

  • Environment
    All the server resources (OS, libraries, APIs, tools, and frameworks, etc.) needed to run software on various stages of its lifecycle (development, testing, staging, production).

  • Envoy
    A heavy-duty C++ proxy for processing the traffic between microservices.

  • Event-Driven Architecture
    A software architecture pattern where events or messages are produced by the system, and the system is built to react, consume, and detect other events.

  • Exploratory Testing
    A manual testing strategy where human testers have the freedom to test areas where they suspect issues could arise that automated testing wont catch.


F

  • Fail Fast
    A strategy in which you try something, it fails, feedback is delivered quickly, you adapt accordingly, and try again.

  • Amazon Fargate
    An AWS service for running Docker containers on managed infrastructure like EKS, without having to configure anything. It works under the serverless computing billing scheme you specify what needs to be done and pay for the resources consumed, without any manual cluster configuration.

  • FluentD
    An open source data collection and processing tool written in Ruby. It allows input from a huge variety of tools like ElasticSearch and provides output to a wide selection of dashboards configured with multiple plugins.

  • Functional Testing
    Testing of the end-to-end system to validate (new) functionality. With executable specifications, Functional Testing is carried out by running the specifications against the application.


G

  • Git
    A distributed code version control system. Every developer using Git has access to a full copy of the project code and history of changes to enable collaboration within the teams.

  • GitHub
    The most popular web-based hosting for code, running all Git features and adding its own functionality. GitHub is the beating heart of open-source and proprietary software development.

  • GitLab
    An open source web-based Git portal tuned for DevOps performance, due to the built-in support of CI/CD tools like Gitlab CI.

  • Gitlab CI
    A CI/CD runner for Gitlab, which allows the developers to build their code automatically after each commit.


H

  • Helm
    An application manager running atop Kubernetes. This tool allows managing the microservices at scale through convenient Helm charts and ensures smooth operations of complex Kubernetes infrastructures.


I

  • I/O throughput
    The number of input/output operations per second, a characteristic of data transfer capacity of a network or a drive.

  • Image
    Typically an immutable snapshot of a container or virtual machine, such as a Docker container image, or an Amazon Machine Image (AMI).

  • InfluxDB
    An open source database for processing time series events. It is written in Go and used in infrastructure monitoring, high-availability data storage, and real-time analytics. It works best with

  • Infrastructure
    The hardware, software, and processes required to run applications, as well as to collect, manage and store data. One of the most important benefits of DevOps practices is using the immutable infrastructure, which means that in case of error a clean state of infrastructure is launched immediately, rather than trying to fix the issue and suffering from downtime in the process.

  • Infrastructure as Code (IaC)
    A system configuration management technique in which machines, network devices, operating systems, middleware etc. are specified in a fully automatable format. The specification or blueprint is regarded as code that is executed by provisioning tools, kept in version control and generally subject to the same practices used for application code development.

  • Infrastructure as a Service (IaaS)
    An IT management model where computing, networking, and storage resources are provided as self-service, hosted products. Typically hosted on virtualized machines in the cloud and billed on a pay as you go basis. Users have full control of the resources, but may need to install and configure any required middleware and applications themselves.

  • Ingress controller
    A software module used to provide load balancing in Kubernetes pods.

  • Instance
    In short, this is a virtual machine you run your app on. In broader terms, this is a single group of resources needed to run an app (like a Docker container, for example).

  • Integration Testing
    Testing that occurs after unit testing, but before validation testing, where individual software components are combined and tested as a single group to ensure they work as a whole.

  • Issue Tracking
    A process that allows programmers and quality assurance personnel to track the flow of defects and new features from identification to resolution.


J

  • Jenkins
    A user-friendly open source Java web server and user interface, enabling Continuous Integration and Continuous Delivery automation out of the box. Lots of plugins, ease of use, self-hosting, and zero charge has made this the most popular CI/CD platform.

  • Jenkins job
    A process in Jenkins, needed to build code, run unit tests, generate code quality metrics, deploy the new app versions to production, etc.


K

  • Kubernetes
    An open source container management platform from Google, it is used to provide fault-tolerant network services in the cloud. Can be run self-hosted, or used as a managed service provided by Google Cloud Platform (GCP) or other service providers such as Amazon EKS, Microsoft AKS, Rackspace KaaS, and many more.


L

  • Lead Time
    The time it takes to move work in progress (WIP) to a finished state in a manufacturing plant. In software development, this is represented by moving code changes to production.

  • Lean
    Lean manufacturing or lean production is an approach or methodology that aims to reduce waste in a production process by focussing on preserving value. Largely derived from practices developed by Toyota in car manufacturing, lean concepts have been applied to software development as part of agile methodologies. The Value Stream Map (VSM), which attempts to visually identify valuable and wasteful process steps, is a key lean tool. (However, it turns out that Toyota themselves rarely ever use Value Stream Maps)


M

  • Mean Time Between Failures (MTBF)
    Used to measure reliability of a system or component, calculated by averaging the time between system failures.

  • Mean Time to Recovery (MTTR)
    The average time it takes a system or component to recover from a failure and return to production status.

  • Microservices
    Microservices is a 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.

  • Microservices Architecture
    The practice of developing software as an interconnected system of several independent, modular services that communicate with each other.

  • Model-Based Testing (MBT)
    A software testing technique in which the test cases are derived from a model that describes the functional aspects of the System Under Test (SUT). Visual models can be used to represent the desired behavior of a SUT, or to represent testing strategies and a test environment. From that model manual tests, test data, and automated tests can be generated automatically.


N

  • Nginx
    The most popular web server nowadays. The built-in capacities for load balancing, reverse caching and proxying make it a great choice for many use cases.

  • Node.js
    An open-source, cross-platform JavaScript run-time environment that executes JavaScript code server-side.

  • Node
    A physical or virtual machine within a Kubernetes cluster, used to host pods that run Docker containers.

  • Node pool
    A Kubernetes node pool is a group of several cluster points uniting the machines with the same configuration, which can be essentially treated and managed as a single entity.

  • Non-functional Requirements (NFRs)
    The specification of system qualities such as ease-of-use, clarity of design, latency, speed, ability to handle large numbers of users etc. that describe how easily or effectively a piece of functionality can be used, rather than simply whether it exists. These characteristics can also be addressed and improved using the Continuous Delivery feedback loop.

  • NoOps
    A type of organization in which the management of systems on which applications run is either handled completely by an external party (such as a PaaS vendor) or fully automated. A NoOps organization aims to maintain little or no in-house operations capability or staff.


O

  • One-Stop Shop / Out-of-the-Box Tools
    Tools that provide a set of functionalities that works immediately after installation with hardly any configuration or modification needs. When applied to the software delivery, a one-stop shop solution allows quick setup of a deployment pipeline.

  • Open Source
    The software delivery paradigm, where the copyright holders grant the users the access to the app source code and the rights to read, adjust and distribute it to anyone for any goal.

  • OpenShift
    Enterprise-grade container management platform for Kubernetes running on on-prem cloud infrastructures, developed by Red Hat.

  • OpenStack
    An open source platform for building on-prem cloud infrastructures.

  • Orchestration
    A practice of automating the IT tasks (container management and infrastructure configuration in particular) in the context of SOA, virtualization, environment provisioning. In short, it is a process of executing predefined tasks using predefined scripts executed with interactive tools like

  • Orchestration Pipeline
    Tools or products that enable the various automated tasks that make up a Continuous Delivery pipeline to be invoked at the right time. They generally also record the state and output of each of those tasks and visualize the flow of features through the pipeline.


P

  • Pair Programming
    A software development practice where two developers work on a feature, rather than one, so that both developers can review each others code as its being written in order to improve code quality.

  • Platform as a Service (PaaS)
    Cloud-hosted application runtimes, usually billed on a pay as you go basis. Customers provide the application code and limited configuration settings, the middleware, databases etc. are part of the provided runtime.

  • Playbook
    Ansible playbooks are the instructions for infrastructure deployment, with detailed guides on executing the series of commands to perform specific tasks.

  • Pod
    A basic Kubernetes structure unit, a group of Docker containers deployed to a single host.

  • Product Owner
    A person or role responsible for the definition, prioritization and maintenance of the list of outstanding features and other work to be tackled by a development team. Product Owners are common in agile software development methodologies and often represent the business or customer organization. Product Owners need to play a more active, day-to-day role in the development process than their counterparts in more traditional software development processes.

  • Production
    The final stage in a deployment pipeline where the software will be used by the intended audience.

  • Provisioning
    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.


R

  • Amazon Relational Database Service (RDS)
    A cloud database benefitting from a distributed nature of AWS services.

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

  • Release Coordination
    The definition and execution of all the actions required to take a new feature or set of features from code check-in to go-live. In a Continuous Delivery environment, this is largely or entirely automated and carried out by the pipeline.

  • Release Management
    Release Management is the process of managing software releases from development stage to the actual software release itself.

  • 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.

  • Rollback
    An automatic or manual operation that restores a database or program to a previously defined state.

  • Rolling update
    A process of smooth updates for an app without any downtime, performed instance by instance. It uses Kubernetes to ensure uninterrupted app availability and positive user experience.


S

  • Amazon Simple Storage Service (S3)
    A cloud computing service for storing any data objects, required for stable operations of your applications.

  • Self-Service Deployment
    The action of automating deployment processes enough for developers to allow project managers or even clients to directly control deployments.

  • Snapshot
    Amazon EBS snapshot is a tool for creating a static copy of your EC2 instance content for the purposes of backup and restoration.

  • Source Control
    A system for storing, tracking, and managing changes to software. This is commonly done through a process of creating branches (copies for safely creating new features) off of the stable master version of the software and then merging stable feature branches back into the master version. This is also known as version control or revision control.

  • Staging Environment
    Used to test the newer version of your software before its moved to live production. Staging is meant to replicate as much of your live production environment as possible, giving you the best chance to catch any bugs before you release your software.


T

  • Technical Debt
    A concept in programming that reflects the extra development work that arises when code that is easy to implement in the short run is used instead of applying the best overall solution.

  • Terraform
    An open source infrastructure orchestration software from Hashicorp. Terraform automates infrastructure deployment and management through the use of declarative Terraform manifests, which can be stored and versioned as the code to ensure repeatability and DevOps workflow continuity.

  • Test Automation
    The use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes.

  • 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.


U

  • Unit Testing
    A core component of CI/CD, unit testing is the practice of testing application code in small units against an automated test codebase before building the application, in order to minimize the time needed to discover and fix bugs, reducing the time to market for a product as a result.

  • User Acceptance Test
    The final phase of software testing where clients and end users determine whether the program will work for the end-user in real world scenarios. This stage is also known as beta testing.


V

  • Value Stream Mapping
    A process visualization and improvement technique that comes from "lean manufacturing" and engineering approaches. Value Stream Maps are used to identify essential process steps vs. waste that can be progressively eliminated from the process.

  • Virtual Machine (VM)
    A software emulation of a physical computing resource that can be modified independent of the hardware attributes.

  • Virtualization
    A systems management approach in which users and applications do not use physical machines, but simulated systems running on actual, real hardware. Such virtual machines can be automatically created, started, stopped, cloned and discarded in a matter of seconds, giving operations tremendous flexibility.

  • Amazon Virtual Private Cloud (VPC)
    A service that logically isolates a certain amount of public AWS cloud to create virtual private cloud networks..


W

  • Waterfall
    A software development methodology based on a phased approach to projects, from Requirements Gathering through Development etc. to Release. Phases late in the process (typically related to testing and QA) tend to be squeezed as delays put projects under time pressure.

  • White Box Testing
    A testing or quality assurance practice which is based on verifying the correct functioning of the internals of a system by examining its (internal) behavior and state as it runs.


Prev: Tools | Next: About this site