31
Building loosely coupled integrations with Logic Apps Toon Vanhoutte https://be.linkedin.com/pub/toon-vanhoutte/6/276/

Building loosely coupled integrations with Logic Apps

Embed Size (px)

Citation preview

Page 1: Building loosely coupled integrations with Logic Apps

Building loosely coupled integrations with Logic Apps

Toon Vanhouttehttps://be.linkedin.com/pub/toon-vanhoutte/6/276/84b

Page 2: Building loosely coupled integrations with Logic Apps

Building loosely coupled integrations with Logic Apps

Toon VanhoutteSolution Architect

@toonvanhoutte

Page 3: Building loosely coupled integrations with Logic Apps

Consider the following scenario

Enterprise integration

FILE, FTP, SFTP

Pure messaging

100+ Integrations

Batching

Debatching

Canonical data format

Business Critical

Page 4: Building loosely coupled integrations with Logic Apps

Goal of this sessionCan we establish such enterprise

integrations with Logic Apps?

Page 5: Building loosely coupled integrations with Logic Apps

Let’s get our hands dirty!

5

Receive FF Archive FF Parse to XML Transform Send XML

Page 6: Building loosely coupled integrations with Logic Apps

Analyze the result!

6

We cannot reuse this development effort in similar integrations!

This workflow is too tightly coupled with its

receiving transport protocol!

There’s no option to resume this workflow if it fails during processing.

This is spaghetti interfacing! There’s no

loose coupling or pub/sub involved! This workflow handles

multiple files, which results in difficult troubleshooting!

Page 7: Building loosely coupled integrations with Logic Apps

ConclusionLogic Apps is not a fit for enterprise integration!

Page 8: Building loosely coupled integrations with Logic Apps

Democratization of integration

8

➔ IFTT / P2P integration➔ SaaS connectivity➔ Failure expected /

tolerated➔ Democratized➔ User-centric➔ API’s

Citizen Integration➔ Loosely coupled

integrations➔ On-Premise LOB systems➔ Mission critical➔ Dedicated IT resources➔ Organization-centric➔ API’s + Messaging

Enterprise Integration

BizTalk Server

Logic Apps

Page 9: Building loosely coupled integrations with Logic Apps

Logic Apps is a natural fit for citizen integration

Page 10: Building loosely coupled integrations with Logic Apps

you know your patternsyou know its strengthsyou know its limitations

Logic Apps can be used for enterprise integration if

Page 11: Building loosely coupled integrations with Logic Apps

Analyze the result!

11

We cannot reuse this development effort in similar integrations!

This workflow is too tightly coupled with its

receiving transport protocol!

There’s no option to resume this workflow if it fails during processing.

This is spaghetti interfacing! There’s no

loose coupling or pub/sub involved! This workflow handles

multiple files, which results in difficult troubleshooting!

Design your solution to enable reuse of

common integration tasks!

Perform protocol and message processing in different Logic Apps.

Design your solution to turn resubmit into

resume functionality!

Don’t forget your enterprise integration patterns! Avoid P2P! One Logic App

instance should handle only

one message.

Page 12: Building loosely coupled integrations with Logic Apps

12

How to achieve this?➔ Process Manager: orchestrates the message

exchange by consuming reusable nested Logic Apps➔ Publish - Subscribe: leverage Azure Service Bus and the Logic Apps connector to create loosely couple integrations

➔ Routing Slip: configure a message exchange, by reusing Logic Apps, without the need for a central process manager

➔ Templated Deployments: leverage advanced deployment techniques to introduce reuse of development efforts

Page 13: Building loosely coupled integrations with Logic Apps

The Routing Slip Pattern

13

➔ Route a message through a series of processing steps➔ Dynamically assign a route for each message➔ The message exchange is completely config-based

Page 14: Building loosely coupled integrations with Logic Apps

15

The Routing Slip Pattern➔ How to assign a routing slip?

➔ External➔ Static➔ Dynamic➔ Scheduled

➔ How to invoke a service (step)?➔ Sync➔ Async➔ Combination

Using Azure Service Bus

Page 15: Building loosely coupled integrations with Logic Apps

The Claim Check Pattern

16

➔ Azure Service Bus has a 256kB message size limit➔ Store the payload in Azure Blob Storage➔ Include a SAS-URI reference in the exchanged message

Page 16: Building loosely coupled integrations with Logic Apps

17

The Final Solution➔ Developed a custom API App that:

➔ Provides Routing Slip functionality➔ Reads Routing Slips from Azure File Share➔ Integrates with Azure Service Bus➔ Leverages claim check pattern with Azure Blob

Storage

Page 17: Building loosely coupled integrations with Logic Apps

Example: Routing

Slip

Page 18: Building loosely coupled integrations with Logic Apps

Example: Transform

19

Page 19: Building loosely coupled integrations with Logic Apps

Example: Flat File Decoding

20

Page 20: Building loosely coupled integrations with Logic Apps

21

Example: Debatching

Page 21: Building loosely coupled integrations with Logic Apps

22

Example: Batching

Page 22: Building loosely coupled integrations with Logic Apps

Demo time!

Page 23: Building loosely coupled integrations with Logic Apps

Debatching

Page 24: Building loosely coupled integrations with Logic Apps

Scenario 01 – Debatching of Sales Order

Page 25: Building loosely coupled integrations with Logic Apps

Batching

Page 26: Building loosely coupled integrations with Logic Apps

Scenario 02 – Batching of Invoices

Page 27: Building loosely coupled integrations with Logic Apps

Analyse the result!

Advantages➔ Solid design➔ Configuration driven➔ Fast release cycles➔ Robust➔ Good error handling➔ Easy side-by-side

versions28

Challenges➔ Requires solid

framework➔ Async = expensive

➔ Service Bus➔ Blob Storage➔ Polling

➔ Monitoring

Page 28: Building loosely coupled integrations with Logic Apps

Conclusion

Page 29: Building loosely coupled integrations with Logic Apps

Logic Apps is a natural fit for citizen integration

Page 30: Building loosely coupled integrations with Logic Apps

you know your patternsyou know its strengthsyou know its limitations

Logic Apps can be used for enterprise integration if

Page 31: Building loosely coupled integrations with Logic Apps

Thank you!

Toon VanhoutteSolution Architect

@toonvanhoutte