Like we wrote in an earlier post, DevOps tries to minimize the pain points associated with hand offs from Dev to Ops. But there is another hand-off that causes a lot of pain – the promotion from environment to environment (e.g. from staging to production).
The reason is the “difference” between environments, or in other words the need to promote across the environment chasm. Most the pain is caused by the differences in deployment topologies between the environments – so by minimizing distance we lower the cost of promotion, probability of failure. Production assurance also lowers the cost of failure but we’ll talk about that in the next post.
- Lowering promotion cost:
moving to a new environment requires multiple iterations until you get it right. Even if you use an automated release manager -human errors from incorrect policies and manifest still cause problems.
- Reduced probability of failure:
If the environments were clones – then promotion would be trivial. Problems arise anytime there are differences. If the differences are simple – like additional nodes in a cluster, things are easy. On the other hand, if you have an application server and database server on the same node in one environment, but on different nodes in the second environment you are setting yourself up for promotion problems.
Bottom line: By shifting left topologies you can make promotion less painful and more successful.