The Top DevOps Terms You Need to Know

Alexandra Kenney | Monday, July 29, 2019

The Top DevOps Terms You Need to Know

DevOps is a mix of cultural philosophies, methods, and resources that improves the capacity of an enterprise to produce high-speed technologies and services: evolving and developing products faster than companies using conventional processes of software development and technology management - in this article we define DevOps terms. Development and operations teams are no longer "siloed" under a DevOps model. Often these two teams are combined into a single team where engineers work over the entire lifecycle of the application, from development and testing to implementation to operations, and develop a variety of skills that are not limited to a single role. This pace helps businesses to better satisfy their consumers and be more competitive. DevOps is a decade-old culture for software delivery and infrastructure management, but there is still so much confusion on the most commonly used DevOps terminology. This article aims to explain them.

The Top DevOps Terms

Understanding the DevOps terms listed below will help you master DevOps, whether it be to upskills or get certified. ExitCertified's DevOps Certification Training helps you prepare for a career that bridges the gap between software developers and operations in this fast-growing sector. Though training you'll gain the skills you need to in continuously develop and implementation concepts, learn configuration management automation, inter-team collaboration, and agility.


Agent

A small program that runs on multiple machines to control or report the status of each. It is a process running on a target server as some specific user. Deploying an agent does require you to maintain the credentials to that system for script connections or any other connectivity. Agent executes deployment actions just as though you are on the machine because your agent is.

Agile Methodology

A software delivery methodology that involves continuous iteration of software development and testing with a focus on the quality of software and user feedback. Every timeboxed iteration of the continuous development cycle in Agile is referred to as Sprint. Each Sprint in agile development should result in an operational product so that any changes in requirements can be easily adjusted, providing flexibility and creativity within the agile software development teams. Looking to start a Sprint? Then review our Agile training courses.

Artifact

A deployable component of the application in the software delivery pipeline which can include design documents, UML or Class diagrams, use cases, etc.

Application Release Automation (ARA)

It is a repeatable, auditable, and consistent process of packaging and deploying an application across different environments with different configurations and finally to production with very minimal human actions possible using Continuous Integration and Continuous Delivery pipelines.

BDD

Behavior-driven development is an agile software development methodology as well as DevOps terminology where any application is documented and designed in accordance with the behavior a user expects to experience when interacting with the application. This encourages collaboration and teamwork among the quality analysts, developers, stakeholders, and any other business participants for a given project.

Build

A particular version of the application program code, often referred to as the stage of novel feature developments in the software.

Build Agent

A kind of agent used in the CI process, which can either be installed on a local system or remotely in relation to the CI server. A build agent sends and receives messages on handling various software builds.

CALMS

A framework that determines the essence of DevOps: Culture, Automation, Lean, Measurement, Sharing.  The CALMS model is used as a baseline framework to assess an organization’s readiness in adopting a DevOps culture.

Canary Release

A go-live technique used to minimize the risk of rolling out a new version of the software in production. In a canary release, any changes or new features are rolled out to a small subset of users rather rolling out the change to the entire production platform or infrastructure. After heavily monitoring the canary release for the expected behavior, if everything is stable, then the new application version is released to the entire production environment.

Capacity Test

A capacity test is a test used to determine how many users your application, server, or computer can support/ handle before either stability or performance becomes unacceptable.

Commit

The process of pushing the code to a code repository like Git and tracking the changes to the code repository with a log message that best describes the changes made to the code.

Configuration Drift

The process in which already running servers within the infrastructure become inconsistent as time goes on because of the manual updates and ad-hoc changes that are not committed back to version control. It is an undesirable result of updating servers which can be removed by employing the practice of deploying Immutable Infrastructure as Code.

Configuration Management

Configuration management is an automated method for maintaining consistency in all the configurations of the environment in which the software application hosts. In DevOps, configurations are bundled in the form of scripts or code which are controlled through the version control tool.

Containers

Containers are the foundation for DevOps collaboration (a common DevOps term) that solves application conflicts between different environments. They allow DevOps developers to share their software and dependencies easily with production environments making it possible to develop applications where test and live environments can be easily replicated while eliminating the ideal “it works on my system” excuse. Looking to learn more about Containers? view our container courses.

Containerization

A lightweight alternative to a VM that encapsulates an application in a container with its OS. A process that involves bundling the application together with all of its related libraries, dependencies, and configuration files needed to run in an error-free and efficient manner across various computing environments.

Continuous Integration

It is a process of checking the integrity of the code committed by the developers in the shared source code repository. The code is integrated into the shared repository for several times a day and verified by automated builds and tests.

Continuous Delivery

A software engineering approach with a series of practices designed to make sure that the code can be safely and quickly be deployed to production in a sustainable way including configuration changes, new features, bug fixes, and experiments. CD automates the release process so that the application can be deployed at any time just by a mere click of a button.

Continuous Deployment

A software development practice for software releases where any new code commit which passes the automated testing phase is released into production to ensure that the new changes are visible to the end-users of the software.

Cluster

It is a set of interconnected instances like VM’s, bare-metal servers, Kubernetes Pods that are all considered as a single entity to render high-availability, load balancing, and auto-scaling.

Continuous Quality

An integral part of the CI and CD process that involves finding and fixing software bugs during each phase of the SDLC. Continuous quality minimizes the risk of software bugs and security vulnerabilities in the early stages of the software development cycle.

