Why do I need this?
Microsoft sells a range of tools to support a project from ideation to release and beyond. In Microsoft’s ALM (Application Lifecycle Management) vision: you create work items (requirements, user stories, bugs) in Team Foundation Server (TFS), write your code in Visual Studio, commit to Team Foundation Version Control, build it in Team Build, test it with Test Manager, release it with Visual Studio Release Management, and use many more bits/features. This could all be done locally (on-premises), hosted in the cloud using Visual Studio Online, or as a hybrid of these two.
This is a lot of components! You may want to build a proof-on-concept to see what bits you want and whether it will work for your team. But it’s a massive task to install, configure and trial all these components. Even then, your proof-of-concept will lack a realistic project, making it a dull trial experience.
Enter the Visual Studio ALM VM, aka the Brian Keller VM! This is a virtual machine image that’s built and maintained by Microsoft. It has the whole Microsoft ALM stack pre-installed and configured. There’s even a couple of example projects, Tailspin Toys and Fabrikam, with their own team members, history, release, commits and bugs.
Okay. How do I get it?
To get the Brian Keller VM, go to http://blogs.msdn.com/b/briankel/archive/2014/09/19/now-available-update-3-refresh-of-visual-studio-2013-alm-virtual-machine.aspx. It’s a 27Gb download that extracts to an 80Gb machine image. Brian gives great information about using Free Download Manager to help with the download. You will need Hyper-V to run it. The VM image won’t run on Azure or AWS unfortunately.
The Brian Keller VM is a Windows 2012 R2 machine. The whole ALM stack is there: Visual Studio 2013, TFS 2013, Visual Studio 2013 Release Management, etc.
Along with the VM you get a set of tutorials and hands-on-labs which lead you through scenarios (e.g. a build fails due to a test failure).
What’s the catch?
There are a few issues with the machine.
- The software is licensed for only a few weeks – at that point you need to restart from a clean image.
- The clock is set to 2013 – setting it to today’s date unleashes all sorts of weird behaviour for me. I’d recommend leaving it at 2013 if you can , but this may be a problem if you want to install something else to test how it integrates with a MS tool which requires the real date for license trial purposes.
- The VM hasn’t been updated since September 2014, so some recent components (e.g. Visual Studio Update 4) are missing. But you can update these yourself. It also won’t have the latest Visual Studio 2015, which is just now available as a release candidate. I’m not sure if Microsoft has any plans to update the VM.
What about the database?
SQL Server 2012 R2 is also installed on the VM, and there are also some example databases.
ALM is about doing repeatable, reliable releases, but the examples on the Brian Keller VM and the tutorials only address application code. The database is left out, I guess you’re supposed to just ‘wing it’ and write DDL/DML directly against the production server? Database development and release should, no, must be done in a reliable, repeatable, automated and fail-safe way – not by randomly hacking at the production server or relying on a manual, error-prone process that doesn’t align with the application.
At Redgate we’ve been working hard to solve this problem. SQL Toolbelt and DLM Automation provide tooling for database development, continuous integration, testing and release. I’ve written an article that covers all aspects of working with DLM (Database Lifecycle Management) on the MS Stack using the Brian Keller VM. I admit it’s a big article, but it should cover everything you need to know. It was great using the Brian Keller VM to get started quickly and show how we integrate with Microsoft tools.
If you’d like more information about setting up DLM in your organization, leave a comment or contact us at firstname.lastname@example.org.