How do you organize your virtual environments?
Perhaps the subject isn't quite correct, but here's what I'm after.
Suppose you have five applications, each going through a series of
dev, test and prod phases. I will assume without further explanation
or justification, that the dev phase is wholly within the purview of
the developers who gets to organize their environments as they see
The test and prod phases involve actual deployment though, and so
require a defined virtual environment. The five applications need not
be terribly closely related. How do you organize those environments?
The two extremes would seem to be:
* per-application virtual environments, so ten in all
* a common virtual environment for all applications, so just test and
prod, two in all
My way of thinking about virtual environments has always leaned in the
direction of a per-application setup, as that requires less
coordination (particularly when deploying to production), but I'm
willing to be convinced to move in fewer-environments-is-better
direction. Here's a concrete question for people who favor fewer
environments: Suppose application #4 requires an update to some
package used by all five applications. What's your protocol for
deployment to test and prod?