CD part I: Setup a Continuous Delivery Pipeline

Johan Tuitel

  • 11/11/2016
  • 2 minuten leestijd
Johan Tuitel

CD part I: Setup a Continuous Delivery Pipeline

In this 21 part series i wil describe how to setup a continuous delivery pipeline!

Why do we need a continuous develivery pipeline?

source:http://www.allaboutagile.com/7-reasons-why-continuous-delivery-needs-to-be-a-business-initiative/

In this article Kelly Waters describes 7 reasons why we need continuous delivery. For me the most important reason to do this, is to get some control of the product you are building by having continuous integration, sonar, automatic deployment and fitnesse tests!

This enables an agile team to react faster to new changes, features and bugs. Whithout continuous delivery we cannot say anything about our product!

What is a continuous develivery pipeline?

Continuous Delivery is a way to react faster and better to any kind of changes in the product. To have a continuous delivery pipeline we are safer and quicklier, by making the tasks a routine through automation and make it predictable and easier.

How to create continuous develivery pipeline?

A continuous develivery pipeline exist of 5 steps in which they been executed synchronously.

  1. first we have continuous integration to check if the code is compilable
  2. the second step is to check for code quality
  3. during the third step, we are deploying the latest version of our software product on our test-server
  4. after we have deployed, we need to check if our integration test are working! We do this in the fourth step by executing a smoketest
  5. when we have done these four steps, we finally execute the complete integration test of the product to check if the functionality is still the same and to check if new functionalities are correct!

Landscape of the tooling?

  1. local repository: for development purposes
  2. remote repository: for continuous integration, sonar and creating artifacts
  3. nexus: artifactory, to store the artifacts of our product
  4. application server: in this case tomcat, we use 4 instances which we can use as for: Development, Testing, Acceptance and Production
  5. jenkins: for Continuous Integration and Continuous Delivery
  6. FitNesse: for integration tests
  7. PostgreSQL: for data storage

What if we have a continuous develivery pipeline?

What if we have done al the automation and we have a continuous delivery pipeline?

The benefits are huge to have this, because we can react faster and we can check the quality of our product! Besides al the corporate benefits, from a lazy programmers perspective, it is great to not have to do this kind of stuff manually, so thumbs up ;-)

What to expect from this blog?

During this blog i will guide you to creating a continuous delivery pipeline. There are a lot of things to be configured and to setup to make it working. When you are lucky, system management have done setup work, but if not? I have described every step i needed to create this continuous delivery pipeline!

A note, i will not go into details of the technicall stuff i used, this could be done in another blog or search on google. This blog describes only the setup of the pipeline, nothing more!

When you have some questions or comment on the things i have described, please start a discussion!

I hope you enjoy and learn from it!

Johan Tuitel