1

After having just started using Microsoft Release Management, I am more and more convinced that it is not well suited to run integration tests. This might be a false feeling I'm having, and I'd love to get more input on this. When we first considered it, I had the intention to run the tests defined in our test plan through it's pipeline, but now I'm seeing that we should be running those as frequently as possible. We would like to run integration testing every night, but our release candidates are only defined at the end of sprints, so using Release Management for that seems conflicting.

With the tool out of the equation, we are considering exploring the Lab Template again. We did some very minor tests with it a few months ago in a legacy project but never went too far. My main concern now is that both stages need deployment:

  • the Release Management pipeline needs to deploy our projects to the QA and production environment
  • the Lab Template also needs to deploy the project on a few virtual machines to run integration tests on

The Release Management uses some very nice abstractions to achieve that. You can code machine scopes and define components based on the drop folder structure to define each part of the whole application to be deployed. On the other hand, the lab management workflow does not support this (or perhaps I'm just missing it). The standard way to make deployment work for lab testing, is to write a custom power shell script that moves the files from the build drop folder to the correct places, creates the application pools for web projects, and stuff like that, all by hand.

Ideally, I'd like to just share the entire deployment workflow between both tools and, since the Release Management way of doing it seems much simpler, I'd use that. This would make it easier to maintain both pipelines at the same time, which I assume is actually commonplace.

What is the correct approach to share the deployment code as much as possible between the two tools?

Community
  • 1
  • 1
julealgon
  • 7,072
  • 3
  • 32
  • 77

1 Answers1

2

I would expect that better integration between RM and MTM/LM will be a future feature. In the interim, you could investigate using Desired State Configuration to handle having a single script that configures environments for you.

DSC support isn't really out-of-the-box in RM Update 2, but RM Update 3 will have built-in support for DSC to both Azure and on-prem VMs. Update 3 CTP 1 is out right now, but it's not production-ready.

You can still use DSC from RM in Update 2, it just requires a bit more work.

Daniel Mann
  • 57,011
  • 13
  • 100
  • 120
  • I've never heard of such concept, very interesting. Are you from the RM development team by any chance? Can you share a few links on how to make it work with the current version of the tool? – julealgon May 31 '14 at 23:40
  • 1
    @julealgon I'm not on the RM development team, I just do a lot of work with it. This is a good place to get started with RM/DSC: http://blogs.msdn.com/b/visualstudioalm/archive/2014/05/22/release-management-for-microsoft-visual-studio-2013-with-update-3-ctp1-is-live.aspx – Daniel Mann May 31 '14 at 23:46
  • Very nice, I'll certainly investigate that further in the coming weeks. I wonder if there is any specific article on using DSC inside Lab Management, any pointers on that? Also, it's not common to come across someone who has extensively used RM. Would you consider taking a look at my linked question? I feel you would have a lot to share about that. – julealgon Jun 01 '14 at 02:52