Deploying applications is probably one of the most complex tasks in the Information and Communication Technology (ICT) field. This is mainly caused by the fact that it often requires changing the state of the majority of machines that are somehow part of that application. In fact, often, you find yourself having to change the state of load balancers, distribution servers, application servers, and database servers all at the same time during a deployment. New technologies, such as containers, are trying to make those operations simpler, but often it is not easy or possible to just move a legacy application to a container.
We are now going to look at the various software distribution strategies and how Ansible can help with each one.