Projects these days typically involves a huge number of servers, which increases the complexity and load for Ops and Dev Teams. This makes typical tasks like deployment, configuration management or orchestration increasingly tricky and difficult.
To deal with such complexity, automation tools are needed. Automation allows engineers to scale beyond what they are humanly capable of, eg. GitHub Ops Engineers is responsible for 10,000 instances each.
Ansible is an example of a tool which brings the benefit of automation minus the traditional complexity associated with such tools.
I will cover the following concepts using Ansible.
1) Ad-hoc task-execution
2) Configuration Management (Infrastructure as Code)
3) Application Deployment
4) Multinode Orchestration