Sponsored & Brought to you by
High available BizTalk
infrastructure on Azure IaaS
Massimo Crippa & Salvatore Pellitteri
https://twitter.com/mas_que_crippa
https://be.linkedin.com/in/massimocrippa
https://twitter.com/pellittsa
https://it.linkedin.com/pub/salvatore-pellitteri/2a/184/719
High Available BizTalk on Azure IaaS#IntegrationMonday
Who are we?Salvatore Pellitteri
Developer Team Manager @Msys
• MS Application Integration MVP
• SQL / BI / Integration Architect
@pellittsa
https//pellitterisbiztalkblog.wordpress.com
Massimo Crippa
Integration Architect @CoditCompany
• BizTalk D/I
• SOA and API Management
@mas_que_crippa
http://www.codit.eu/blog
AgendaA. High availability WWW
B. Scenarios
C. Procedure
D. Demo
E. Tests and Conclusion
Do or do not, there is no try
BizTalk Server virtual machines on Azure
DO NOT offer a High Availability solution when
using SQL Server Cluster.
https://msdn.microsoft.com/en-us/library/jj248689.aspx
The WWW of HA
High available – What?• A system design approach and service implementation that ensures a level of
operational performance.
• Minimize the time that your service is down or unavailable.
High available – Why?• Ensure the data availability
• Protect against HW and SW failure. The cost of downtime is rising
• Perform maintenance tasks in controlled way
• The HA cost is decreasing (if you’re not aiming to the five 9s)
High available – Where?
Physical Virtual Cloud
The cloud is convenient and it significantly reduce the time to productivity
Cloud
Scenarios
Mini and Micro SAN-less solutionsTwo scenarios
Who is the culprit?
AZURE IaaS >> Disk resource
Why not Always On AG ?
>> MSDTC > it’s the blocking problem
How to
The main steps
Network SubnetAvailability
SetDomain
SQL Server
Cluster DataKeeper SQL Server MSDTC Client Access
BizTalk SSO Configuration
BizTalk Setup
Azure IaaS – Subnets • Setup virtual network
• Configure virtual network address spaces (subnets)
• Azure network and on-premises network interaction
• Static IP addresses
• VMs with multiple NICs
• Consider static IP addresses
Azure IaaS – Availability Set
You should ALWAYS specify an availability set when creating more than one virtual machine for the same purpose.
AD-AVAIL-SET
Domain Controller
Domain Controller
SQL-AVAIL-SET
SQL Server
SQL Server
BT-AVAIL-SET
BizTalk Server
BizTalk Server
Failover Cluster• Two NICs or not ?
• Cluster quorum configuration
DataKeeper Cluster Edition• At this moment Microsoft Azure
doesn't provides any storage option that allow to build a failover cluster.
• SIOS DataKeeper Cluster Edition software is the key.
• Integration with failover cluster service
DataKeeper Cluster Edition
SQL Server InstallationNo special installation
1. Run cluster preparation on the first node
2. Run cluster preparation on the second node
3. Run cluster completion from one of the nodes
Client access setupWhat normally occurs
Node 1 Node 2
Switch
DNS
1) Node 1 deregisters its mac
address on the switch
2) Cluster resources move
3) Node 2 registers its
mac address on the switch
4) Node 2 updates its IP on
DNS
Client access setup• On Microsoft Azure you cluster service cannot interact with switches
• It is as if the IP addresses were active simultaneously on all nodes
• You have to configure an Internal Load Balancing (ILB)
Client access setupUp to 150 configured ports per IP
• 1 port for SQL Server (1433)
• 1 port for RPC (135)
• 21 ports for SSO (Dynamic RPC)
• 44 ports for DTC (Dynamic RPC)
Client access setupTo complete:
• Configure the cluster listener
• Fix MsDtc dynamic ports
# This script should be run on the primary cluster node after the internal load balancer is created
# Define variables
$ClusterNetworkName = "Cluster Network 1" # the cluster network name
$IPResourceName = "SQL IP Address 1 (BTLABSQLCLU)" # the IP Address resource name
$CloudServiceIP = "10.0.0.250" # IP address of your Internal Load Balancer
Import-Module FailoverClusters
Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple
@{"Address"="$CloudServiceIP";"ProbePort"="59999";
SubnetMask="255.255.255.255";"Network"="$ClusterNetworkName";"OverrideAddressMatch"=1;"EnableDhcp"=0}
Enterprise SSO SetupClustered configuration of EntSSO master secret server
• Procedure is not simple
• Follow the article “https://msdn.microsoft.com/en-us/library/aa561823.aspx”
• Set "Use Network Name for computer name“ (not mentioned!)
BizTalk Setup• Standard setup procedure
• All you need is described on “http://www.microsoft.com/en-us/download/details.aspx?id=35552”
BizTalk HA on Azure IaaS
Some tests
Test scenarioSQL Server nodes
• 7GB RAM
• 4 core
BizTalk Server nodes
• 7GB RAM
• 4 core
BizTalk Test Scenario
Domain Controller 1
SQL Server + SSOCluster Node 1
SQL Server + SSOCluster Node 2
BizTalk Server 1 BizTalk Server 2
Test scenarioBizTalk solution
1) Schemas generation
2) Debatching for the input schema
3) Each orchestration instance execute an insert on a SQL table
4) Submit input file instance that generates 1000 and 10000 orchestration instances
Test results
Key takeaways
Takeaways• Does it works? Yes!
• Support > No (Not yet) > Come on MSFT!!
• Datakeeper Support > Yes !! (http://www.sys-con.com/node/3320313)
• What’s next ?
https://support.microsoft.com/en-us/kb/2721672
Thank you!and may the Force be with you