Brian Keller

Director of ALM Evangelism for Microsoft

  • Brian Keller

    Now Available: Visual Studio 2015 ALM Virtual Machine and HOL's / Demo Scripts


    TL;DR - the Visual Studio 2015 ALM VM and HOL's / demo scripts can be found here:


    It's been almost a year since I transitioned away from my role as an evangelist for Microsoft's ALM/DevOps offerings into a role as a program manager on the Visual Studio Online / TFS team. It's been a fun ride and I learn something new every day from my outstanding co-workers.

    But the #1 question I always get when people learn about my new role is "What about the ALM virtual machines you built?"

    I'm pleased to say that the ALM VM has landed in good hands with my colleague Sachin Hridayraj. He has taken over this deliverable and has already started to make his own improvements to it. You can check out the brand new Visual Studio 2015 version, complete with a revised set of hands-on-labs and demo scripts, over at





  • Brian Keller

    Team Foundation Server 2015 Product Key and VLSC Availability


    Post updated Aug 19, 2015 to reflect VLSC availability.

    Since Team Foundation Server 2015 RTM was released last week, we’ve already seen a lot of people upgrade and start taking advantage of the
    new capabilities. We have also received several questions about where to find a product key. The answer depends on the channel you are acquiring the software from.

    • MSDN Subscribers should download and install the TFS 2015 RTM bits from MSDN Subscriber Downloads. These bits are pre-keyed, meaning that the product key is automatically populated during setup and the user will not be prompted for a key.
    • For customers who have installed TFS 2015 trial (which is the SKU you get if you download from you will need a product key when you are ready to convert it to a full installation. For now you can either get this on the physical TFS retail media, or via MSDN Subscriber Downloads (see screenshot below).
    • Volume License Subscribers can now download bits on VLSC. These bits are also pre-keyed, meaning that if you download and install from VLSC you shouldn’t be prompted for a key. If you are a VL subscriber upgrading from trial you will also find a product key listed as part of the download description (see the second screenshot below).



    8-19-2015 8-52-51 AM

    As a final note, if you are find yourself with an expired TFS Trial while you are in the process of purchasing the product you can temporarily extend your trial period by following this guidance.

  • Brian Keller

    Now Available: Update 3 refresh of Visual Studio 2013 ALM Virtual Machine


    I’m pleased to announce that today we’ve published the Visual Studio 2013 Update 3 ALM Virtual Machine. This includes several updates to the hands-on-labs / demo scripts to show off some of the new capabilities which have been added in Updates 1 – 3.

    With the continuous stream of great updates coming to Visual Studio every few months I haven’t been able to update the virtual machine with each new update, so I didn’t publish a new VM for Updates 1 or 2. But with Update 3 we hit critical mass of some great ALM capabilities which demanded an update.

    For people who are interested in this level of detail, I’ve included a high-level changelog below which details the updates we’ve made in this version of the VM and labs. You can download the latest version of the VM and corresponding hands-on-labs / demo scripts at You can find a list of our other ALM VM’s at As always, we love hearing your feedback.


    Virtual Machine

    • Upgraded to Windows Server 2012 R2
    • Applied all recent Windows Updates
    • Increased the size of the VHD file to account for the updates
    • Added TFS 2013 Power Tools
    • Other smaller fit-and-finish fixes and updates based on user feedback


    Connecting to Visual Studio Online Using the Visual Studio 2013 ALM Virtual Machine

    • This is a brand new document which explains how to disable the date & time hack and make other special considerations if you want to use this virtual machine to evaluate Visual Studio Online.


    Agile Planning and Portfolio Management with Team Foundation Server 2013

    • Added steps showing the ability to show/hide in-progress work items on backlog
    • Added notes regarding work item tagging support in queries and in Visual Studio
    • Added step to pin lightweight chart in web access


    Debugging with IntelliTrace using Visual Studio Ultimate 2013

    • Added Exercise 2, Using IntelliTrace with Call Information


    Embracing Continuous Delivery with Release Management for Visual Studio 2013

    • Added optional exercise demonstrating release to Azure using DSC
    • Changed “Release Management Deployer” references to “Microsoft Deployment Agent”
    • Updated manual release to trigger from Configure Apps | Release Templates instead of Releases tab in Release Management Client.
    • Added note to end of Ex. 3 regarding tagging support


    Getting Started with Git using Team Foundation Server 2013

    • Now creating the new website using the ASP.NET Web Application wizard
    • Added note about CodeLens features for Git


    Introduction to Platform Testing with Microsoft Test Manager 2013

    • Run settings are now located in their own sub-tab in MTM (Plan | Run Settings)


    Introduction to Test Case Management with Microsoft Test Manager 2013

    • Run settings are now located in their own sub-tab in MTM (Plan | Run Settings)


    New Collaboration Experiences for Development Teams using Team Foundation Server 2013

    • Added note about CodeLens support for Git sources to end of CodeLens exercise


    All 25 labs include the following:

    • Screenshot updates as necessary, other minor edits
  • Brian Keller

    Building your Dream DevOps Dashboard with the new Azure Preview Portal


    Last week at Build 2014, Bill Staples showed off a preview of the new Microsoft Azure portal for the first time. You can jump to his demo in Scott Guthrie’s keynote.

    The new portal was built from the ground up to put your applications at the center of the experience. This may sound like an obvious concept, but let us stop for a moment to consider the state of cloud development.

    When developing for the cloud today, we are oftentimes managing individual resources (databases, storage, cloud services, virtual machines, and so on). It’s left up to us as cloud developers and IT professionals to piece these resources together in some meaningful way and manage them over time. Have you ever provisioned a cloud resource and later forgot what it’s being used for? Is this resource important, or was it just for testing? Which application was it for? I’m certainly guilty of this. The cloud makes it easy to use resources, and likewise it’s easy to waste them if you aren’t careful.

    Furthermore, the planning, development, and testing of those applications is usually done elsewhere, such as within Visual Studio Online. Monitoring the health of those applications and troubleshooting problems might be done in yet another portal, such as with Application Insights. Billing is displayed on a separate page. And so on.

    The new portal brings together all of the cloud resources, team members, and lifecycle stages of your application and provides you with a centralized place to plan, develop, test, provision, deploy, scale, and monitor those applications. This approach can help teams embrace a DevOps culture by bringing both development and operations capabilities and perspectives together in a meaningful way.

    In this post, I want to highlight one of my favorite capabilities of the new portal, which is the ability to create a rich DevOps dashboard for your application such as the one below. Go ahead and click to open the full image. It’s worth it. I’ll wait here.


    Pretty nice, huh? Believe it or not, this took us only about 15 minutes to create and fine tune using the new portal. Everything you’re looking at here is real, nothing is faked or demo data. The application in this screenshot happens to be the Office blog ( which runs on Azure Web Sites. We simply opened up that Azure subscription in the new portal ( and started adding the parts we wanted to visualize.

    The new portal allows each user to transform the portal home page (called the Startboard) into their own customized dashboard. You can make it your own and keep evolving it over time to suit your needs.

    Let’s take a closer look at what you’re seeing in the dashboard above.

    Resource Map

    I mentioned that the new portal was designed to bring together all of the individual resources of an application into a consolidated view. This is most evident by looking at the Resource Map part on this dashboard. The Resource Map is a visualization of a Resource Group, which is a model where the relationship between resources is stored (along with other important information). For this application, you can see the relationship between the production web site, the staging web site, and the billing plan. For other applications you might also see databases, database servers, or even Visual Studio Online team projects where the source code is managed and bugs related to this application are being tracked. To learn more about Azure Resource Groups, watch Azure Resource Group Model: Modern Management for Modern Cloud.



    The new portal brings in Application Insights capabilities which provide you with a wide range of analytics for your applications. This allows you to understand if your application is available, how it is performing, and even how users are interacting with it.

    For example, this graph shows you the top 5 pages which are being requested for your application:


    Clicking the part above opens a new blade which details the top-requested page URL’s.


    Not surprisingly, the default page was the most-requested page. But a close second was the announcement of Office for iPad.


    The Browsers part is another simple but effective chart which helps you understand the makeup of web browsers which are accessing your application. In the screenshot below, I have clicked on Internet Explorer in the Browsers blade to open the Internet Explorer blade. This new blade shows me a breakdown of the various versions of Internet Explorer being used by my application’s visitors. I then clicked on the pie chart wedges making up Internet Explorer 9, 10, and 11. This gave me the sum total (75%) of Internet Explorer traffic attributed to those browsers. This can be helpful in making product development and testing decisions regarding which browsers I should be supporting.


    Service Health

    Building any cloud application means that you are taking dependencies on a range of services which are probably outside of your control. Since no cloud vendor can guarantee 100% uptime, it is important to understand at a glance if there is an outage for a service you depend on.

    The Service Health part provides this global view across Microsoft Azure.


    You can click on this part to open a set of blades which allow you to explore each Azure resource type and the regions each resource is available in. You can easily pin the resources you care about back to your Startboard to tell at a glance if a service you care about is degraded or offline.



    Pricing and Billing

    One of the top-requested features by Azure customers is for more visibility into how much cloud resources are costing them. The new portal provides unprecedented transparency into this information. The parts below show me the billing plan I have elected for this application, along with a projection of the total estimated charges for the month. The Current Spend part you’re looking at below for the Office blog illustrates the economics of Azure Web Sites – this is for a site which serves up hundreds of millions of requests per month.


    Clicking on the Pricing Tier part allows you to choose a different pricing plan for your Azure Web Site. From here I could select a new pricing plan, click Select, and in seconds my Azure Web Site would scale to the new resource model.


    Customization Mode

    Most customization is performed by entering a customization mode in the portal. If you are familiar with customizing a Windows Phone or a Windows 8 start screen you will be immediately familiar with customizing the portal. Enter the customization mode by clicking on your user avatar and selecting Customize.


    It’s worth noting in the screenshot above that “Restore default settings” would reset your Startboard back to the default state. Avoid clicking this if you have invested in creating a customized dashboard.

    Alternatively, you can also right-click almost anywhere in the portal and choose Customize.


    Once in customization mode you can select an individual part and click the orange pin to change the size of the part. Most parts support a range of tile sizes, each thoughtfully designed to present the right amount of information for that configuration.


    You can also drag and drop parts to reposition them. A positioning grid helps you understand your alignment options.


    When you are done customizing, click Done in the upper-right corner:


    Or right-click anywhere and select Done customizing:



    The portal works really great on a touch-screen device. I’ve tried it on my Surface, and on an iPad, but my favorite experience so far has to be on one of the Microsoft Perceptive Pixel devices we had at Build. We loved it so much, in fact, that we rolled it out on stage for Bill to show off during the keynote:


    I expect that in the not-too-distant future these types of high-PPI touch-enabled displays will become commonplace in DevOps team rooms. But until then, you can get started with a cheap projector or LCD monitor.


    All of the capabilities mentioned above are available to you today using the new Azure Preview portal. But you should be aware of some of the limitations of the preview.

    Only a subset of Azure resources can be managed from this portal today – namely Web Sites, SQL, MySQL, and Visual Studio Online team projects. More resources will be coming over time, but you can always access the release version of the portal ( when you need to do something that the new portal doesn’t yet provide.

    Additionally, accessing the new portal requires that you are an administrator or co-administrator for a given subscription. This means that in addition to being able to view the health of your applications, somebody with access to your portal could accidentally (or maliciously) stop/delete resources or create new ones. This is no different from granting someone co-admin access to a subscription today, but it’s something to be aware of if you intend to create a centralized dashboard for the entire team. Role-based access control (RBAC) is an important part of the team’s backlog, and this will be coming in the future.


    The new Azure Preview portal paints an exciting look at the future of DevOps. This is a first-of-its-kind experience which brings together all of the individual resources, people, and lifecycle stages of your application into a unified portal. In this post I have just introduced you to a very narrow set of its capabilities, and Microsoft is just getting started. There is a lot of future investment happening which will make this experience even better over time.

    We want to see you take the portal and make it your own. I would love to see pictures of your own dream dashboard created with the new portal. You can link to them from the comments below, or hit me up on Twitter @briankel.

    Thanks for reading!

  • Brian Keller

    New Book: Pro ALM with Visual Studio 2013


    I’m pleased to announce that the 2013 edition of our popular Professional Application Lifecycle Management with Visual Studio book series is now available!

    The purpose of this book has always been to educate people on the breadth of capabilities in Visual Studio and Team Foundation Server which enable software teams to collaborate across the entire lifecycle of an application – planning, developing, testing and operating. The 2013 edition of this book builds upon previous editions by including new chapters on release management, Git, portfolio management, and of course all of the other new and improved capabilities of the 2013 software release.

    This book was written with the entire development team in mind, so whether you are a project manager, developer, tester, operations engineer, release manager, or team lead, our goal is that there should be at least a few chapters in here which will make your life happier and your software projects better.


    As you’ll see from the cover, we finally made it off the boat! Loyal readers of the 2010 and 2012 editions will understand that reference. :-)

    We also picked up another Brian and another Martin! I’m thrilled to have Brian Randell and Martin Hinshelwood join our team of authors for this series. They are good friends and two of the top experts in the world on these technologies who love speaking and writing about this topic.

  • Brian Keller

    New Book on TFS 2013 Customization


    I just discovered a new book on TFS 2013 Customization written by Gordon Beeming, whom I had the pleasure of meeting on my last trip to South Africa. Gordon is one of these guys who I’m convinced never sleeps; in addition to his day job where he administers a TFS server for a large development team, he is also a very active member of the TFS community and is routinely providing suggestions about how to improve the product.

    If you need to learn everything there is to know about customizing TFS 2013, you might enjoy this book.


    It’s just $9.99 on Kindle or $24.99 in print.

  • Brian Keller

    Visual Studio 2010/2012 Hands-On-Labs / Demo Scripts Upgraded to 2013


    The Visual Studio 2013 ALM Virtual Machine was upgraded today to include the sample content and hands-on-labs / demo scripts which were previously introduced for Visual Studio 2010 and 2012 capabilities. This brings the total number of hands-on-labs and demo scripts which work with this VM to 24.

    We also used this opportunity to address some fit-and-finish feedback we received on the initial release of the 2013 ALM VM, so it should be a nice improvement all around. As a reminder you can find the full list of ALM virtual machines here.


  • Brian Keller

    Errors Activating the ALM Virtual Machines


    January 10, 2014 Update: I ran some tests again today and activation is working again! Please follow the steps in the “Working with…” document and you should be able to activate the virtual machine now (if not, please let me know). The bad news is that I still don’t know what caused the activation servers to break in the first place, but I have some open mail threads with that team and I hope to learn more about how to ensure this doesn’t happen again.

    Back in November, people started reporting trouble activating the operating system in the Visual Studio ALM virtual machines.

    While I admittedly don’t fully understand the root cause yet, I do have some more information and suggested workarounds. If I learn more I will update this post.

    The symptom:
    If you follow the “Working with…” document to attempt to activate your instance of the virtual machine, you will receive the following error message.
    Error code: 0xC004C032
    Error description: The activation server reported that new time based activation not available.


    Suffice to say, Windows is not activated at this point and no amount of retrying will fix the problem.

    What’s happening?
    After several tests, we determined that this problem seems to be impacting all Windows Server 2012 “R1” evaluation installations (which incidentally is the edition that the recent Visual Studio ALM virtual machines are built on). Since this worked prior to November, our running hypothesis is that the Windows activation servers are no longer allowing people to activate Windows Server 2012 “R1” evaluations. My speculation is that this is either “by design” since the Windows Server team is trying to encourage people to evaluate Windows Server 2012 R2, or accidentally because it stopped working and the right people haven’t noticed yet. Unfortunately I have been unable to track down the right person(s) in Microsoft to help me answer this question, but I’m still trying.

    What are the implications of not being able to activate?
    The good news is that you can use the virtual machines for up to ten days from when you first boot them up without ever activating. After ten days, an “Activate Windows” watermark will appear in the lower-right corner to indicate that Windows is not activated. When this happens you will be granted a one-hour grace period to use Windows before it will automatically shut down.

    The other good news is that if you are using either the 2012 ALM Virtual Machine or 2013 ALM Virtual Machine, both of these VM’s have their date & time “hacked” to be disconnected from the real world (this is so that the “current sprint” data is correct for the agile planning scenarios). Because the date & time are isolated from the real world, this means that if you boot up the VM, use it for 2 hours, and save state when you are done (or shut down the host PC they are running on) then you will only have used 2 hours of your 10 day grace period.

    Finally, I always recommend that you take a snapshot/checkpoint after importing the VM and prior to completing a hands-on-lab / demo script. This way you can roll back to a previous state if you want to do it again (such as in a classroom environment or if you routinely demo the product). If you use this procedure with the 2012/2013 ALM Virtual Machines then you are pretty much guaranteed that you will never burn off enough time to exceed your 10 days of evaluation.

    What can I do when I use up my 10 days?
    You can always restore to a fresh (unbooted) copy of the virtual machine and get another 10 days. There are a couple of ways to do this.

    1) Delete the VM from Hyper-V and on disk. Then re-extract the original RAR’s and follow the steps to import the VM again.

    2) Another approach is to take a snapshot/checkpoint of the VM immediately after you import it, but BEFORE you boot it up. This way you can always restore to a “fresh” copy of the VM prior to starting your 10 day grace period.

    Personally I tend to go for option 2, but you should be aware that there’s a small disk I/O performance tax with using snapshots/checkpoints. The deeper your tree of snapshots/checkpoints goes, the higher this performance tax will be, although on most modern hardware 1-2 snapshots won’t make a noticeable difference.

    Can’t you upgrade the Visual Studio ALM virtual machines to use R2?
    Given infinite time and resources, we could. But doing so is very expensive. We currently have 3 virtual machines which utilize Windows Server 2012 “R1” and 30+ hands-on-labs / demo scripts, so all of these would need to be updated and tested. Furthermore, you cannot upgrade directly from Windows Server 2012 “R1” evaluation to Windows Server 2012 R2 evaluation; this means we would need to perform a labor-intensive migration of all of the data, settings, etc. as well as QA this against the 30+ hands-on-labs / demo scripts. We will opportunistically move to Windows Server 2012 R2 at the next opportunity, but this probably won’t be until the next major release of Visual Studio.

    Sorry to folks who are impacted by this. Hopefully I can reach somebody in the Windows Server team now that end-of-year vacations are coming to a close to investigate other options. If I find any I will update this blog post as appropriate.

  • Brian Keller

    RTM Version of Visual Studio 2013 ALM Virtual Machine


    The RTM version of the Visual Studio 2013 ALM virtual machine and hands-on-labs / demo scripts are now available!

    You can also find a consolidated list of all of the ALM virtual machines here:


  • Brian Keller

    Fix for InRelease Preview Hands-on-Lab


    Updated November 26, 2013: This blog post is obsolete now. The fix referenced below has been resolved in the RTM version of the Visual Studio 2013 ALM Virtual Machine.

    I have received several reports from people about the InRelease Preview Hands-on-Lab I published as part of the Visual Studio 2013 Preview ALM Virtual Machine not always working correctly. The most common symptom was that the release workflow would timeout during the “Build Web Sites” step. After investigation we determined that this was a bug in the InRelease Preview which will be fixed for RTM. In the meantime, there is a simple fix for getting the InRelease hands-on-lab working in the Visual Studio 2013 Preview ALM Virtual Machine. The steps are below and have also been published to the Hands-on-Lab document.

    InRelease Preview Bug Fix:

    1. Log in as Julia. All user passwords are P2ssw0rd.

    2. Launch the InRelease Console by double-clicking on the desktop shortcut.


    3. Click Configure Paths | Servers then double-click on VSALM to open the server properties window.


    4. Change the IP Address Type to Gateway, then Save & Close the window.


    Note: User Ralph Jansen reported in the comments that he had to wait a few minutes after booting his virtual machine before the “IP Address Type” radio button became active. Depending on the speed of your hardware your situation might be similar.

    5. You may now proceed with the exercises in this lab.

    I’m sorry to everyone who hit this bug. Hopefully this allows you to fully experience InRelease and understand how it might help you with release management in your organization.

Page 1 of 29 (287 items) 12345»