This post was originally published here
High availability, Multi server, Multi-environment Infrastructure Guide
This article will help you to understand the architecture of the infrastructure details for various scenarios of high availability, multi-server and multiple environments setup.
With regards to High Availability of BizTalk360, there are few parts which can be made Highly Available/Load Balanced:
- The User Interface
- The Windows NT services (Monitoring & Analytics)
- The BizTalk360 database
The User Interface (UI)
The UI, including the REST services, can be made Highly Available by installing BizTalk360 on multiple servers. By putting a software/hardware load balancer (NLB) in front of these BizTalk360 servers, the UI of BizTalk360 can be accessed via the virtual address which is provided by the NLB.
Independently whether one of the BizTalk360 servers is down, you will always be able to access BizTalk360 via the address of the NLB. This is in no way related to the high availability of the BizTalk360 NT services.
The BizTalk360 Windows NT services
Depending on the license tier a company goes for, BizTalk360 comes with the following Windows NT services:
- One for the Monitoring activities
- One for collecting Analytical data (only needed in case of Platinum license)
To split the responsibilities of the NT services, each of these services contains several sub-services. One of these sub-services is used for heartbeat and will be used in case BizTalk360 is installed on multiple servers.
The picture shows the BizTalk360 Monitoring Service, including its sub-services. See below list, for some more explanation about the capabilities:
- Refresh and Restart buttons – With the Refresh button, the status of the Monitoring service and its sub-services are retrieved. The Restart option enables you to restart the Monitoring services. As a result, the sub-services will also be restarted
- Start and Pause buttons – Each sub-service can be Started/Paused individually. By selecting one or more sub-services with the check boxes, you can Start/Pause multiple sub-services at once
- Service Name column – This column shows the name of all sub-services. Based on that, you will understand the responsibilities of each sub-service. As mentioned earlier, the Heart Beat sub-service is one of them
- Polling (Sec) column – Each sub service has its own polling interval, after which the sub-service will do its job. It is not possible to change this interval. In the Last Execution column, the date and time of the last execution of each sub-service is shown
- Current State column – This column shows the actual state of each sub-service. By default, all these sub-services should be Started
- Last Status – This column shows whether the last execution of the sub-service was successful or not
- Exception – In case the last execution was not successful, the exception of the last execution is shown in this column
To make these NT services highly available, BizTalk360 needs to be installed in multiple servers. At these servers, the BizTalk360 NT services must be started. From that moment on, the heartbeat of the services will be monitored cross-wise between the services on the BizTalk360 servers. For each (Monitoring and Analytics) service only one on either BizTalk360 machine can be Active. In other words, this is an Active-Passive configuration. Active-Active is not supported!
Below screenshot shows a configuration in which the BizTalk360 Monitoring service is installed in 2 servers. As you can see, the BTS2016LAB02 server is Active, which means that it is performing the monitoring tasks. The other server, the BTS2016LAB03, is not active. However, this server can be activated by clicking the Activate button.
Again, it is important to remember that although BizTalk360 can be installed on multiple servers, only one of these servers can be Active and performing the monitoring tasks.
In such multi-BizTalk360 server setups, in case the heartbeat sub-service on the Active BizTalk360 machine is not responding, there is automated fail-over of the BizTalk360 NT services taking place. So, the tasks of the BizTalk360 NT services will be performed by the server which was, until then, Passive. Thereby, High Availability is reached.
The BizTalk360 database
For making the BizTalk360 database highly available, you need to use a clustered SQL instance. That could be the same SQL instance as where the BizTalk databases reside, but could also be a separate (clustered) instance.
Different standalone and multi-server scenarios
As BizTalk Server can also be made High Available and Load Balanced, there are quite a lot of different scenarios possible, with respect to the server setup of both products. Let’s have a look at the most common scenarios and see how these scenarios affect the BizTalk360 licensing.
Scenario 1 – Standalone BizTalk server and standalone BizTalk360 server
First scenario, let us see how a simple solution, like having a standalone BizTalk Server and a standalone BizTalk360 environment setup will look like.
Following are the prerequisites:
- 1 x BizTalk Server
- 1 x MS SQL Server
- 1 x BizTalk360 server
- 1 x valid BizTalk360 server license (total BizTalk Server count will be 1 in this scenario)
Scenario 2 – Multiple BizTalk servers and a standalone BizTalk360 server
In our following scenario, we will see how to have multiple BizTalk Servers and a standalone BizTalk360.
Following are the prerequisites:
- 2 x BizTalk Server
- 1 x MS SQL Server
- 1 x BizTalk360 server
- 1 x valid BizTalk360 server license (total BizTalk Server count will be 2 for the BizTalk360 license)
- Though we require one BizTalk360 license, the max server count for the license, should be = 2 as BizTalk360 is licensed per number of BizTalk servers in the BizTalk group
- If both BizTalk servers (BTSRVR1, BTSRVR2) are active, it means that this is a multi-server environment
- If BTSRVR1 is active and BTSRVR2 is passive (or vice versa), then it is High Availability
Scenario 3 – Multiple BizTalk servers and multiple BizTalk360 servers
Below is the diagram that explains how to have a multiple server setup for both BizTalk Server and BizTalk360 servers and its pre-requisites:
- 2 x BizTalk Server
- 1 x MS SQL Server
- 2 x BizTalk360 servers
- 1 x valid BizTalk360 server license (Total BizTalk Server count will be 2 for the BizTalk360 license)
In this scenario, we have used two BizTalk360 servers, pointing to the same BizTalk group, which makes BizTalk360 highly available.
Scenario 4 – 2 multi-server BizTalk groups and multiple BizTalk360 servers
Now, we will see another scenario where we have multiple BizTalk Server environments; both BizTalk Server & BizTalk360 are highly available.
Following are the prerequisites:
- 2 x 2 BizTalk Server
- 2 x MS SQL Server
- 2 x BizTalk360 server
- 2 x valid BizTalk360 licenses (total BizTalk Server count will be 2 for each BizTalk360 license)
As we have seen, there can be several combinations of server setups, and it is purely based on the customer’s requirement and their infrastructural policies. What we explained are 4 various scenarios and their requirements. These are basic setups and the fundamentals will not change, even if you have other scenarios.