I no longer work at Microsoft, so please don't bother leaving a comment here or trying to contact me through my MSDN blog.
You can find my new blog at http://www.technologytoolbox.com/blog/jjameson. My new site also provides copies of all posts from my MSDN blog.
In a comment I made last week on one of my earlier posts, I mentioned how a few months ago I started using Hyper-V snapshots so I can quickly rollback my SharePoint development VMs to key points in time.
The following screenshot shows the snapshots for my primary SharePoint Server 2010 development VM (FOOBAR5):
For the sake of explaining these various snapshots, let me relabel them in this post as follows:
The first snapshot was taken after installing SharePoint Server 2010 and creating the SharePoint farm. Note that there are number of installation and configuration steps leading up to "Snapshot 1." Here are the headings from the installation guide to give you an idea of what's included up to that point:
As the actual snapshot name implies, "Snapshot 1" is essentially a baseline SharePoint Server 2010 configuration without any Web applications (not counting Central Administration) or service applications.
In case it's not immediately obvious, the sections prefixed with "DEV" are performed in development environments only (since the same installation guide is used for Test and Production environments as well). It's also worth calling out that separate VMs are used as domain controllers for the development environment. I should also point out that my development VM actually runs Windows Server 2008 R2 and SQL Server 2008 R2 (a slight deviation from the Test and Production environments, but one that I'm willing to accept the risk for).
As you can imagine, it takes a couple of hours (or more, depending on how quickly you can "fly" through the installation guide) to reach the point where "Snapshot 1" was taken. The goal, however, is not to optimize that part of the process -- since it is expected to be done very rarely (compared with other "rebuild" processes).
Now consider "Snapshot 2" which was taken after following the steps in one of my previous posts to create and configure a sample Web application using claims authentication (including a custom login form). "Snapshot 2" was created yesterday morning at 7:19:27 AM. In other words, it took me about 20 minutes to:
While 20 minutes isn't a lot of time to create and configure a new Web application, taking a snapshot of the Fabrikam Demo site allows me to revert to that baseline with almost no effort whatsoever. Essentially I just have to wait for the VM to boot after applying the snapshot (since I tend to take snapshots after shutting down the VM).
After creating "Snapshot 2" to baseline the Fabrikam Demo site, I then reverted the VM back to "Snapshot 1" and proceeded to create and configure the "Cloud Portal" environment for my current project (hence why I obscured the client name in the screenshot above). Unfortunately, the "Cloud Portal" deployment isn't quite as automated as the Fabrikam Demo site and therefore it took me just over an hour yesterday to go from a "baseline SharePoint Server 2010 configuration" to a fully configured "Cloud Portal" environment.
For the sake of understanding what is included in "Snapshot 3", here are the headings from the installation guide:
Whew! That certainly is a lot of steps to complete, but fortunately many parts are scripted so it doesn't take as long as you might think. [To be honest, I do skip a couple of steps -- specifically configuring SSL and the BlobCache (a.k.a. "disk-based caching") -- since this is a development environment after all.]
There is quite a bit more I want to cover on this topic -- such as why "Snapshot 3" is not a child of "Snapshot 2" and how snapshots provide tremendous value when deploying frequent releases (i.e. short sprints). However, I'm running short on time this morning, so I'll tack "Part 1" onto this post and defer the rest to "Part 2" in this series. Stay tuned.