Software Engineering Thought Leadership

Deployment Strategy – Attn: Engineering Leaders

In the last two posts, we discussed the importance of DevOps and TDD. Unfortunately, the importance given to various phases of development diminishes in the downstream stages. When I say ‘importance’, I mean the brain power used to discuss, debate, and share knowledge. You see plenty of articles and knowledge sources for development and testing, but application deployment needs more seeds.

Most of the time, the deployment strategy is flat. The most common approach is just shutting the existing application for a couple of hrs and deploying the newer version. However, there are few other significant variants available. Which are, 

Canary deployment – The newer version of the application will be released to a subset of users first. Based on the success, the application will be released in a phased manner to the rest of the user base.

Blue/Green – An excellent alternative to the flat deployment. In this approach, the newer version of the application will be deployed in one of the environments. Once the application is up and running as expected, the other environment will get deployed. This helps to achieve zero downtime. 

Rolling deployment – This is progressive deployment in the given no of environments. Based on the success (intended feature behavior), the environment will get deployed with the newer version.

A/B testing – is a close cousin to the deployment strategy. This strategy is used in particular if any evaluation needs to perform between the existing version of the application vs the newer version of the application. In that case, the newer version is deployed in one environment while the current version sits in another. Based on the evaluation, like performance and any other desired outcome, one version will be continued to use.  

All these approaches may not suit all types of business needs. Some of them need additional infra cost. But what is most important here is the awareness and familiarity of the choices to the Engineering Leaders. The Business should be made aware of the options by IT. After all, the customer experience tops everything else, including the additional cost/effort of the infra. Engineering leaders must be business consultants rather than merely delivering the IT application agent.

#deploymentstrategy #engineeringleaders #customerhappiness #consulting

Author

KR Kaleraj