Continuous Delivery (CD): Aims at building, testing, and releasing software faster and more frequently by allowing for more incremental updates to applications in
production. A straightforward and repeatable deployment process is important for Continuous Delivery.And if these definitions aren’t confusing enough, let me add the
third term: Continuous Deployment. Continuous Deployment means that every change is automatically deployed to production.
So, why should you care, and my favorite answer is “Release Velocity“. Let me explain.
Remember, when you wrote your first big code (the one after “hello world” J), you compiled it and voila, you saw the results. But then your colleague said: “Did you
test it?” So, you thought of various use case scenarios and created tests and ran it. But then your user said: “I want to test it myself.” By the time you got your
user feedback, you already wrote 3 new features. Repeat this for 2-3 more cycles and suddenly you realize there’s a mess and it’s increasing exponentially. So you
decided to have a separate development/test environment (sandboxes) and a production environment.
Now, let’s say there are 20 more developers like you in your team; you end up with 20 parallel sandboxes. So, you introduce a Version Control system and decided to
have a Release Manager to manage these releases into one product release. This ‘mess’ is more common and more exasperating, since I am, of course, oversimplifying…but
hopefully you get my drift.
The point is that a significant chunk of development cycle is spent on managing this code(s) vs. writing that code, and CI/CD helps you ease that pain. In fact, we, at
AutoRABIT, assert that the entire release cycle can be done with just a few clicks of the button.