The feature branching approach, described here: http://nvie.com/posts/a-successful-git-branching-model/ is great. We want to follow it.
We have production, qa, staging, integration and local environments. Our project is kind of standard website, with PHP backend that exposes API, and AngularJS client, that consumes the API. Our infrastructure architecture is not super simple. We have Varnish, Nginx, Apache2, memcache, proxies, some custom middleware, mysql, elasticsearch and more. Code from our repos doesn't change the infrastructure, it's just applications' code in GitHub.
We usually work on 3, 4 feature branches at the same time.
Is it good approach to try to have all feature branches deployed to one environment, and just add one more Nginx/Apache2 vhost, add one more db schema, to the same server etc?
We could have 3, 4 separate environments for those feature branches, but I'm looking for a solution, to have it done dynamically on one environment. Should chef/puppet deploy new server configuration (vhosts, db schema etc), named after feature branch after a hook coming from GitHub?
Any other approaches?