We recently started using this outstanding devops tool called Terraform at Drover. Basically it allows us to describe how we want our environments to be and apply that "plan" automatically. It's a bit like Ansible and its playbooks concept but - IMO - does a better job at tracking what resources exist and in which state they are in.
Think about it like writing down what your environment looks like, in terms of pretty much everything (load balancing, dns, servers, networking, connectivity, service discovery, databases, caching, port management, number of replicas, etc) and then just asking the command to make it so. And it gets better: it can keep tabs on links between all these resources you setup, which means you can, for instance, automatically add a DNS entry to the load balancer you defined, or define the database url on your server based on what was created by terraform.
In practice, it dynamically adjusts to all changes you make to your resources once created some being braking changes that create new resources, others just updating the resources properties. It works outstandingly with Amazon AWS services, Google, Azure, a lots and lots of other cloud setups (you can even mix and match).
Definitely check it out, it will make your devops work so much easier.