Saturday, July 26, 2008

Considerations for supporting multi-node BizTalk Groups

I recently responded to a question in a forum regarding application availability during planned and unplanned outages.

  • When it comes to Windows Patching, you will need to co-ordinate your reboots with whomever is responsible for this task. You do not want both SQL Nodes down at the same time nor do you want all of your BizTalk app servers down at the same time either. Your infrastructure team may not understand all of the dependencies so it is important to lay out a plan for them.

  • If you use MOM/System Centre for monitoring your BizTalk environment, place your servers into maintanence mode while your reboots are occurring. Otherwise you will receive a lot of 'spam' indicating that Host Instance 'abc' on server 'xyz' has been terminated only to receive another indicating that it has initialized successfully. Even better if you can script placing your servers into Maintanence mode. This will ensure all servers are brought into this mode consistently and quickly. Also recognize that this may leave you vulnerable as you will not have the MOM coverage that you usually do during that period. This is a bit of a double edge sword. You want your ops teams to rely and trust your MOM alerts, so you do not want to overwhelm them with false alerts. On the other hand, if your BizTalk environment is processing messages while in Maintanence mode, you will not have the coverage that you do during standard operating windows.

  • We have experienced some odd Host Instances shutting down behaviour when our Domain Controllers are rebooted. So be aware of this...there is a hot fix available.

  • It is important to understand your patches/software updates. I have experienced this the hard way :-(. All BizTalk servers were suppose to receive a file adapter patch. One server did not receive the update. We then had an intermittant problem that the patch should have fixed. After further investigation we discovered the server was missed. To determine which patches have been applied to a server, you can see this information in your Control Panel. Saravana Kumar has a post with more detailed instructions.

  • Regarding updating one server while you work on another, you may run into situations like updating an adapter where you are also updating the BizTalkMgmtDb. This could cause conflicts with your 'live' servers. So in general I will work on one node while the others pick up the remaining workload, but once again understand the implications of the update you are applying.

  • If you cannot take your application offline long enough to deploy a new version of an application, you will want to look at side by side versioning. While my shop is 24x7, we can usually negotiate a small outage window to perform an update. However, I can see some Financial/Health/Manufacturing environments where this is not feasible

  • When configuring your Hosts/Host Instances, think about the dependencies that you may introduce if applications share host instances. For many applications, it is not acceptable to take it offline so that you can update a totally unrelated application. I am not saying that you should not share Hosts/Host Instances, but just be aware of the dependencies that you may be creating