High available BizTalk infrastructure on Azure IaaS

Post on 16-Jul-2015

281 views 1 download

Tags:

Transcript of High available BizTalk infrastructure on Azure IaaS

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