My BizTalk infrastructure design baseline

Listen with webReader
Published 20 September 10 09:39 PM | Johan Hedberg

How should I design my environment? What OS version? SQL Edition? BizTalk license? Etc. Etc. I get these questions frequently.

The only one true answer to this question is the architects favorite - “it depends”. And once you know the requirements - some of the things on which it depends - it will still be closely followed by its companion: “We need to test to know”.

Still, I think everyone has their favorite configuration - that they then add or deduct from based on the requirements. I do. This is how it goes.


Four. Two SQL, Two BizTalk.
Why? High availability for SQL and BizTalk. Load balancing on BizTalk machines.


Windows Server 2008 (R2) Enterprise, on all machines.
Why? Clustering. Plain and simple.

SQL Edition

SQL Server 2008 (R2) Standard, on the SQL boxes.
Why? Off the BizTalk environments I have worked with they have only very seldom gone beyond two machines which is the only real limitation with Standard that I care about. I know of limitations to RTA in BAM and of performance gains with Enterprise, and sometimes that may be required – but not as a baseline.

SQL Instances

Four SQL Server Instances: BizTalkMgmt, DTA, BAM, MsgBox.
Why? Prepare for and maximize scale-out possibility. Simplify IO division. Help with memory reservation.


Three disks per instance: Data, Log and TempDb. Baseline is 40, 20, 15 GB. Varies with requirements.
SAN if available.
Why? Disks are un-expensive. IO is core to SQL. SQL is core to BizTalk.

BizTalk Edition

BizTalk Server 2009/2010 Enterprise
Why? Number one reason – you want to be able to go beyond a single server: Because you want load balancing and high availability.


Not in my baseline.
Why? Could be a requirement with certain customers and it certainly works, but I would recommend physical machines because I think it gives more bang for the buck. BizTalk can many times be a processor, memory and IO intensive application.


Quad cores for sure, Hexa or Octo if availability permits. One proc per server is enough with this amount of cores as a baseline. Requirements like high throughput messaging and processing may cause it to rise.
Why? Same as above. Higher ROI with multi-core.


4 GB minimum for a 64-bit OS, preferably 8GB or more total memory on BizTalk Servers.
At least 16GB on the SQL machines.
Why? Memory is a cheap commodity right now. Not the right place to be cheap.


The above is in no way thorough. It wasn’t meant to be. There is no “One Truth”. I stress that I call it a Baseline. It was meant to be a brief overview. It’s based on the most common questions and the most common requirements for my customers. Consider your own requirements. Mine might not match yours. “It depends”…


What’s your baseline? Where does it differ? Where have you drawn the same conclusions?

Filed under: ,


# Michel HUBERT said on September 21, 2010 10:05 PM:

I use three SQL servers in Active / Passive /Active node. One active node contains MsgBox and the second one contains the others databases to provide better performance. The third one contains all the databases in Passive mode to provide high availability. Why ? We have always two active servers even if one server is shutting down and you don't pay license for the passive SQL Server.

# Johan Hedberg said on September 22, 2010 07:20 AM:

I hear you. Our customers do not do big or frequent enough data transfers to warrant that as a baseline, but it would be on my scale out list for the database layer - right after going active / active on the two nodes I do have.

We do have the active/active/passive configuration for one customer, but at that point it's a shared database cluster - which has worked ok so far, but is not something I'd generally recommend doing as it creates unpredictability in performance. I like my database cluster to be dedicated.

# Saravnaa Kumar said on January 27, 2012 11:26 AM:

SQL server instance is very interesting, I came across this discussion with a customer today. I agree Standard edition should be fine for most of the cases. The only major restriction on Standard edition is clustering (max 2 node active/passive). That should be sufficient in most cases. The BizTalk system requirement page recommends customers to use Enterprise edition if possible to get better performance.

You need to balance out the cost vs future proofing. If you are working on one of those process driven enterprise, where a change requires 20 meetings and 50 approvals, then you may be better off putting enterprise edition in the first place.


# Johan Hedberg said on January 29, 2012 03:05 PM:

Just a short comment on that. SQL Server Standard is max 2 node, but those two nodes can both be active. I am sure you know this, just the way you phrased it might make someone believe otherwise.

The latest environments I've seen setup has hexa or even two octo core procs and up to 128GB of RAM on the SQL machine. With this SQL configuration dedicated to a single BizTalk Group, together with a correctly configured SAN to back it up, it takes a while before you'd need to go above two machines.

As for the performance improvements in Enterprise above Standard, I've always heard that's the case but I haven't devled deep enough to know what they are and how they affect BizTalk.

This Blog



    Twitter Updates

      Follow me on twitter


      Feedburner Subscribers

      Locations of visitors to this page


      All material is provided AS IS voiding any thinkable or unthinkable effect it might have for any use whatsoever. There... is that clear enough ;)