Some good questions … to get the wheels turning:
- Why are we wasting time on building installations and especially virtual images manually … not once, but multiple times by multiple people? Would it not make more sense investing the energy in adding value to the environments, such as adding hands-on-labs and walkthroughs?
- Is there no way in creating images the same way, ensuring consistency and therefore rapid adoption and stability?
- Would it not be great to fully automate the installation of the operating system, pre-requisite software, Team Foundation Server and Visual Studio Team System?
What have we achieved as part of the VSTS Rangers Virtualizing VSTS 2010 Initiative?
We recently delivered an internal VSTS Drive session to highlight this exciting VSTS Rangers initiative and share some of the achievements. Here are a few extracts from the information we covered and the highlights we thought are worth mentioning.
| || |
When my son had his first 1-hour acrobatic training flight in a L-29 jet a year ago, the pilot in command, Ralf, briefed him for over an hour in terms of emergency procedures, the infamous ejection seat, what “could” happen and how he should react. Ralf conveyed learning’s and experiences from years of flying in a compact and razor sharp focused information transfer session while we watched with interest and horror … this is how we, the VSTS Rangers, view guidance.
The VSTS Rangers Virtualizing VSTS 2010 Guidance has therefore been focused on ensuring that virtualization pitfalls are known and avoided, that effort around virtualization is re-used and that time consuming and error prone manual processes are automated.
The resultant package includes:
- Questions such as “Why Virtualization” and “How to deal with Hyper-V, SQL, VSTS and Non-Microsoft Virtualization Platforms” were investigated and the result is the Virtualization of VSTS 2010 Guidance document.
- The questions focused on whether to use a single or multiple-server environment and whether to go physical or virtual were also included in this guidance document and consolidated in a quick reference poster that is shared between the Virtualization of VSTS 2010 and the VSTS 2010 101 Guidance projects.
- The Virtualization of VSTS 2010 VSTS Rangers Base Image summarizes the manual process of building a TFS and VSTS base image from scratch and refers to the PowerShell scripts and the MDT factory.
| || |
The manual installation, as defined in the Virtualization of VSTS 2010 VSTS Rangers Base Image document, breaks the installation into six main steps, with detailed guidance and granny-ticking checkboxes to ensure nothing is missed.
The 6 main steps entail:
- The creation of a base image, which by default is, but not limited, to Hyper-V,
- the installation of Team Foundation Server 2010,
- the installation of Visual Studio Team System 2010,
- the optional installation of Visual Studio Load Agent 2010,
- The installation of Widgets for 2010,
- the optimization of the virtual environment.
| || |
The comprehensive guidance, based on learning’s and recommendations, defines the complete installation in 6 main steps as mentioned, whereby steps 4 (Widgets) and 5 (Load Agent) are optional and not shown in this illustration.
The base image sequence, shown in the box labelled with a “1”, is made up of 32 steps. The configuration of the operating system and optimization of the environment where identified as the most labour intensive and error prone areas, proving to be ideal candidates for automation.
We focused our partial automation efforts in the areas of operating system configuration and post-installation optimization by creating and documenting a total of 31 PowerShell scripts to deal with most of these configuration and optimization steps. This allowed us to reduce the manual effort, the elapsed time and the possibility for errors when creating the base image in the manual fashion.
The scripts are made up of helper scripts, configuration and optimization specific scripts and are also available in consolidated pre-install, post-install and HOL-setup scripts as shown.
Following the guidance you therefore have the option of doing everything yourself, step by step, and of using these scripts to partially automate the manual installation process.
So, while we have achieved our primary objectives with the guidance and partial automation, we always had the dream of automating the complete process. We evaluated the use of Powershell scripts, developing our own custom solutions, re-using custom build solutions such as Phantom, and the use of standard Microsoft Solution Accelerators to achieve the automation.
What else can there be?
| || |
Using the Microsoft Deployment Toolkit (MDT), a standard Microsoft Solution Accelerator, we created the VSTS Rangers image factory, which we have deployed in Holland and in Canada, with another factory emerging in South-Africa and another planned in the United Kingdom.
The core objectives of these factories are to:
- Fully automate the installation and configuration of the VSTS Rangers base images,
- to reduce WAN traffic and latency by creating regional factories and
- to allow the users of the factories to customize the installation and configuration process for specialized images on demand.
The results include reduced effort, time and cost, and most importantly consistency of internal and external VSTS images. While we fully support the push model for images, we are introducing a decentralized model of automating the installation of the VSTS 2010 environments where needed. This not only empowers the field, but also reduces the latency and the traffic introduced with the push and download models we are used to and which are frowned upon in bandwidth-starving regions, such as Africa.
The factory is based on the Microsoft Deployment Toolkit (MDT) … refer to http://technet.microsoft.com/en-us/library/ee376932.aspx for more information.
| || |
The manual process of installing a single server TFS & VSTS virtual server that took anywhere from 12 to 24 hours, has been reduced to 6 hours installing two images concurrently, each using 1024MB of RAM … yes the installation, the configuration and the use of TFS and VSTS 2010 on a 1024MB RAM virtual image works, although the performance reminds me of 1980’s mini-computers.
Using decent (realistic) hardware … more iron … and configurations we have reduced the process to less than 3.5 hours elapsed and the install time to less that 2 hours.
“BUT” what did we really achieve?
Well, over the past few days I have been building many Single Server TFS and VSTS virtualised environments, based on MSDN or TRIAL media, using WSS 3 or MOSS. All I literally did was to create VMs, point at an ISO file, define machine name, CLICK … go away and return later to configure TFS, confirm continuation and completion of automated process, returning a while later to pickup the image. Admittedly it took a lot of planning, research and effort by the team to get this far, many midnights were celebrated by Paul fine tuning the scripts and us testing … but the result is definitely worth it!
The new and evolutionary concept could probably be compared to the new age fire and forget cruise missiles … compared to the Battle of Britain aerial combat, where pilots had to do everything themselves from beginning to end. The latter is obviously the manual step-step installation scenario, which is not bad, but I definitely love the automation better :)
… Photo credit: Kentron Division of Denel (Pty) Ltd . MUPSOW Cruise Missile Dropped from a Cheetah D Aircraft.
Were do I find a factory or more information?
So where do you go for more information if this initiative interests you? By default please feel free to contact the VSTS Rangers. If, however, you are located in South-Africa I would recommend that you chat to Zayd Kara who is building the South-African based factory and if you are in Holland to Paul Meyer, who is managing the Holland based factory and is also our esteemed VSTS Rangers Factory Manager, in short master :)
| MDT – Microsoft Development Toolkit | MSDN – Microsoft Developer Network | MOSS – Microsoft office SharePoint Server | SQL – Structured Query Language | TFS – Team Foundation Server | RAM – Random Access Memory | VSTS – Visual Studio Team System |