The Continuous Delivery Pipeline — What it is and Why it’s so Important in Developing Software
DevOps may have been around for a while now, but adoption is finally heading towards the mainstream. According to a recent Gartner study, DevOps will be deployed by around 25 percent of Global 2000 companies by next year.

The Continuous Delivery Pipeline — What it is and Why it’s so Important in Developing Software

Continuous Delivery (CD) is a software strategy that enables organizations to deliver new features to users as fast and efficiently as possible. The core idea of CD is to create a repeatable, reliable and incrementally improving process for taking software from concept to customer. The goal of Continuous Delivery is to enable a constant flow of changes into production via an automated software production line. The Continuous Delivery pipeline is what makes it all happen.

The pipeline breaks down the software delivery process into stages. Each stage is aimed at verifying the quality of new features from a different angle to validate the new functionality and prevent errors from affecting your users. The pipeline should provide feedback to the team and visibility into the flow of changes to everyone involved in delivering the new feature/s.

There is no such thing as The Standard Pipeline, but a typical CD pipeline will include the following stages: build automation and continuous integration; test automation; and deployment automation.

  • Build automation and Continuous Integration

The pipeline starts by building the binaries to create the deliverables that will be passed to the subsequent stages. New features implemented by the developers are integrated into the central code base on a continuous basis, built and unit tested. This is the most direct feedback cycle that informs the development team about the health of their application code.

  • Test Automation

Throughout this stage, the new version of an application is rigorously tested to ensure that it meets all desired system qualities. It is important that all relevant aspects — whether functionality, security, performance or compliance — are verified by the pipeline. The stage may involve different types of automated or (initially, at least) manual activities.

  • Deployment Automation

A deployment is required every time the application is installed in an environment for testing, but the most critical moment for deployment automation is rollout time. 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 being initially released to a subset of the production environment and monitored before being completely rolled out. The deployment is automated, allowing for the reliable delivery of new functionality to users within minutes, if needed.

Your Pipeline Needs Platform Provisioning and Configuration Management

The deployment pipeline is supported by platform provisioning and system configuration management, which allow teams to create, maintain and tear down complete environments automatically or at the push of a button.

Automated platform provisioning ensures that your candidate applications are deployed to, and tests carried out against, correctly configured and reproducible environments. It also facilitates horizontal scalability and allows the business to try out new products in a sandbox environment at any time.

Orchestrating it all: Release and Pipeline Orchestration

The multiple stages in a deployment pipeline involve different groups of people collaborating and supervising the release of the new version of your application. Release and pipeline orchestration provides a top-level view of the entire pipeline, allowing you to define and control the stages and gain insight into the overall software delivery process.

By carrying out value stream mappings on your releases, you can highlight any remaining inefficiencies and hot spots, and pinpoint opportunities to improve your pipeline.

Don’t Add New Functionality Until You Get The Quality Right!

Continuous Delivery is about enabling your organization to bring new features to production, one by one, quickly and reliably. That means that every individual feature needs to be tested prior to rollout, ensuring the feature meets the quality requirements of the overall system.

In a traditional environment, development teams typically try to implement an entire new version in one go, addressing software quality properties (such as robustness, extensibility, maintainability) only when the project is close to completion. However, as deadlines loom and budget pressures grow, quality is often the first thing that is compromised.

Poor system quality, low-user satisfaction and endless “quality band-aids” can be avoided by adopting the principle of not adding new functionality before getting the quality right. You should always first meet and maintain your quality levels and only then consider gradually adding functionality to the system.

With CD, each new feature is required to meet the level of quality expected for the system as a whole, right from the start. Only once this quality level has been reached can the feature be moved to production.

Getting Started With Continuous Delivery

Obviously, organizations cannot and should not rush into adopting Continuous Delivery all at once throughout all their business units. The best approach is to focus on improving your biggest delivery bottleneck. CD will automatically show you what the next bottleneck is. This puts you on a measurable improvement path.

The main goal of using Continuous Delivery is to roll out new features and functionalities that are better than previous iterations — gradually incorporating and refining the CD principle throughout the organization. Go slowly, go smoothly — and watch the improvements!


要查看或添加评论,请登录

Mustansir A.的更多文章

  • New survey highlights the benefits and challenges of a DevOps adoption

    New survey highlights the benefits and challenges of a DevOps adoption

    A new report has revealed successful DevOps implementations are reliant on whether or not companies have a well thought…

  • It's the year of Linux on the Windows desktop

    It's the year of Linux on the Windows desktop

    Microsoft is making it easy to activate the Linux Bash shell on Windows. More importantly, it's also bringing the Linux…

    2 条评论
  • Introduction to DevOps: Beginner’s Guide

    Introduction to DevOps: Beginner’s Guide

    DevOps might be the most exciting trend in computing because it isn’t really a trend In this post, I explore What…

    1 条评论
  • A quick refresher: DevOps

    A quick refresher: DevOps

    The DevOps Enterprise Summit last month had a record number of attendees and speakers, all of whom were there to…

  • Setting a DevOps mindset for 2017

    Setting a DevOps mindset for 2017

    What does DevOps need to overcome for a successful 2017? The move to marry development and operations continues to gain…

  • Development And Operation System (DEVOPS)

    Development And Operation System (DEVOPS)

    DevOps and its Impact on Information Technology (IT) (September 26, 2017) DevOps refers to an enterprise software…

  • DevOps and its Impact on Information Technology (IT)

    DevOps and its Impact on Information Technology (IT)

    DevOps refers to an enterprise software development method and a collaborative way of developing and deploying…

社区洞察

其他会员也浏览了