DevOps

The main DevOps term you probably are familiar with if you're reading this article! DevOps is an enterprise software development phrase derived from the words “Development” and “Operations” used to mean a kind of agile culture between the IT  operations and development teams. This software methodology has a set of software workflows, tools, and best practices needed to ensure reliable automation of operations with a constant increase in quality, resilience, stability, and security of software. View our DevOps courses to learn more.

Dark Launch

Dark launch is a way to test new features with a selected group of users or your team before going live to find out whether the feature is worth the development effort and time or you want to change the strategy. This helps gather feedback from the test users on the changes or new features deployed, and also gives the developers a sneak-peak into how the application is behaving when used by end-users.

Deployment

A deployment is a discrete set of code integrated into a discrete configuration to run in a discrete operational environment. It is an important stage in SDLC that involves packaging the software code and delivering it to customers without causing any interruption to the end-users.

Deployment Pipeline

A set of programs and configurations that get the software from version control and make it active so that it is available to end-users.

DevSecOps

DevSecOps implies thinking about the security of the application and infrastructure right from the beginning of the application development.  DevSecOps minimizes security vulnerabilities by embedding and automating core security processes and controls in the DevOps workflow.

Event-Driven Architecture (EDA)

A software architecture pattern that orchestrates the behavior of a system around the detection, production, and consumption of events or messages produced by the system.

Fail Fast

A philosophy in which a new version of the code is implemented, it fails, quickly and promptly. Feedback is provided, and you adapt accordingly. Fail fast basically encourages you to fail fast and early rather than postponing the failure or working around with the failure. Fail fast philosophy aims to cut losses when testing reveals that something is not working as expected, and developers can quickly try something else, often referred to as a concept of pivoting.

Git

A distributed code version control system that provides developers with complete access to the project code and the change history to foster collaboration among teams.

Gitlab

It is an open-source Git portal that is particularly tuned to achieve DevOps performance because of the in0built support of Continuous Integration and Continuous Delivery tools like Gitlab CI.

Instance

An instance is a single group of resources required to run an application (like a Docker container). It is a VM that you run your application on.

Lead Time

It is a key DevOps metric that is defined as the amount of time that occurs from starting on a work item until it is deployed to the production environment. Lead time plays a vital role if you are on a goal of shipping the code quickly as this gives an estimate on how long it will take on an average for the code to get to production.

Microservices

Microservice is a small and loosely coupled distributed service gaining popularity as organizations move towards a more agile and DevOps culture. Microservices allow you to take a giant application and split it into easily manageable modular components having the narrowest responsibilities. These services interact through API’s and lightweight protocols to provide application scalability and flexibility. ExitCertified provides Microservices training courses so that you can get started today.

Production Environment

The ultimate and the final step in the software deployment pipeline. An environment where the end-users or the target audience will use the product or service.

Regression Testing

Regression testing is a kind of functional testing that assesses the performance of the application after it has been changed. It tests for issues that might have been introduced with new updates or additions to the codebase. The main goal of regression testing is to ensure that any changes to the code do not impact the already existing features and functionalities of the software application.

Rollback

The process of restoring an application program or a database to its previous state by canceling a transaction or a set of actions either manually or automatically.

Source Control

Source control is required to help in the build and release process of a product. It is a system that helps store, manage, and track all the changes to the source code. The product or service being developed/tested is placed at a single central repository, correctly versioned/tagged, and can be accessed/updated simultaneously by different teams/team members and released/deployed by correct version/build number. The most popular platforms for source control are GitLab, GitHub, and Bit Bucket.

Staging Environment

It is sometimes also referred to as the UAT environment or SIT environment, which is basically a replica of the live production environment. The main purpose of this environment is to test everything before deploying anything to the live environment to identify any bugs and solve them before releasing the software to production.

Technical Debt

It is nothing but the cost that you have to pay for choosing a short-cut. To quick fix something or to choose a solution for a short term in spite of a better solution available. This sometimes leads to extra rework; the cost implied in this is generally termed as “Technical Debt.”

Test Automation

The process of using automation software (specialized software)  to test the latest software version against the unit tests. Once the development team commits the code in source control, for quality and integrity of the code, various unit test cases are automated using various automation tools available in the market. Test cases are then run on the latest code available in source control, and the actual test outcomes are compared with the predicted outcomes.

Unit Testing

The smallest individual part of the code or software module which can be tested independently to see if it functions as expected is referred to as “Unit Testing.”

The technical terms defined above are not comprehensive or explained in detail. They are meant only as a basic aid to understanding the DevOps vocabulary. We know this DevOps glossary list is in no way complete but a foundational starting point for anybody wanting to embark on a DevOps journey to enhance end-user value and improve collaboration. If you are looking to help your organization integrate DevOps culture in your next agile project, ExitCertified has the DevOps training you need. 

Interested in learning more about DevOps? Read our DevOps Primer

The AWS Courses to Take for a New Career

The AWS Courses to Take for a New Career

AWS training and certification courses help you gain the knowledge and skills required to be an invaluable member of an organization's IT department, and they provide a roadmap to becoming an AWS architecture or engineering lead. Ultimately, an AWS certification is the highlight your résumé needs to prove to hiring managers that you are proficient in cloud technology at a given level.