Part 4: BizTalk Migration: Migrate basic Biztalk interface
Let's try to solve a migration of a simple BizTalk interface to Azure LogicApp.
BizTalk Interface:
BizTalk Application BtsApp01 has the following components:
- One Receive Location ( Fileshare ) and One Receive Port
- One Orchestration and One maps
- One Send Ports ( Fileshare)
- Two Flat file schema and one XSLT maps
- One Receive pipeline component to lookup value in Azure SQL-Database
- One Send pipeline component to lookup value in Azure SQL-Database
List of Azure Services ( new built)
- BTSApp01_LA_Receive — Blob event-triggered LogicApp, Validate XML file and call azure function for DB lookup. Then HTTP call “BTSApp01_LA_Orchestration”
- BTSApp01_LA_Orchestration — Orchestration process to execute the map. Then HTTP call “BTSApp01_LA_Send”
- BTSApp01_LA_Send — Validate XML file and call azure function for DB lookup
- Integration Account to store XML Schema and Maps ( Note: With the new preview version of the logic app we can achieve this without an integration account). BizTalk Maps and Schema can be reused easily it is standard XSLT maps.
Steps to execute XSLT Map in the logic app
Function App for pipeline component will decouple changing incoming message in LogicApp, FunctionApp will perform DB Lookup and update incoming message. This pattern will help to have all future input/output message customization as part of the function app.
- BTSApp01_LA_Receive and BTSApp01_LA_Send can potentially become reusable interface pattern for receive pipeline
Remember to pre-fix all services/names with “BTSApp01” so that it is easy to filter, One can create a separate resource group also corresponding to each BizTalk Interface. It matter of choice and design pattern you want to follow But important thing is to define one approach at the solution level and follow that throughout.
We can certainly create one logic app for all three but with this solution approach, we can modularise the interface.
Most of BizTalk's reusable code will be XSD schema, XSLT maps, and .NET pipeline component code ( can be referenced to recreate c# AzureFunction).
One has to be pragmatic is the migration approach and many things can be migrated to AIS with a very little rewrite of code than actual migration using some tool.