Expanding and contracting
An alternative to the in-place upgrade strategy is the expand and contract strategy. This strategy has become popular of late thanks to the self-service nature of on-demand infrastructure, such as cloud computing or virtualization pools. The ability to create new servers on demand from a large pool of available resources means that every deployment of an application can happen on brand new systems. This strategy avoids a host of issues, such as a build up of cruft on long running systems, such as:
The configuration files no longer managed by Ansible are left behind
The run-away processes consume resources in the background
Things manually changed by humans with shell access to the server
Starting afresh each time also removes differences between an initial deployment and an upgrade. The same code path can be used, reducing the risk of surprises while upgrading an application. This type of an install can also make it extremely easy to roll back if the new version does...