Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Logic Apps reuse with microservices design
Mikael Sand
https://se.linkedin.com/in/mikaelsand
LOGIC APPS
REUSE WITH
MICROSERVICES
DESIGN
2018-03-05 STOCKHOLM
WELCOME
Mikael Sand
Long time blogger & community contributor
Did 10 years of BizTalk!
Works for Enfo Sweden – Solution Architect
...
Mikael Sand
4th talk at Integration Monday
Checkout my Beginner’s guide 1 and 2
AGENDA 1. TRADITIONAL LOGIC APPS VS
MICROSERVICES ARCHITECTURE
2. REUSABILITY
3. COMPOSITE SERVICES
4. ABSTRACT VS DETAILE...
Preface about Azure Functions
“Traditional” Logic App?
• Workflow (large) that solves a particular problem.
• End to end: Move data from system A to system B.
• Mixing process w...
• Independently deployable, easy to replace.
– Contract
– ”Binary compatability”
• Small and message based
• Modular struc...
• Independently deployable, easy to replace.
– Contract
– ”Binary compatability”
• Small and message based
• Modular struc...
Nothing new…
DEMO – GET KEY
Get Customer
data
Get Key From
Keyvault
Is key expired?
Login to
system
Get Key
Store Key in
Keyvault
Set K...
DEMO
IF
• Reusable
• Servicebased
• Message enabled
• Idempotency
• Etc
MICROSERVICES - EVOLVE
Composite services!
• Litte tiny parts (services), combined to
make a new whole
• Combine services to make new things
COMPOSITE SERVICES
DEMO – GET CUSTOMER DATA
Get Customer data
Get Customer data
system A
Get Customer data
system B
Combine A+B
Return
Custom...
DEMO
• Combination of lots of small services
=> Create a new whole
• Combination of a new whole
=> Process
• Process is abstrac...
Functionality
(/services)
Services
Process
HIERARCHY OF SERVICES –
PROCESS VS DETAIL
Register Order
GetCustomer
Stock
avai...
• Microservices architecture fit very well
• Scaleability built right into Logic Apps
• ForEach – Parallel 20 exec by defa...
DEMO – SCALEABILITY – GET NEW ORDERS
Get orders by status
Get order by ID
Call
Save instance
Get key
Combine
Return orders...
DEMO
• Naming discussions turn rational poeple into these =>
• Deciding on a name for a LA depends..
– Who is calling it?
– Wha...
Remember the guys to the right….
<Unique ID_><Affiliation_><Business Need>
Examples
INT0001_ACT0004_CustOnboarding
SVC0001...
• No visual tool
– Connecting the Logic Apps visually to show composite services
• Need to plan – Rework andreuse
• Compat...
• Excel sheet: Names and descriptions befor you build
• Use the clone feature in the Azure portal
– Good for copy
– And re...
• You do not need to restart the whole process.
• Debug only a certain part of the flow.
• ”Seal” a Logic App by making it...
www.enfogroup.com
THANK YOU
For further contact please use:
Blog: www.mikaelsand.com
Twitter: @mikaelsand
Email: mikael_sa...
Upcoming SlideShare
Loading in …5
×

Logic Apps reuse with microservices design

999 views

Published on

How do you structure you Logic Apps and related items in a solution? What is your naming conventions for Logic Apps? Mikael Sand will show a real customer case where he used a Microservices approach, the upsides, and the downsides.

Published in: Technology
  • Be the first to comment

