DevOps 101: What Is a DevOps Platform?

DZone 's Guide to

DevOps 101: What Is a DevOps Platform?

A DevOps platform typically facilitates continuous delivery. Learn about the different stages of this process.

· DevOps Zone ·
Free Resource

Introduction to a DevOps Platform

In a DevOps organization, Continuous Delivery (CD) is used to create a constant flow of changes to production. The entire automated software production line is commonly referred to as the Continuous Delivery pipeline. The CD pipeline breaks the software delivery process into several stages, each of which verifies the quality of new features before moving them to the next stage until they finally are available to users. The pipeline provides feedback to the team and visibility into the flow of changes to everyone involved. To successfully scale DevOps in an enterprise, a set of components are leveraged to help teams achieve CD. This is called a DevOps platform.

While there may be slight variations from organization to organization, or within the type of software project, a typical DevOps platform facilitates CD through the following stages.

1. The Initial Stages: Build Automation and Continuous Integration

New features that the developers implement start their journey through the CD pipeline as code commits to a central code repository. The pipeline starts by building the binaries to create the deliverable(s) that are passed to the subsequent stages. Each developer's code commits are integrated into the central code base on a continuous basis where they are built and unit tested. This is called Continuous Integration. It provides an early opportunity for feedback about the "health" of the new application code. If something is wrong, the build will "break," and the cause is clearly identified. The developer who introduced the problem code can commit a fix, and everyone can see the build "go green" as it passes the phase.

Common tools you may hear mentioned:

2. The Verification Stages: Test Automation

The earlier problems are detected, the easier (and cheaper) it is to fix them. It is important that the pipeline verifies all relevant aspects-whether user functionality, security, performance, or compliance. Manual testing can identify some problems, but it is time consuming, costly, and error prone. High-performing DevOps teams use a combination of manual and automated testing to ensure an increasingly well-tested application as it moves through the pipeline.

Common tools you may hear mentioned:

3. The Rollout Stage: Deployment Automation

The final stage of the pipeline is deployment to production. Since the preceding stages have verified the overall quality of the system, this is a low-risk step. The deployment can be staged, with the new version initially released to a subset of the production environment and monitored before the complete roll out. Deployment is automated, allowing for reliable delivery of new functionality to users within minutes.

Common tools you may hear mentioned:

4. The Live Stage: Operating, Monitoring, and the Feedback Loop

The image of a pipeline is somewhat misleading since it implies a distinct end. In a DevOps platform, things that happen after the application is deployed to production provide feedback so that the entire cycle can begin again with fixes to problems, enhancements, or ideas for new features. So it's really more of a loop than a pipeline.

At this stage, the DevOps platform is concerned with ensuring that users have a good experience. This means making sure the application is stable and fast, and that it's being used in a way that adds value for the user. There are many tools to help with this. Some monitor running applications to alert and take action when a problem arises, some automate the process of scaling application instances up and down and reacting if instances become unavailable, and some provide a way to observe and interact with users while they are using the application.

Common tools you may hear mentioned:

5. Orchestrating It All: Release Coordination and Automation

Cross-functional DevOps teams include many participants in every stage of the pipeline, each with many tasks (both automated and manual) to be performed. Keeping track of it all can be challenging. Release coordination provides a top-level view of the entire pipeline. It defines the overall software delivery process and puts appropriate controls in place for each stage. This analysis highlights any inefficiencies or hot spots that can be improved. Tools can help identify bottlenecks, reduce errors, and lower the risk of release failures. You may hear such tools referred to as Application Release Automation, Application Release Orchestration, or Continuous Delivery Release Automation.

Common tools you may hear mentioned:

automation, ci/cd, continuous integration, deployment, devops, test automation, tutorial

Published at DZone with permission of Tim Buntel , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}