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.
||Work Flow engine similar to Orchestration
||BizTalk Artefacts(Schemas/Maps(XSLT(1.0/2.0/3.0)) & EDI Artefacts
||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.
||.net class Libraries
||Azure functions /API Apps /Web Roles
To replace the Simple/Medium complex functionality of .net class libraries. For complex scenarios, you can check durable functions.
For complex functionality we could create Apps and use it in logic apps/ any other resource.
||Host BizTalk schema/Orchestration as Service
||HTTP Trigger /API Management
We can use HTTp trigger to expose LogicApp endpoint to external world.
You can customize the LogicApp endpoint URL with various security settings via API management.
||We have various connectors to connect multiple endpoints for both Azure and On-Premise (through On-Premise Gateway etc..)resources
||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.
||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.
||Config Store (SSO etc..)
Place to store secure config ,certificates.
This can be retrieved in Logic App using Key-Vault connector or REST API.
||Azure fucntions/Liquid templates(BRE)
We could store the configuration in Azure functions might need to implement Encrypt/ Decrypt for Secured info.
This is not an exact comparison but you could leverage this to have conditions evaluated and use output as deciding factor in your design.
||On-Premise SQL DataBase
||Azure SQL Database
||Could use for creating Custom Databases
||Publish- Subscription/BizTalk design patterns
||Azure Service Bus: Message based.
Could provide flexibility to have custom context properties.
For queuing messages for longer time would be used to implement BizTalk patterns like Sequential Convoy.
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
||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.
||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.
||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..
||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..
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.