This project has moved and is read-only. For the latest updates, please go here.

Automated Deployment using BTDF?

Topics: Server Deployment
Feb 28, 2012 at 12:02 PM

Hello, 

I wonder if anyone can give me some hint or suggestion to the best way to do a automated biztalk deployment on a multi server envirement. 

I'm using biztalk 2010, on Win Server 2008 R2. 

My problem is that, I have 6 BizTalk Applications, and then also 6 Solutions, and I have one Application called "Common" where all the common schemas, pipelines, orchs and so on is deployed. But my problem is that if I do a change in this Application: "common" I need to undeploy all other applications since they have reference to this Application. 

My question is how can I do a automated deploy using BTDF, and fix the problems with the references?

Can I use TFS on this? Because I am using TFS as sourcecontrol. 

 

Regards, 
Joachim 

Feb 28, 2012 at 3:40 PM

Hi Joachim,

Once in a while a change is small enough that you can simply drop a new DLL in the GAC and be done, but it seems like that is rarely possible with most BizTalk projects.  BizTalk won't let you delete or unhook anything when references are involved, so usually you end up with a big undeploy/deploy process when using a "common" app.  I'm also a firm believer in deploying applications as a whole, not piecemeal.  That means that you basically do need to undeploy all of the dependent apps, then the common app, redeploy the common app then all the dependent apps.

I'm assuming that you already have BTDF projects set up for each of your six applications (including "common").  It is really not that hard to automate things since the BTDF is based on a command-line driven tool: MSBuild.  Assuming that you have open network connectivity between your TFS Team Build server and your BizTalk servers, you can certainly have Team Build drive deployments if you wish.  You'll have to create a build template to lay out the steps.

Several existing discussion threads here have discussed automation.  Most people have a build create a BTDF MSI, then push it to the server(s) and use SysInternals PsExec to launch the install and deploy on the remote server.  You'll need to script the undeploy/deploy of your whole set of apps in order.

Here are two existing threads:
http://biztalkdeployment.codeplex.com/discussions/61048  (focus on 2011 posts)
http://biztalkdeployment.codeplex.com/discussions/269176

There is also another open-source PowerShell-based project named Sprinkler which can help with this process.  Unfortunately it is incomplete, but it was designed with the Deployment Framework in mind.

Thanks,
Tom

Feb 29, 2012 at 12:07 PM

Hi Tom, 

Thanks for the reply. 

Just one more question about this. 
Is it possible to use TFS without Srinkler to create automated deploy on a multi server envirement?
I have looked a little on Sprinkler, but maybe I dont need to implement this?

Thanks,
Joachim 

Feb 29, 2012 at 4:00 PM

I'll assume that you're using TFS 2010.  You can't avoid the process of undeploying each BizTalk app with "common" last (assuming that you changed something in "common"), upgrading the MSI's, then redeploying in reverse order.  Something has to orchestrate that process.  If you wish, you can certainly build a custom WF workflow for Team Build to execute.  There are a couple of tools to help you do general deployments with Team Build: Team Deploy and TFS Deployer.

Thanks,
Tom

Mar 5, 2012 at 11:53 AM

Hello again Tom, 

I dont know if this issue maybee should be placed another place. Please let me know. 

I have some problem with TFSBuild with my BizTalk project. 

I getting this error:
 error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\BizTalk\BizTalkC.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

I have not installed BizTalk on my Build server, since I didn't thnk that was necessary. (I have tfs and tfs build installed on diffrent servers). 

Thanks, 

Joachim

Mar 5, 2012 at 3:22 PM

Hi Joachim,

You have to install BizTalk on your Team Build server.  However, in the BizTalk 2010 custom install features, uncheck everything except for the option named something like Build Component (I don't have it handy).  It will give you just enough to build from Team Build.

Thanks,
Tom

Mar 5, 2012 at 8:06 PM

Hi Tom, 

Thanks again for your great answer. That worked great. 

I have now just one more question for you. 

I have a project in my solution that contains some custom functoids. 
My question is how I can build this "CustomFunctoid" project, and add this to the GAC and place the dll to the biztalk2010/deploymentTools location on Build server.

 

Thanks,

Joachim 

Mar 6, 2012 at 4:39 PM

Hi Joachim,

You just need to add one property and one ItemGroup to your .btdfproj.  Did you download a copy of the draft documentation from the Downloads page?  This is covered in the documentation.  I would like to hear how easy it is for you to find the answer there, whether it is clearly written, etc.  If you get stuck, please ask again (and let's start a new discussion topic).

Thanks,
Tom