Continuous Integration, Continuous Delivery, Continuous Deployment - What to consider

There is a lot of misconception about what all these different processes mean and how to effectively use them. You may be questioning if it’s even necessary at all to consider these practices. Let’s dive in a little bit deeper to discuss each point and how it will help your application team drive results.

Continuous Integration

Continuous Integration is simply put that developers who are practicing this process are creating feature branches and merging them back to a main branch. Most of the time this is done via a pull request so other developers can review the changes. This helps from silly mistakes or even just checking on if the code going in is what the team wants. This also avoids that potentially catastrophic event on Friday evenings when everyone is trying to merge all together. Automated tests are run when these commits occur and help validate the code going in isn’t breaking other pieces of software.

Continuous Delivery

Continuous Delivery is an extension of Continuous Integration in that all the processes above are used however the ability to deploy the code is easily attainable. This means that at any point in time a developer can push a button and features are moved to that environment of choosing. This allows the team to be flexible and deploy code on a particular time basis.

Continuous Deployment

Continuous Deployment is an extension of Continuous Delivery. All the processes above are followed, however the release is automated. This means that features will be delivered to a production environment automatically if all conditions are met in terms of automated tests and other testing suites. This relieves stress from the development team as there isn’t a particular day to deploy on and this brings features to customers faster. However this requires more thought to making tests robust and more effort on the team to maintain them.

Still not sure what strategy you want to take? Want to learn how to implement this within your software development team? Call now or Schedule an Appointment below!

Jeremy Kalinowski