31

Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system
Page 2: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system
Page 3: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Hur möter Microsofts integrationsplattformar den

hybrida världen?

Page 4: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Let’s start with a few 101 lessons from 15 years of integration work

Page 5: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Overview & control

Logging, monitoring,

general governance of

integrations

Architecture flexibility

Being able to replace system

and make changes

efficiently

Why use an integration platform in the first place?

Reuse & cost control

Maintain low maintenance/ development cost over time

Page 6: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

To achieve these goals that we need to remember a few patterns, concepts and some basic architecture

Page 7: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

• Loose versus hard coupling - problemSystem A System B

System DSystem C

• The destination system dictates how an integration is build, all the way from the source system

• Leads to details from the source system being built in to whole integration

• Integration can not be reused – forces need for new integrations instead of reuse

• Creates inflexibility in the architecture – replacement of a system becomes complicated

The integration has built in knowledge about the

destination systems format, transport, address and protocol

New system will need a new integration as the old one is tailored for a specific system.

Lots of integration over time.

Any change in a system will cause a change to the whole integration

System E

System F

System G

System H

System I

System J

System K

Add when finally System A need

changes, updates or is being replaced –

things will be interesting …

Page 8: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

• Loose versus hard coupling - solutionSystem A

Integration platform

• New or changed destination system can be added as subscribers to information. Integration only handles requirement directly related to destination system.

• New or changed source systems can be replaced.Only the integration that handles the requirement from that system needs replacement

The publisher integration should only have knowledge on how communicate with the

source system, the integration platform and how to transform from the source format to

a general format

System DSystem C

The subscriber integration should only have knowledge on how communicate with the

destination system, the integration platform, what messages to receive and

how to transfer from a general format to a source specific format

System BNew system can be

added or changed by just adding or changing the

subscribing part of the integration

Page 9: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Microsoft

BizTalk

NOBBEkstern

varemaster

LogiqEDI-

meldinger

Perfion (PIM)Lokal varemaster

AstroWMS (Logistikk)

DAX200ERP-MAXBO

Varer, Priser,

Tilgjengelighet,

Kunder, Ordrer,

Distribusjon

M3ERP-Logistikk

Varer, Priser,

Tilgjengelighet

SentrallagerHybrisB2B

B2C

Eksternt:FTP-utveksling

Filoverføringer

SuperOfficeCRM

proffkunder

KundeByggDoc

CoBuilder

ClarityPrognose innkjøp

AzureB2B

B2C

MagentoB2B

B2C

Page 10: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

• Publish subscribe architecture – a key pattern System A

System B

System C• Key technical component in

creating flexible architecture and a loose coupling

• Simplifies scaling – publishers or subscribers can be scaled independently

• Often requires the ability to subscribe to meta data on the messages (content based routing)

The message queue need to be super

stabile – it cannot fail! It’s a major single point of failure.

Needs to have the possibility to add meta

data to messages as that is what we will

subscribe to

For optimal flexibility an simplicity we need the possibility to filter

for only specific messages and not

receive all messages to all subscribers

Needs agents that are responsible for adding the

messages to specific publishers queues

Page 11: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

BizTalk messaging engine, details

Page 12: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

• Asynchronous versus synchronous – the difference

• Asynchronous messages lets the receiving application handle the message when it’s best suitable

• Asynchronous messaging lets the sending application leave a message without a direct response and the start working on the next one.

Synchronous messaging? Asynchronous messaging?

Our system endpoint

Synchronous messaging has it’s place but should be

used with care.

As it required immediate response it becomes fragile

and require lots of error handling, in addition to put

stress on the responding system

Page 13: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

System A System B

Asynchronous versus synchronous –make the correct choice!• Synchronous patterns should

only be used when a intermediate response is needed!

The requirement is really just one way (we don’t care about

the response) – but there is this cool http based API that

we can use!

System A System B

Might seem like a good idea at first – but will put a lot of

stress on the destination system. Failures and resends

needs to be implemented directly in the sending system.

System A System BIntegration component

If there isn’t a requirement for an intermediate response it’s almost always a good idea to try and make the integrations

asynchronous – or at least semi-asynchronous

Page 14: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

These have been hard learned lessons …

Page 15: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

So how does this knowledge transfer over to cloud based integrations? Or does it?

Page 16: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

System A

System B

Logic App

Receive action

Transform action

Send action

Look mom! A one-to-one tightly coupled Logic App!

Page 17: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Logic App

Receive action

Transform action

Send action

System A

System B System C System D

Transform action

Send action

Transform action

Send action

Decide

Look mom! A one-to-one tightly coupled Logic App!

• Changes to any transformation/logic for any of the integrations will require a redeploy of all integration that are part of the Logic App

• New or removed systems will require a redeploy of all integration that are part of the Logic App

• Heavy load on one integration will affect all integrations

• Logging and monitoring becomes more complicated

Page 18: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

How can we do things different?

Page 19: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

• Azure Service Bus – an its two “modes”

Message Sender

Service Bus Namespace

Message Receiver

Logic App A

Logic App B

BizTalk Server

