Minimizing Downtime with Rolling Deployments

Ansible is well-suited to the task of upgrading or deploying applications in a live service environment. Of course, application deployments and upgrades can be approached with 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 the approach, it is vital that the application deployment or upgrade is controlled, predictable, and repeatable, in order to ensure that users experience a stable service while automated deployments occur in the background. The last thing that anyone wants is an outage caused by unexpected behavior from their automation tool; an automation tool should be trustworthy, not an additional risk factor.

Although there is a myriad of choices, some deployment strategies are more common than others, and in this chapter, we'll walk through a couple of the more common ones. In doing so, we will 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. To achieve this, we will delve into the details of the following subjects, in the context of a rolling Ansible deployment:

  • In-place upgrades
  • Expanding and contracting
  • Failing fast
  • Minimizing disruptive actions
  • Serializing single tasks
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.83.150