locked
Deployment Best Practice RRS feed

  • Question

  • Hi everyone,

    I am looking for some best practice on how to deploy BizTalk applications in real world environments.

    I have a range of environments, including Test, SandBox and Live

    I have 3 seperate BizTalk applications that I need to be able to automatically deploy onto any of these environments with the correct configuration. At this moment in time I do not know if these apps are using the ESSO DB, the BRE or BAM.

    In general, what are my options here in the case where...

    1) I have access to the actual biztalk projects (so MsBuild can be used)
    or
    2) Only have access to MSIs (is MsBuild useable in this situation?)

    I understand there are some BizTalk utils (BTSTask,Deploy) that can help, however and guides or experiance on this matter would be greatly appreciated.

    I'm not looking for instructions on how to use these tools, instead how and what tools I ought to be using.

    Thanks!
    TM
    Thursday, September 11, 2008 1:09 PM

Answers

  • You can use MSBuild to build and deploy BizTalk application to the target environment fully automatically. There are some out of the box deployment tasks and you can add custom ones. I used SDC tasks: http://www.codeplex.com/sdctasks as well as developed some custom tasks (for example: http://geekswithblogs.net/paulp/archive/2008/06/09/122746.aspx

     

    Also, you can use Scott's Colestock BizTalk deployment framework http://www.traceofthought.net/2008/02/15/DeploymentFrameworkReleaseOnCodePlex.aspx.

    Thursday, September 11, 2008 3:39 PM
    Answerer
  • Here is the best deployment method I have found.  My environments are Dev, Test, and Prod.  I use MSBuild to get latest code from TFS, build it, and deploy it to Dev.  Then I generate and MSI file from Dev for each BizTalk app.  Then install those MSI files to Test, and test the applications.  Once testing is complete, use the same MSI files to install to Prod.  This way you are not only testing your applications, but also you are testing the install process.  This is good was good for me because before I started using this model, a great number of errors in Prod were due install errors (installing wrong version of a DLL, etc.)

    When you say you only have access to 2 MSI files, do you have access to the BizTalk admin conosle?  If so, then you can generate an MSI file for the 3rd app.  MSI deployment is the way to go.
    Thursday, September 11, 2008 6:08 PM
    Answerer

All replies

  • You can use MSBuild to build and deploy BizTalk application to the target environment fully automatically. There are some out of the box deployment tasks and you can add custom ones. I used SDC tasks: http://www.codeplex.com/sdctasks as well as developed some custom tasks (for example: http://geekswithblogs.net/paulp/archive/2008/06/09/122746.aspx

     

    Also, you can use Scott's Colestock BizTalk deployment framework http://www.traceofthought.net/2008/02/15/DeploymentFrameworkReleaseOnCodePlex.aspx.

    Thursday, September 11, 2008 3:39 PM
    Answerer
  • Here is the best deployment method I have found.  My environments are Dev, Test, and Prod.  I use MSBuild to get latest code from TFS, build it, and deploy it to Dev.  Then I generate and MSI file from Dev for each BizTalk app.  Then install those MSI files to Test, and test the applications.  Once testing is complete, use the same MSI files to install to Prod.  This way you are not only testing your applications, but also you are testing the install process.  This is good was good for me because before I started using this model, a great number of errors in Prod were due install errors (installing wrong version of a DLL, etc.)

    When you say you only have access to 2 MSI files, do you have access to the BizTalk admin conosle?  If so, then you can generate an MSI file for the 3rd app.  MSI deployment is the way to go.
    Thursday, September 11, 2008 6:08 PM
    Answerer
  • We are still usng Source Safe + Cruisecontrol.net for as part of our continuous integration strategy.  When someone checks in the code, CruiseControl will attempt to build it.  We then automatically package it all up as an MSI.  From our Test server, we have a script that will reach back to the build server, retrieve the MSI and then try to import the MSI and gac the assemblies to multiple servers.  We also use the SDC tasks.  From the production environment, we us a similar process, but reach back to Test instead of the build server.

     

    Someday we will migrate to TFS.

    Friday, September 12, 2008 2:39 AM
    Answerer
  • Hi all,

    thanks for your input everyone.

    Installing the MSI file does not configure custom settings in the SSODB,  BTSConfig file etc. What should I do in these cases?

    TM
    Saturday, September 13, 2008 4:27 PM