Blog Post

Azure Integration Services Blog
4 MIN READ

Microsoft BizTalk Server to Microsoft Azure Migration

VeeraReddy's avatar
VeeraReddy
Iron Contributor
Jun 23, 2020

Background:

I thought it would be helpful to put up an article on migrating Microsoft BizTalk server integrations to Microsoft Azure using Logic Apps and other Azure resources. I have done bit of due diligence to figure out what are the corresponding resources which could replace or suitable for migrating BizTalk server integrations to Azure. Of-Course ,It's not like apple to apple comparison but best possible resources to replace current BizTalk server components. We also have some limitations on design patterns, runtime executions. However, workarounds to tweak various challenges encounter while migrating.

Let's see below the resource mapping sheet of BizTalk server components and corresponding Microsoft Azure resources. 

Resource comparison:

 

S.No BizTalk Resource Azure Resource Comments
1 Orchestration Logic Apps Work Flow engine similar to Orchestration
2 BizTalk Artefacts(Schemas/Maps(XSLT(1.0/2.0/3.0)) & EDI Artefacts Integration Account Azure Integration Account is the place to store artefacts such as Schemas ,Maps, Agreements, Partners and Batch configurations used in BizTalk integrations.
EDI:As of now , Integration account supports X12, EDIFACT ,AS2 and SWIFT protocols which is in private private.
3 .net class Libraries Azure functions /API Apps /Web Roles Azure Functions:
To replace the Simple/Medium complex functionality of .net class libraries. For complex scenarios, you can check durable functions.
API Apps:
For complex functionality we could create Apps and use it in logic apps/ any other resource.
4 Host BizTalk schema/Orchestration as Service HTTP Trigger /API Management HTTP Trigger:
We can use HTTp trigger to expose LogicApp endpoint to external world.
API Management:
You can customize the LogicApp endpoint URL with various security settings via API management.
5 Adapters Triggers We have various connectors to connect multiple endpoints for both Azure and On-Premise (through On-Premise Gateway etc..)resources
6 Decode/Encode/Enrich Schema Validation, Decode X12, AS2 and Flat file decode/encode etc.. Connectotors Various actions are available to perform specific actions what we have BizTalk pipeline component.
7 Custom components  Logic App Custom Connector Logic Apps has various connectors to talk to respective LOB systems. However, if you seek a component to implement your own custom code ,leverage Logic App Custom connector.
Supported : SOAP and REST using WSDL or OPEN API definition respectively.
8 Config Store (SSO etc..) Key Valut Key Vault:
Place to store secure config ,certificates.
This can be retrieved in Logic App using Key-Vault connector or REST API.
9 BRE Azure fucntions/Liquid templates(BRE) Azure Functions:
We could store the configuration in Azure functions might need to implement Encrypt/ Decrypt for Secured info.
Liquid Templates:
This is not an exact comparison but you could leverage this to have conditions evaluated and use output as deciding factor in your design.
10 On-Premise SQL DataBase Azure SQL Database Could use for creating Custom Databases
11 Publish- Subscription/BizTalk design patterns Azure ServiceBus/EventGrid Azure Service Bus: Message based.
Could provide flexibility to have custom context properties.
Queues-
For queuing messages for longer time would be used to implement BizTalk patterns like Sequential Convoy.
Topics:
Creates no.of copies of message based on no.of subscribers and could have filter mechanism as well like in BizTalk.
Event Grid: Event Based
Provides Pub-Sub architecture similar to BizTalk
12 Enterprise Library logging Logic Apps  /Log Analytics /Storage Account/Event Hub Logic Apps: By default,we would be able to see the run history which gives details about Trigger or action input,outputs and errors if any.
Log Analytics: If you need to have this logged someplace for analysis or extensive auditing later on the logs /transactions. Better place would be Log Analytics.
13 BAM LogAnalytics (B2B and LogicApp API management) Place where you can log all metrics, transaction details and custom [properties which can be used to monitor your business would be Log Analytics.
Also, Log Analytics supports the tools for Logic App which allows to see Graphically the status of transactions to each Logic App runs. Which could be user friendly  for Business users to monitor without much experience on development or queries.
14 IIS AppServices &Azure API Management  We could use to expose the hosted   services in App Services/Classic services through API management as layer for implementing various security parameters such as Client Certificate Validations/Mock responses. Implement transforming , controlling throughput through policies etc..
15 Automate Deployment ARM templates with Power Shell script/DevOps/REST API with custom components/ SDK to deploy Logic App code You could various options mentioned for deploying Logic Apps.

 

Other Resources on On-Premise:

  • On-Premise Data gateway - To connect to On-Premise system resources like FILE,SQL,ORACLE, IBM MQ and SAP etc...
  • ISE : On-premise resources can be accessed from Azure Virtual networks through VNet peering, Express route etc.. Wer can ingest LogicApps to ISE environment hosted in Virtual network and enabling subnets to access through routing tables or NSG rules. ISE serves better limitations than shared environment, Performance and better control on security etc..

Out-Of Scope:

Other Concepts As IPAAS is evolving and imminent with various new features the below may not be limitation these can be addressed with custom components.

Updated Jun 23, 2020
Version 1.0
  • Salam_ELIAS's avatar
    Salam_ELIAS
    Brass Contributor

    Hi Gangala, can you please help in this scenario and what is the best way to follow: I have a Biztalk cluster with 3 hosts and a SQL cluster (in total 5 machines). We have quite complicated orchestrations and C# house-developed components and would like to lift and shift to Azure and have all infra on IaaS what is the best way/best practices to follow or is there any migration tools that can evaluate what is needed to move to Azure? I went through the documentation of "Biztalk Migrator" which seems only help to migrate to Azure integration services. Thanks in advance