As for testing environments, take a look into the principles of continuous integration (many resources available) and continuous deployment (especially Eric Ries's blog: http://www.startuplessonslearned.com/). Some tools commonly used to this effect: Git/SVN for source control; Hudson/Cruise Control/Team City for builds; Selenium for testing.
Finally, applying patches and updates to a server falls into the domain of systems administration, so I'd suggest looking for articles on patching/updating high-availability sites. Note, however, that cloud computing is a huge game-changer here. Whereas at many enterprises, applying patches is an arduous (and tedious) quarterly effort culminating in an late-night maintenance window with many hands on deck (all crossing their fingers), clouds afford their adopters the ability to simply fire up new, updated servers alongside the old ones, allowing them to be thoroughly tested in place before any traffic is redirected.
-Mike (@mikebabineau)