Setting up a highly available BizTalk Server in Azure

|  Posted: June 2, 2020  |  Categories: BizTalk Server

Introduction

This blog is an extraction of the session “Setting up a highly available BizTalk Server in Azure” in the Integrate 2020 event presented by Samuel Kastberg, Senior Premier Field Engineer at Microsoft.

It gives you an overview of setting a highly available BizTalk Server in Azure using BizTalk2020 at a very high level. More and more it is common to install BizTalk environments in Azure. As especially Production environments require high availability, today Samuel gives guidance on HA related topics like network configuration, load balancing and alternatives for clustering SQL Server

Things we will focus on

  • Focus on BizTalk Server 2020
  • No consideration on moving to Azure Integration services
  • Things that are different/ specific to Azure

Considerations

When you are setting up the BizTalk server environment, we have lots of considerations. When it comes to Azure just as on-premises you have set of rules and it will vary on how your environment works, your requirements, organization policies, what kindly of policies were followed.

Here are some important aspects,

Governance

  • Rules, requirements from Organizations

Set of Products what you are working

  • BizTalk server
  • SQL
  • MSDTC
  • MSMQ
  • IIS

Clustering

  • Shared Storage

Networking

  • Load balancer
  • Network Security Group (NSG)
  • Application Gateway

Provisioning Automation

  • ARM templates
  • Scripting, e.g. PowerShell

Performance

  • Expectations
  • Measure
  • Resource Sizing

Governance

When it comes to Governance, it will be considered based on your organization’s flexibility.

Things like,

  1. What set of policies and rules to be used?
  2. How the resources will work in Azure?

We need to determine first-hand with the owners or administrators of the corresponding Azure subscription. For Example,

  1. Who is the owner of different things?
  2. Who can perform different sets of actions?

And for resources, the following are the important aspects to be considered

  1. They will be placed in the Azure subscription under the resource groups.
  2. In order to organize the resources in the subscriptions, it will be different from business to business. For example, some customers have one subscription for everything and different subscriptions for different environments (Dev, QA, Production)
  3. This way it is easy for the admins or decision-makers to determine the privileges to be given for each environment.
  4. To organize the resources, it is important to device the plan like whether all the machines should be in the same resource group or hub (BizTalk Servers and SQL servers in different groups).
  5. And of course, who will be the owner of the resources is differs from customers to customers.
  6. Resource tagging is another important criterion where you need to tag the resources in order to identify different environments (Dev, QA, Production)

Cost Management

This is one of the essential criteria when you are working with Azure as the bill will be paid every month based on resource usage. Basically, a license in the Azure costs the difference between different products. Users will pay in advance for the resources or pay per usage. Purely, it depends on what kinds of enterprise you have with the Azure.

Tip: Azure pre-purchased License cost will be cheaper than when you pay as go.

Resource Provisioning is an essential task, you need to determine where you will organize your files and how to use it?

Security

Security is another important aspect to be considered. You need to have your account, groups, and determine the access control between your Azure Active Directory and the hub with networking security.

Networking

Basically, BizTalk will access to different folders in the on-prem solutions. And, communicate with SQL servers, Services (Http, Https), and other infrastructure elements. To have a seamless connection, the proper plan needs to devise with your infrastructure team.

Products

If we look at a little bit on the product side that is necessary to set up highly available here are some of the products SQL Server, MSMQ, BizTalk Server, MSDTC.

Here are some important aspects to be considered,

SQL server

  • Only IAAS is supported (the only version of SQL that supports SQL transactions)
  • Licensing BYOL or pay as you go
  • Backup BYOL or pay as you go
  • Backups to Blob storage

Tip: In Azure, it is cheaper with blob storage than using the file.

SQL Server High Availability (HA)

  • Availability Groups that own its own storage
  • Failover Cluster instance (FCI)
  • Shared Storage

MSMQ HA

  • Shared Storage
  • Storage spaces direct

BizTalk server

  • Licensing BYOL or pay as you go

BizTalk server HA

  • Clustering for single instance hosts
  • Enterprise SSO Master Secret Server
  • Application gateway for incoming HTTP traffic

MSDTC HA

  • Clustering and configure the Load Balancer
  • Fixed port
  • Use the same cluster role as SQL
  • Shared storage

Clustering

 For the clustering,

  1. Networking, you must use a load balancer to route traffic.
  2. Shared storage (will see the alternative solutions).

Internal load balancer

Let’s see the structure of the Internal load balancer

SKU Matters

There are two SKU Matters available as Basic and Standard for the load balancer. In the standard, there is always needed to have the network security group and the network card you select should be in standard SKU’s.

Frontend

  1. The front end is the service address. It could be SQL, MSDTC, EntSSO, etc.,
  2. Backend pool is the virtual machines and address
  3. To identify which machine is the current owner of the service, the health probe should be configured. This way load balance will ping and check the currently available service.

Load Balancing Rules

It will bind the front and the backend.

Port mapping is taken place here to determine only one port to be configured.

The other parameter is the Cluster. The ProbePort parameter needs to be set as it will check the health of the load balancer.

Internal load balancer
Internal load balancer Backend pool

Shared storage

This will be needed for clustering when you use Fail over clustering,

 MSMQ, MSDTC. So, there are alternatives, storage spaces direct which is a software-defined storage solution that uses SMB3. The synchronization is happening for a number of VM’s that have two or more disks dedicated to the specific storage spaces. You can create disk areas that represent the clusters and used by the services.  For MSDTC, It is only available for Windows 2019 and onwards.

Shared Storage
Shared Storage Alternatives

Performance

Virtual machines are coming in different editions, that are optimized to handle different kinds of workloads on the size that matters. It is one of the important aspects that we must look into  it,

Selected VM size/option

  • Optimized for different workloads
  • Size matters for disk speed
  • Review what you need CPU/Memory
  • Remember licensing – BYOL/Pay as you go

Disk speed/size

  • Size matters, size of the disk, and VMS affects IOPS that can be reached.
  • Measure with e.g. Diskspd
  • Baseline with your current environment
  • Compare with your Azure Disks

Resources/References

Conclusion

It was indeed a fantastic session by Samuel. I hope it gives you an overview of setting up a highly available BizTalk Server in Azure using BizTalk2020 at a very high level. Happy clustering!

Author: Sivaramakrishnan Arumugam

Sivaramakrishnan is our Support Engineer with quite a few certifications under his belt. He has been instrumental in handling the customer support area. He believes Travelling makes happy of anyone.

Back to Top