Application deployments and upgrades can be approached in a variety of different strategies. The best approach depends on the application itself, the capabilities of the infrastructure the application runs on, and any promised service-level agreements with the users of the application. Whatever strategy you use, Ansible is well suited to facilitate the deployment. In this chapter, we'll walk through a couple of common deployment strategies and showcase the Ansible features that will be useful within those strategies. We'll also discuss a couple of other deployment considerations that are common across both deployment strategies, which are:
In-place upgrades
Expanding and contracting
Failing fast
Minimizing disruptive actions