Topic

Subscription A Logic App D

Filter: InvoiceType = A

Subscription B BizTalk Server

Filter: InvoiceType = A or InvoiceType = B

• Complete pub/system in Azure – packed with features.

• Topic/subscriptions offers content based routing capabilities

Page 20: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

So – how can we use all this together?

Page 21: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

On premise

Azure Cloud based/externalSystem B

Cloud based/externalSystem A

The application specific Logic Apps are

responsible for system specific communication

and can handle a number of protocols and

transports. Also responsible for

transforming between system specific format

an shared formats.Publish/subscribe - Azure Service Bus

Subscribers are only subscribe to specific messages

using a Service Bus Subscription. Publishers only

publish messages to the Service Bus

with the right properties set.

BizTalk acts very similar to the Logic Apps

Publisher and Subscribers and either publishes or subscribes to messages on the Bus

On-premise data gateway

System specific Publisher

System specific Subscriber

System specific Subscriber

System specific Publisher

System specific

Publisher

System specific

SubscriberDepending on

previous investments,

strategy etc. Logic Apps might also

be used for communicating with on-premise

applications

On premise basedSystem C

On premise basedSystem D

Page 22: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Microsoft

BizTalk

NOBBEkstern

varemaster

LogiqEDI-

meldinger

Perfion (PIM)Lokal varemaster

AstroWMS (Logistikk)

DAX200ERP-MAXBO

Varer, Priser,

Tilgjengelighet,

Kunder, Ordrer,

Distribusjon

M3ERP-Logistikk

Varer, Priser,

Tilgjengelighet

SentrallagerHybrisB2B

B2C

Eksternt:FTP-utveksling

Filoverføringer

SuperOfficeCRM

proffkunder

KundeByggDoc

CoBuilder

ClarityPrognose innkjøp

AzureB2B

B2C

MagentoB2B

B2C

Page 23: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Microsoft

Azure Service Bus

NOBBEkstern

varemaster

LogiqEDI-

meldinger

Perfion (PIM)Lokal varemaster

AstroWMS (Logistikk)

DAX200ERP-MAXBO

Varer, Priser,

Tilgjengelighet,

Kunder, Ordrer,

Distribusjon

M3ERP-Logistikk

Varer, Priser,

Tilgjengelighet

SentrallagerHybrisB2B

B2C

Eksternt:FTP-utveksling

Filoverføringer

SuperOfficeCRM

proffkunder

KundeByggDoc

CoBuilder

ClarityPrognose innkjøp

AzureB2B

B2C

MagentoB2B

B2C

Page 24: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Azure Event Grid will finally enable event bases architectures!

Publish/subscribe –Azure Service Bus

System A

System specific Publisher

System specific Subscriber

System specific

Publisher

System specific

Subscriber

System B

Event Grid should make it possible for subscribers to

be “woken up” (using a webhook) when there’s a message on the queue for

them and will hopefully get us away from all polling

need today

Will today constantly check for messages by scheduled

polling. Expensive …

Page 25: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

But what about synchronous integrations?

Page 26: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Cloud

On premise

On-premise based systems and data stores

Shouldn’t the same rules and goals apply for a http based synchronous integrations?

HTTP

Clients

HTTP HTTP

• These also need to be monitored and logged!

• Overview and control and general governance is just as important for this type of integration

• Reuse can rarely be achieved without the concept of composite services – exposed data service are usually to granular and will force implementation details in to the client. Again, creating tight coupling

Page 27: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Been here before? What’s the difference between a message in a file and in a http payload?

Page 28: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Cloud

On premise

On-premise based systems and data stores

API Management will solve some problems like overview, control & governance

HTTP

Clients

HTTP HTTP

Azure API Management

Authentication, security, policies,logging and monitoring

• Central API Management gives overview, control and general governance

• Also offers the possibility of abstracting away complexity in underlying implementation –improves reuse

Page 29: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

Reuse! Not possible when having tight coupling

Page 30: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

On premise

Micro/compositeservices architecture

On-premise based systems and data stores

Cloud based systems and data stores

Virtual ServicesAzure API Management

Micro Service/Composite serviceLogic App/Function/Api App

HTTP

Clients

On premise data gateway

On-premise based systems and data stores

HTTP

This over simplified!

- Cache/performance- Synchronous requirement, asynchronous behavior in

back end system- Client system callbacks

and push to client patterns- Full stack logging and

monitoring

Page 31: Hur möter Microsofts - iBiz Solutions | We are …...Azure Cloud based/external System B Cloud based/external System A The application specific Logic Apps are responsible for system

All shortcuts will cost money over time!

One-to-on, tightly coupled integrations

will always cost money and time in

the long run

Synchronous integrations should

have the same requirements as an

asynchronous integrations

Resuable, stabile maintainable

synchronous are however hard to

achieve

ConclusionAn efficient

architecture requires much more that good

technical platform

Requires good architecture, planning

and governance

No problem building one-to-one, tightly

coupled integrations on a perfectly

designed technical platform

When possible -Always choose a pizza delivery over a swat team at your door!