What is Continuous Delivery and Why We Need it?

Learn about Continuous Delivery (CD) and Why we need Continuous Delivery (CD). What are the problems before CD and how CD has solved those problems?


Why do we need Continuous Delivery?

Earlier flow:

✔  Team of developers committing their code in the code repository.

✔  Next, a build server will compile and build the code and sent it to the QA team.

✔  QA team will manually perform some tests such as unit tests, integration tests, etc.

✔  Then the result will tell if there are any errors or not.

✔  After fixing those errors, it will get deployed to production.




But this approach failed and here are the reasons for failure.


Possible Reasons for Failure:

✔  The difference in testing and production environments (servers).

✔  Needed different libraries and packages for different environments.

✔  Production is not capable to handle the end-user load and crashes.

✔  Application may not accessible to all users.


What is Continuous Delivery (CD)?

Continuous Delivery is a process, where code changes are automatically built, tested, and prepared for a production release. It is a process in which we build the code that continues to be ready to release in the production environment.


Continuous Delivery Flow:

✔  Developers commit their code to the source code repository.

✔  Next, the code gets pulled from the repository to build it.

✔  Build step can contain:

    ✔  Compile

    ✔  Code Review

    ✔  Unit Test

    ✔  Integration Test

    ✔  Package (war, jar, zip, etc)

✔  Then, it moves to a User Acceptance Test (UAT) server which is like a replica of the production server.




Until here, the Continuous Delivery is completely automatic, but the deployment to the Production server is manual, which most companies prefer.