We have a lot of amazing cloud technologies. We've got Vagrant, ZeroVM, SaltStack, Puppet, Ansible, Chef, OpenStack, OpenNebula, Eucalyptus, Foreman, the list goes on and on. There are so many amazing new things coming around almost every day, regardless of the application-genre it is targeted to. We consistently see new configuration management systems, new cloud-management / cloud- and VM-lifecycle management tools, new service discovery tools.
Our cloud ecosystem is growing at an alarming rate and our environments are becoming saturated with tech. One thing I've seen commonly is cloud systems playing leap-frog with these technologies. They jump from something true and tested to something shiny and new. The ones that are simply chasing the shiny are setting themselves up for hard times, in my opinion.
Why not just use SaltStack to setup new development images in Vagrant or build up a base production system in OpenStack? Why do we keep switching directions with our tools and technologies? Not to say that the shiny is not tested and efficient, but why pick a "baby" of a project over a full, mature product that totally rocks in deployment?
Our cloud tech situation is quite similar to this:
And I won't lie, I've thought of doing that exact thing. And I still won't lie, I've switched technologies a bit too. I went from an internal network running VMs on VirtualBox to FreeBSD's Bhyve for a more native approach. I started with Puppet for managing my jails and quickly migrated to SaltStack for my config management, and that's where I've stayed. I've tried NIS, switched to LDAP, then to a PostgreSQL-based auth system, then back to LDAP, only to ditch it all. It wasted days of my time just to do something that I could better manage with SaltStack through a simple state and some pillar data.
I guess the moral of this story is: Stick with something stable. Something you know will work. Something efficient, somewhat fun, easy to maintain and manage, and of course, something mature. Keep it simple and stupid. Less complexity in your management system can help reduce headaches when things start going down.
TL;DR: Stick with mature cloud technologies, don't bunny-hop around. Always prepare for the absolute worst and try to keep it simple.