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
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.
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.
We have various connectors to connect multiple endpoints for both Azure and On-Premise (through On-Premise Gateway etc..)resources
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..)
Key Vault: 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)
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.
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. 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
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.