Re Environments: We tend to run 4 environments, development, testing, staging and finally production. It is a good idea to run the environments as separate as possible.
Development is generally the dev's own machine. Anything goes here. Testing and staging we tend to run on a separate VMs and production is preferably run on its own hardware or at least in a separate resource pool on your favourite virtualization platform. Reason for having separate testing and staging is this: Testers will do dev testing in the test environment which will have different software builds/versions of the underlying stack. Staging environment is kept as a copy of the production (in terms of software) in order to pickup any pesky deployment issues. In other words we deploy twice to try and avoid last minute deployment hair pulling. Re Release Management: Code releases are all done from a central repository. CVS/Subversion work OK for this, but I'm a fan of mercurial these days. It's easy enough to designate a Mercurial repo as a central point that all the devs push changesets to. There are several options on the release front depending if your target is a package, installer or simply a website update. For simple site updates I tend to just pull from the code repository branch. I have also built distribution packages but that only becomes worthwhile if you need to update a number of hosts. Good starting point for the release management can be found at http//www.freebsd.org/doc/en_US.ISO8859-1/articles/releng/index.html HTH dali From: [email protected] [mailto:[email protected]] On Behalf Of Aaron Cooper Sent: Wednesday, 22 July 2009 10:06 a.m. To: [email protected] Subject: [phpug] Environment setup, source control and Deployment procedures I know this topic depends alot on the organization, but I am looking into Development/Staging/Production enviroments, how they interact with source control (SVN) and Deployment procedures from Staging to Production in a bid to build a case study for my employer. While I totally understand the environment side of things, just how source control fits in to each environment, and deployment procedures are a bit grey for me. I'm also a bit grey on how each environment should be setup in terms of hardware. Obviously Production should be on it's own, but is having Development and Staging on one box a terrible idea? What I am looking for is examples of systems from Development to Production. I was wondering if you lot know of some good literature or online resources on this topic (with examples). PHP specific examples aren't nessecary, but a Web Development focus would be handy obviously. Cheers Aaron --~--~---------~--~----~------------~-------~--~----~ NZ PHP Users Group: http://groups.google.com/group/nzphpug To post, send email to [email protected] To unsubscribe, send email to [email protected] -~----------~----~----~----~------~----~------~--~---
