11
Dec

BizTalk Deploy Tool

I’m currently working in a stabilization phase on a deployment application for BizTalk 2006 projects. We based the solution on the Enterprise Solutions Build Framework and the BizTalk Explorer Object Model. Basically our solution has a GUI that makes it possible to point out which artifacts one likes to deploy (from the developers local BizTalk server).

The application then figures out all the dependencies that the selected artifacts has (In our solution an Orchestration for example might have > 20 dependencies to different schemas, pipelines, C# libraries etc, etc). 

All DLL:s of the different artifacts are then extracted from the local GAC (where they exist when deployed to the local BizTalk). These DLL:s are then packed in to one single deployment package also containing a single XML file that keeps track of the dependencies and the order of witch they have to be deployed in BizTalk (the most depending schemas first and so on). The XML file also contains other meta data information such as ports the artifacts use etc.

This package is then loaded into another part of the application were it’s possible to point out the different servers one like to deploy to. This view then shows information about what has to be done on the server to make it possible to deploy without conflicts (One might have running Orchestration or suspended messages for example that has to be stopped or terminated.). At this stage we also check the naming of the different artifacts. These have to comply with the naming conventions that are configured in the config file of the applications (a warning is shown if the artifact doesn’t validate towards these).

When no warnings (its possible to override a warning) or conflicts are shown one can deploy. We then move the deploy scripts to the servers and use the MSBuild tasks in the SBF to deploy everything for us. We really saved some serious time with this approach and even if it took us a while to get everything working it’s been well worth it!

We have a huge feature list for the next phase of the tool and are planing to and support for BizUnit tests in the DLL:s (so that one gets a warning when deploying a Orchestration without etc). We also like to add more meta data about the port and make it possible to configure new ports as a part of the deployment process. Etc, etc …

Feel free to comment or write we line for further information about this approach. It would also be interesting to hear about other approaches for deployment and what kind of features these solutions have.

There's 2 Comments So Far

  • Carl
    December 12th, 2006 at 7:00 pm

    Hi Richard! Seems like you have got yourself a pretty nice deployment application/framework. I have actually tested out the the deployment msbuild tasks from Microsoft UK along with BizUnit myself. I held a presentation of the findings at NNUG in Oslo a couple of weeks ago. You can find the presentation, right here. Its only in Norwegian, but I guess that you understand :-) I build a simple example application (of course purchaseordersystem) that are tested with BizUnit and automatically built/deployed/enlisted/started with a msbuild script!
    I hope that I might get some real project experience with Biztalk very soon at Bekk Consulting, so we better stay in touch to exchange experiences!
    Later.

  • Richard
    December 13th, 2006 at 10:15 am

    Hi, I’ve already had a look at your presentation (I’m still at the NNUG news list so I saw you were presenting). Looks nice (I was actually planing to go but had to cancel.).

    We’ve just started using BizUnit and it’s really cool. However in a project this big and with so many servers we’re having a lot of problems with getting basic stuff like daily builds and automatic testing to work smoothly … I’ll be posting about it soon. I’ll also try to explain our deploy tool a bit better.

Share your thoughts, leave a comment!