My policy is to keep it as simple as possible when approaching any tool. I’ve tried many orchestration tools but never felt at home with any of them.
Personally, I use and love Ansible. It’s simple and powerful enough for me to feel right using it.
There is nothing wrong with your method, ie. make a snapshot, clone. Rinse and repeat. I used to do the same thing.
Where any of the orchestration tools shine are slightly more complex scenarios or really time intensive repetitive tasks.
For example, I have a client that have an ecommerce application running on DO with the following setup:
- 1x Load balancer node - nginx
- 2x applications nodes - nginx + php-fpm
- 1x Db server running Percona Mysql
- 1x staging server
Normal monthly maintenance for me is to do the following:
- Disable New Relic/Pingdom monitoring.
- Update the staging server to see if anything major broke.
- Put app into maintenance mode which requires setting Nginx load balancer to point to static site.
- Take 2x app + 1x db server offline and make snapshots. (Always backup!)
- Once backed up, update the systems.
- Test the applications.
- Upgrade load balancer
- Put the live site back online.
- Enable New Relic/Pingdom monitoring.
- Crack open a beer for a job well done.
Doing this manually, can be time consuming so an orchestration tool like Ansible lends itself well to automating this.
I can run a single command, to do all of the above in a scalable fashion. Now imagine if the setup involved 20 servers.