DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. DevOps 101: What Is a DevOps Platform?

DevOps 101: What Is a DevOps Platform?

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

Tim Buntel user avatar by
Tim Buntel
·
Oct. 25, 18 · Tutorial
Like (13)
Save
Tweet
Share
14.15K Views

Join the DZone community and get the full member experience.

Join For Free

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:

  • Git

  • Jenkins

  • Bamboo

  • CircleCI

  • AWS CodeBuild

  • VSTS

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:

  • Selenium

  • Gatling

  • JUnit

  • Cucumber

  • JMeter

  • Fortify

  • Veracode

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:

  • XebiaLabs DevOps Platform

  • IBM UrbanCode Deploy

  • CA Automic

  • Octopus Deploy

  • AWS Code Deploy

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:

  • ELK Stack

  • New Relic

  • Splunk

  • Google Analytics

  • Mixpanel

  • Intercom.io

  • Drift

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:

  • XebiaLabs DevOps Platform

  • IBM Urbancode Release

  • Spinnaker

DevOps Continuous Integration/Deployment application Pipeline (software)

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

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • The Future of Cloud Engineering Evolves
  • AWS Cloud Migration: Best Practices and Pitfalls to Avoid
  • How to Create a Real-Time Scalable Streaming App Using Apache NiFi, Apache Pulsar, and Apache Flink SQL
  • Why It Is Important To Have an Ownership as a DevOps Engineer

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: