I've spent a plenty of hours trying to find a full stable solution for an application deployment (in my case it's php
). There are a lot of SO answers, where phing / capistrano / hudson are being proposed, but such propositions make me feel sad.
The idea is to have a magic box with all your configuration for all environments (like dev, prod, test and so on), to provide a possibility to simply type magicbox deploy --env prod
on a bare linux machine (VPS) to fully deploy an application, including:
- configured nginx / apache
- configured php with all dependencies and mods
- configured mysql with needed users and databases
- configured search engines (like Sphinx, ElasticSearch)
- a system to manage the installed box, like making soft / hard relaunch (without / with lose of persistent data)
I was inspired with Vagrant / Docker, because they seem very similar to what I am looking for, but a lot of guys are saying they are not ready for use in production. Moreover, I am a dabbler in virtualization and it is not clear to me how Docker works, what using Docker means for a machine perfomance and is it possible to use it with any VPS provider.
Thanks a lot for sharing your expirience.