Logic Apps reuse with microservices design

  1. 1. Logic Apps reuse with microservices design Mikael Sand https://se.linkedin.com/in/mikaelsand
  2. 2. LOGIC APPS REUSE WITH MICROSERVICES DESIGN 2018-03-05 STOCKHOLM
  3. 3. WELCOME
  4. 4. Mikael Sand Long time blogger & community contributor Did 10 years of BizTalk! Works for Enfo Sweden – Solution Architect Microsoft integration leason and gray-back @mikaelsand http://mikaelsand.com mikael_sand@hotmail.com
  5. 5. Mikael Sand 4th talk at Integration Monday Checkout my Beginner’s guide 1 and 2
  6. 6. AGENDA 1. TRADITIONAL LOGIC APPS VS MICROSERVICES ARCHITECTURE 2. REUSABILITY 3. COMPOSITE SERVICES 4. ABSTRACT VS DETAILED 5. SCALABILITY 6. CHALLENGES 7. NOTES FROM THE FIELD
  7. 7. Preface about Azure Functions
  8. 8. “Traditional” Logic App?
  9. 9. • Workflow (large) that solves a particular problem. • End to end: Move data from system A to system B. • Mixing process with solution TRADITIONAL LOGIC APP
  10. 10. • Independently deployable, easy to replace. – Contract – ”Binary compatability” • Small and message based • Modular structure • Reusable + Idempotent => Highly scaleable MICROSERVICES
  11. 11. • Independently deployable, easy to replace. – Contract – ”Binary compatability” • Small and message based • Modular structure • Reusable + Idempotent => Highly scaleable REUSEABILITY
  12. 12. Nothing new…
  13. 13. DEMO – GET KEY Get Customer data Get Key From Keyvault Is key expired? Login to system Get Key Store Key in Keyvault Set Key as new value Get Data from System A using key Return the data Set Key as value Key Problems! Reuse get key for other flows?
  14. 14. DEMO
  15. 15. IF • Reusable • Servicebased • Message enabled • Idempotency • Etc MICROSERVICES - EVOLVE Composite services!
  16. 16. • Litte tiny parts (services), combined to make a new whole • Combine services to make new things COMPOSITE SERVICES
  17. 17. DEMO – GET CUSTOMER DATA Get Customer data Get Customer data system A Get Customer data system B Combine A+B Return Customer data Get key
  18. 18. DEMO
  19. 19. • Combination of lots of small services => Create a new whole • Combination of a new whole => Process • Process is abstract • Detail is technical HIERARCHY OF SERVICES – PROCESS VS DETAIL
  20. 20. Functionality (/services) Services Process HIERARCHY OF SERVICES – PROCESS VS DETAIL Register Order GetCustomer Stock availability Get Order discount Login Get from system A Get from system B Combine Customer info Abstract Concrete
  21. 21. • Microservices architecture fit very well • Scaleability built right into Logic Apps • ForEach – Parallel 20 exec by default • Start new Logic App – also parallel exec • Can your downstream system take it? SCALEABLE
  22. 22. DEMO – SCALEABILITY – GET NEW ORDERS Get orders by status Get order by ID Call Save instance Get key Combine Return orders ForEach Get New Orders Call Call Call List Orders Key Get Order Aggregate orders
  23. 23. DEMO
  24. 24. • Naming discussions turn rational poeple into these => • Deciding on a name for a LA depends.. – Who is calling it? – What is the conext? • A process might be a service for someone else • Here is a proposal from Enfo: NAMING – HARD AS NAILS
  25. 25. Remember the guys to the right…. <Unique ID_><Affiliation_><Business Need> Examples INT0001_ACT0004_CustOnboarding SVC0001_COM005_Customer NAMING – HARD AS NAILS CONT
  26. 26. • No visual tool – Connecting the Logic Apps visually to show composite services • Need to plan – Rework andreuse • Compatability and versions CHALLENGES
  27. 27. • Excel sheet: Names and descriptions befor you build • Use the clone feature in the Azure portal – Good for copy – And renamning • Use search in the list of artifacts • Drill down debugging • Plan ahead! Design before you build. • Don’t go overboard with abstraction. Getting key/Loggin in. NOTES FROM THE FIELD
  28. 28. • You do not need to restart the whole process. • Debug only a certain part of the flow. • ”Seal” a Logic App by making it accessable only by other Logic Apps. • Retry policy for calling Logic Apps. • Use schemas, required, and validation. NOTES FROM THE FIELD CONT
  29. 29. www.enfogroup.com THANK YOU For further contact please use: Blog: www.mikaelsand.com Twitter: @mikaelsand Email: mikael_sand@hotmail.com

×