VamVan wrote:
Hello All, What is the best method to build and deploy php scripts along the different environments? You can talk about rpm's and stuff My specific scenario is Step1: Developer checks code in to perforce (repo) Step 2: Then I need to upgrade my integration instance. Step 3: Upgrade QA instance Step 4: Upgrade staging Server Step 5: Upgrade production machines What would be the specific build mechanism that I can use for such kind of environments? I also have db scripts that might alter schema. Please provide me samples of any scripts that you might have written to achieve this kid of structure. Any suggestions or scripts will be highly appreciated.
Personally, I use various branches in our repo to do this kind of roll out. I have various (simple) scripts that do all the updating on the various environments and it's usually just a matter of switching to a different branch.
It kind of depends whether all of your productions environments are under your control or not. If they are then you can do a kind of direct access to your repo on them (security considerations aside).
On production, I personally do a pull from the repop to an offline area on a "master" production server, do rsync dry-runs to online areas (to get the disc cache all warmed up) to each production server (there can be more than one!) and then do a quick: disable, rysnc, update, enable run to do the final deployment.
If we know there are no race type issues in our deployment we can opt to avoid the disable/enable bit of it and just deploy it live.
Not much in the way of attached scripts but that how I do it and it works pretty well :)
As a side note, if you have larger load sites, you'll probably be doing some caching cleverness with APC (or similar), in which case you'll probably want to invalidate some caches before update. In order to prevent spike loading upon enabling again, you may also want to do some kind of "priming" of the caches before opening it all to the public.
Col -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php