This post is from the XebiaLabs blog and has not been updated since the original publish date.
DevOps Terms: From A to Z
DevOpsis a philosophy and a business-driven approach to delivering software solutions. A portmanteau of “Development” and “Operations,” DevOps seeks to break down the barriers that have traditionally existed between those parts of the delivery process. The main objective of DevOps is to create a culture and environment where teams can work collaboratively to deliver software frequently and reliably.
But DevOps is really an umbrella term referring to improvements across the range of technology and activities needed to deliver enterprise software. And accomplishing that broad scope of improvements creates a whole new nomenclature of technology terminology.
For the DevOps layperson, what do you need to know? Here are 26 high-level DevOps terms to get you started. To keep things simple, we boiled the list down to one term per letter. So, with due respect to AI,change management, and predictive analytics, we present DevOps from A to Z.
Tools, scripts, or products that automatically install and correctly configure a given version of an application in a target environment, ready for use. Also referred to as “Application Release Automation” (ARA) or “Continuous Delivery and Release Automation” (CDRA).
Blueprints enable you to on-board projects, applications, and teams across the enterprise to the DevOps toolchain, without a lot of administrative overhead. XebiaLabs' blueprints guide you through a process that automatically generates YAML files for your applications and infrastructure.
A set of processes and practices that remove waste from your software production process, enable faster delivery of high-quality functionality, and set up a rapid and effective feedback loop between your business and your users. Continuous Delivery is an essential part of putting DevOps into practice.
The streamlining of applications and configurations to the various environments used in the SDLC. Using a deployment automation solution ensures that teams have secure, self-service deployment capabilities for Continuous Integration, environment provisioning, and testing. A deployment automation solution can help you to deploy more often while greatly reducing the rate of errors and failed deployments.
Refers to a development technique where all of the components needed to build and deliver software––deployment packages, infrastructure, environments, release templates, dashboards––are defined as code. Defining your delivery pipeline as code gives you a standardized, controlled way to on-board projects, applications, and teams.
Creating fast and continuous feedback between Operations and Development early in the software delivery process is a major principle underpinning DevOps. Doing so not only helps to ensure that you're giving customers what they actually want, it lightens the load on development, reduces the fear of deployment, creates a better relationship between Dev and Ops, and heightens productivity.
In IT, governance refers to the process by which organizations evaluate and ensure that their tech investments are performing as expected and not introducing new risk. A formal governance process also helps companies ensure that IT activities are aligned with business goals, while also ensuring that everything is compliant with common standards, such as OWASP, PCI 3.2, and CWE/SANS.
A cloud computing environment that uses a mix of cloud services––on-premises, private cloud, and third-party. As enterprises scale their software delivery processes, their usage needs and costs change. Using a hybrid cloud solution offers greater flexibility and more deployment options.
Software delivery in an enterprise environment encompasses many different functional teams and tools. To improve the software delivery process from end to end, you need to analyze and correlate data from every part of the delivery pipeline. A DevOps Intelligence tool can provide this visibility, combining detailed metrics on past activity, real-time visibility into present status, and insightful analytics to provide early warning of problems and predict future performance.
Jenkins, the open source automation server written in Java, has long been the de facto standard for Continuous Integration. With Jenkins, developers can integrate their code into a shared repository several times a day. As organizations look to scale their software delivery processes, they often find that Jenkins requires too much scripting and/or maintaining of workflows, and that they need to expand to Continuous Delivery. Continuous Delivery not only leverages tools for Continuous Integration, but also for end-to-end release orchestration, test automation, security, IT service management, and more.
The Periodic Table of DevOps Tools v.3 is now available!
The XebiaLabs Periodic Table of DevOps Tools v.3 features 52 new DevOps tools, an integrated DevOps Diagram Generator, and a new look. Check it out!
Container-based applications require the same release process as other enterprise applications. In fact, things may even get more complicated as applications evolve to rely on more and more microservices and more and more containers—across Dev, Test, Staging, and Production environments. Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications.
In software development, “Lean” is an approach to reducing waste in the production process by focusing 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.
A software architecture design pattern in which complex applications are broken into small, independent processes that communicate with each other using language-agnostic APIs. By breaking down apps into smaller, self-contained components, they can be worked on separately from the other components within the application suite. Doing so enables you to easily develop, test, and deploy isolated changes without impacting the app as a whole.
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.
Refers to a program or application with source code that can be modified by anyone. There are a variety of open source frameworks, like AngularJS and React, open source tools, like Gradle and Jenkins, and open source libraries, like JHipster, that can be used to improve specific software development and deployment processes. In a complex enterprise environment, a DevOps platform can integrate open source tools and streamline them into the delivery pipeline.
The process of preparing new systems for users. In a Continuous Delivery scenario, this work is typically done by Development or Test teams. The systems are generally virtualized and instantiated on demand. Configuration of the machines to install operating systems, middleware, and so on is handled by automated system configuration management tools, which also verify that the desired configuration is maintained.
A continuous delivery pipeline enables you to act and deliver more quickly, but you still need to deliver a quality product to your users. You can build the expectation of quality into your software development process from the start. Design your tests before a line of code is written. Create a test architecture that can be woven into your CD pipeline. Build a self-adjusting system that applies the right tests at the appropriate time in development, covering unit tests through to performance testing. That way you always have the real-time insight you need into your software quality.
Helps enterprises efficiently manage and optimize their release pipelines and is necessary for enterprises that want to realize the benefits of Continuous Delivery and DevOps. Enterprise-focused release orchestration solutions offer crucial real-time visibility into release status and, through detailed reporting and analytics, provide the intelligence needed to make the best decisions. Release orchestration tools offer control over the release process, enforcing compliance requirements and also making it easy to modify release plans in an auditable manner. And they manage a mixture of manual and automated tasks that need to be coordinated across multiple teams, both business and technical.
With increasing delivery speed comes increasing security risks and compliance issues across different applications, teams, and environments. Shifting left refers to integrating risk assessment, security testing, and compliance evaluation processes earlier in the delivery pipeline. Doing so makes it cheaper and easier to address potential release delays or failures, security vulnerabilities that threaten Production, and IT governance violations that result in expensive fines.
From source code management and continuous integration, to environment provisioning and application deployment, there are ton of tools that get specific processes done in an enterprise DevOps practice. A DevOps toolchain refers to the set of tools that work together in the delivery, development, and management of an application.
Refers to the code-level testing of an individual piece of code to verify its behavior. Test-Driven Development makes extensive use of unit tests to describe and verify intended behavior in the context of an overall system.
A process visualization and improvement technique that is used heavily in lean manufacturing and engineering approaches. In a software delivery pipeline, Value Stream Maps are used to identify essential process steps so that “waste” can be eliminated from the process.
Other terms: Virtualization
A software development methodology based on a phased approach to projects, from “Requirements Gathering” through “Development” and so on, to “Release.” Phases late in the process (typically related to testing and QA) tend to be squeezed, as delays put projects under time pressure. If you’re new to DevOps, this approach might be very familiar.
Industry-leading Application Release Orchestration solution that provides the intelligence, automation, and control that technical and business teams need for Continuous Delivery at enterprise scale. It’s the backbone for comprehensive release orchestration, managing your end-to-end DevOps toolchain, and delivering full visibility into the entire software delivery process. Try it for free.
YAML, an acronym for "YAML Ain't Markup Language," is a human-readable data serialization language. YAML files can be used in software delivery to automate specifications deploy and release processes. With YAML files, you can leverage the configurations from your existing applications and pipelines to represent familiar constructs to use in your development environment.
As in, zero tolerance for failures in Production. Customers have zero tolerance for failure. A deployment failure or any kind of service interruption to customer-facing software can have a catastrophic impact on an organization, especially those in highly regulated industries.