I am new to this and I have almost made my decision to go with Ansible. But I would like to have some opinions here.
If you can afford to embrace immutable infrastructure (you should be) then you can go a long way with docker and shell scripts. A wide variety of situations can be elegantly modelled around the disposable container oriented approach and docker's built in orchestration capabilities are very likely to be adequate for managing your container farm as you scale up.
Integrating docker with your CI workflow is likely to be all you need for building and scaling a cloud based saas service in present era.
If however, that is not the case (you need to manage legacy systems, need to orchestrate stateful applications or windows systems, have systems that require much lower level of control) then I would strongly recommend looking into puppet. Puppet's declarative syntax and unified object oriented view it provides is much more manageable then task oriented imperative solutions or wrappers over shell scripts.
Puppet is interoperable with docker and you can use puppet to manage containers, can run puppet server in docker container as well as manage container farm orchestration with docker.
Sprinkle a little Terraform in there: upguard.com/articles/infrastructure-as-code-showd…
For the moment i don't use anything, but i have intention to learn a little of Docker and maybe Ansible :)
Mev-Rael
Executive Product Leader & Mentor for High-End Influencers and Brands @ mevrael.com
Thumb up who pressed first option Ansible to view results because there is missing option - nothing.
I am also new here and for me there are no differences between all. Any simple one I should try to understand it better? They all are IaC? I have heard only about Puppet, Chef and Terraform.