Continuous Delivery - Gatheringapp/Project-management GitHub Wiki

Introduction

This document will explain firstly, what Continuous Delivery is and the benefits of it. Secondly it will specify actions required to implement and fully migrate to Continuous Delivery.

What is Continuous Delivery?

Continuous Integration is a software development practice of performing software integration frequently…several times a day, in fact. Ideally, your software application or system should be built automatically after each commit into a shared version control repository.

Upon each successful build, the system integrity should be verified using automated tests that cover if not all, then at least most of the functionality. If some tests fail, the developer responsible is notified instantly and the problem can be identified and solved quickly.

Using this approach, you can deliver working and reliable code to the customer much faster, while also mitigating the risk of releasing unstable, buggy software to your users.

Benefits of Continuous Delivery

  • Accelerated Time to Market: CD lets an organization deliver the business value inherent in new software releases to customers more quickly. This capability helps the company stay a step ahead of the competition.
  • Building the Right Product: Frequent releases let the application development teams obtain user feedback more quickly. This lets them work on only the useful features. If they find that a feature isn’t useful, they spend no further effort on it. This helps them build the right product.
  • Improved Productivity and Efficiency: Significant time savings for developers, testers, operations engineers, etc. through automation.
  • Reliable Releases: The risks associated with a release have significantly decreased, and the release process has become more reliable. With CD, the deployment process and scripts are tested repeatedly before deployment to production. So, most errors in the deployment process and scripts have already been discovered. With more frequent releases, the number of code changes in each release decreases. This makes finding and fixing any problems that do occur easier, reducing the time in which they have an impact.
  • Improved Product Quality: The number of open bugs and production incidents has decreased significantly.
  • Improved Customer Satisfaction: A higher level of customer satisfaction is achieved.

How Does Continuous Delivery Work?

Continuous delivery is enabled through the deployment pipeline. The purpose of the deployment pipeline has three components: visibility, feedback, and continually deploy.

Deployment Pipeline:

  • Visibility - All aspects of the delivery system including building, deploying, testing, and releasing are visible to every member of the team to promote collaboration.
  • Feedback - Team members learn of problems as soon as possible when they occur so that they are able to fix them as quickly as possible.
  • Continually deploy - Through a fully automated process, you can deploy and release any version of the software to any environment.

Continuous Delivery