Be sure to have a look at phing too http://phing.info/ It's a fantastic tool for project deployment.
Cheers, William. On Wed, Jul 22, 2009 at 1:16 PM, Dan Khan<[email protected]> wrote: > > +1 Dalibor. > > We have a similar setup. > > Dev - LAMP stack Vista - local branch development > Testing - LAMP stack Debian - cutting edge SVN trunk, auto updated > from repo regularly/each commit > Staging - LAMP stack Debian - deployment test servers running against > real anonymised production data/same hardware spec > Production - externally hosted debian servers > > Dev is local developer PCs > Testing and Staging are VMs on a single quad-core 12GB RAM internal > server running VMware ESXi. Stagin envinroment has duplicate hardware > and software configuration/versions as production versions. > Production is hosted externally by a variety of providers > > We also run a number of internal (virtual) linux servers to manage SVN > server, internal DNS, UPS, dev/ops wiki, release management, CMS, > backup, scratch servers, etc. > > We use SVN in house for all source code/ops scripts - moved inhouse > from offshore hosting for a massive speed increase - from 2Kb/s to > 3Mb/s - merge in 5 seconds :) We have a local backup NAS server for > internal and production servers - will migrate scripts to AWS S3 over > time. > > Custom rolled PHP deployment scripts from our internal release server > to staging and production (auto export > SVN->Local->prep->SSH/Rsync->Semi-full automated live rollout) > > On my list to investigate phpUnderControl, SystemImager, Puppet, Chef, > and a number of other automated deployment and system management > tools. > > HTH > > Cheers, > -Dan > > On Wed, Jul 22, 2009 at 10:40 AM, Dalibor > Andzakovic<[email protected]> wrote: >> 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] -~----------~----~----~----~------~----~------~--~---
