+ All Categories
Home > Technology > Microservices vs SOA

Microservices vs SOA

Date post: 28-Jan-2018
Category:
Upload: inovia
View: 251 times
Download: 0 times
Share this document with a friend
66
Microservices or SOA Guillermo GARCIA OCHOA @ggarciaocom Join us in our microservices journey ! [email protected]
Transcript

Microservices or SOAGuillermo GARCIA OCHOA

@ggarciaocomJoin us in our microservices journey !

[email protected]

This presentation is not about FACTS. It is only an educated OPINION based on my experience.

Disclaimer

My experience

2004 2010

My experience

Software Engineering Services

EAI Projects

Organizations with:Multi cultural

Technical HeterogeneityConcurrency/Overlapping

Conflicts of Interest

2004 2010

My experience

Software PublishersProduct Management

Organizations with:Mono cultural

Technical HomogeneityAutarky

More Biased Vision

2004 2010

Software Engineering Services

EAI Projects

Organizations with:Multi cultural

Technical HeterogeneityConcurrency/Overlapping

Conflicts of Interest

My experience

2004 2010

multi* organizations mono*

organizations

Software Engineering Services

EAI Projects

Organizations with:Multi cultural

Technical HeterogeneityConcurrency/Overlapping

Conflicts of Interest

Software PublishersProduct Management

Organizations with:Mono cultural

Technical HomogeneityAutarky

More Biased Vision

My experience

2004 2010

multi* organizations

Organizations with:Multi cultural

Technical HeterogeneityConcurrency/Overlapping

Conflicts of Interest

How organisations handles “growth”?

mono*

organizations

Organizations with:Mono cultural

Technical HomogeneityAutarky

More Biased Vision

What “growth” means for organisations

What “growth” means for organisations

More jobs

(of differents

kinds)

What “growth” means for organisations

More jobs

(of differents

kinds)

More tools

(of differents

kinds)

What “growth” means for organisations

More jobs

(of differents

kinds)

More tools

(of differents

kinds)

More

complex

KPI’s

How to handle “growth”

mono*

multi*

How to handle “growth”

mono*

multi*

Governed

multi*

How to handle “growth”

mono*

multi*

Governed

multi*

How to handle “growth”

mono*

multi*

Governed

multi*

How to handle “growth”

mono*

multi*

Governed

multi*

Enabling

Defining

Composing

Governing

The “DIFFERENT FACETS”

Enabling

Defining

Composing

Governing

The “DIFFERENT FACETS”

Enabling

Defining

Composing

Governing

The “DIFFERENT FACETS”

Enabling

Defining

Composing

Governing

The “DIFFERENT FACETS”

Enabling

Defining

Composing

Governing

The “DIFFERENT FACETS”

mono* Governed

multi*

Enabling

Defining

Composing

Governing

Enabling

Defining

Composing

Governing

mono* Governed

multi*

Enabling

Defining

Composing

Governing

mono* Governed

multi*

Enabling

Defining

Composing

Governing

mono* Governed

multi*

Enabling

Defining

Composing

Governing

mono* Governed

multi*

multi*

Governed

multi*

Enabling

Defining

Composing

Governing

Enabling

Defining

Composing

Governing

multi*

Governed

multi*

Enabling

Defining

Composing

Governing

multi*

Governed

multi*

Enabling

Defining

Composing

Governing

multi*

Governed

multi*

Enabling

Defining

Composing

Governing

multi*

Governed

multi*

An example ...Comparing “Service

Composition” Strategies

Comparing “Service Composition” Strategies

mono*

multi*

Governed

multi*

Comparing “Service Composition” Strategies

mono*

multi*

Governed

multi*

Comparing “Service Composition” Strategies

mono*

multi*

Governed

multi*

Service Composition with “Choreography”

Contact

Service

Create

Message

Service

Send

Service Composition with “Choreography”

Contact

Service

Create

Message

Service

Send

Create

Accou

nt

Contact

Service

Create

Message

Service

Send

Import

Clients

Service Composition with “Choreography”

Contact

Service

Create

Message

Service

Send

Create

Accou

nt

...

User: XXXRole: New User

...

User: XXXRole: New User

...

Contact

Service

Create

Message

Service

Send

Import

Clients

...User: XXX

Role: CRM User...

Service Composition with “Choreography”

Service

Choreography

● An User must play a Roleon each service invocation

● Each service knows what to do with an User playing a given Role

● Users and Roles must be defined globally

● The “business logic” is distributed

Message

Service

Send

Contact

Service

Create

Create

Accou

nt

Message

Service

Send

Contact

Service

Create

Import

Clients

Service Composition with “Orchestration”

Message

Service

Send

Contact

Service

Create

Create

Accou

nt

Orchestrator

...

Message

Service

Send

Contact

Service

Create

Import

Clients

Orchestrator

...

Service Composition with “Orchestration”

Message

Service

Send

Contact

Service

Create

Create

Accou

nt

Orchestrator

...

Message

Service

Send

Contact

Service

Create

Import

Clients

Orchestrator

...

......

Service Composition with “Orchestration”

Service

Orchestration

● Users invoke the Orchestrators services

● The Orchestrators compose the services

● Users and Roles can be defined locally

● The “business logic” is centralized

Choreography

or

Orchrestation?

Choreography

or

Orchrestation?BOTH

MS MS

MS MS

Choreography / Orchestration Strategy

MS MS

MS MS

MS MS

MS MS

MS MS

MS MS

Choreography / Orchestration Strategy

Orchestrator

Choreography / Orchestration Strategy

MS MS

MS MS

MS MS

MS MS

MS MS

MS MS

Choreography

or

Orchrestation?

BOTH

● Use them as “Principle of Abstraction” (grouping principle)

● Define when to use one or another

● … and stick to it!

Even

Microservices

evangelist are

using both ...

Even

Microservices

evangelist are

using both ...

by NETFLIX

(released in Q4 2016)

“We built Conductor to help us orchestrate microservices based

process flows at Netflix”

https://netflix.github.io/conductor/

“This is netflix re-inventingBPEL in Microservicesspace using its customDSL.”

https://www.infoq.com/news/2016/12/

netflix-conductors

Microservices and SOA are two kinds of ARCHITECTURES that try to address the SAME PROBLEMS but with DIFFERENT AUDIENCES, making them focus on DIFFERENT FACETS.

All that to say that ...

Microservices and SOA are two kinds of ARCHITECTURES that try to address the SAME PROBLEMS but with DIFFERENT AUDIENCES, making them focus on DIFFERENT FACETS.

If in your current project Microservices make a lot of sense, reading about SOA might help you to prepare you architecture to growth avoiding well-known pitfalls when composing and governing services.

All that to say that ...

Microservices and SOA are two kinds of ARCHITECTURES that try to address the SAME PROBLEMS but with DIFFERENT AUDIENCES, making them focus on DIFFERENT FACETS.

If in your current project Microservices make a lot of sense, reading about SOA might help you to prepare you architecture to growth avoiding well-known pitfalls when composing and governing services.

If you are in a SOA-like project, Microservices might help you enabling and defining services with well defined responsibilities and scopes.

All that to say that ...

Questions ? Opinions?

Facts ?Guillermo GARCIA OCHOA

@ggarciaocomJoin us in our microservices journey !

[email protected]

Annexes

Well-known

differences

between SOA

and

Microservices

● SOA neglects infrastructure and services release mngt comparing with Microservices

● SOA is very tied to Java / Sun / Oracle / IBM / ... Microservices is more vendor-neutral

Well-known

differences

between SOA

and

Microservices

● Interactions in SOA use X* (XML / XSD / Xpath / *). Microservices recommends JSON.

Enterprise

Service Bus

(ESB)

● “The term ESB is derived from the idea of a hardware bus which transfers messages from one subsystem to another”

Eben Hewitt in Java SOA Cookbook

WS

Choreography

● It is a specification by the W3C

● The W3C Web Services Choreography Working Group, was closed on 10 July 2009

● WS-CDL is the “candidate recommendation”

Business

Process

Execution

Language

(BPEL)

● Describe the execution of services to create a “business process”

● Is an XML language that allows creating data structures, services invocations and error handling

Business

Activity

Monitoring

(BAM)

● Software that gathers, categorize and analyse business-wise data to help “decision making”

● Usually included in the SOA roadmap

● Used to calculate the ROI of a SOA implementation

How to “Peel the Onion”

… when you don’t have a

knife“Microservicing” in an Startup

Our next presentation ...

Thanks / Merci / GraciasGuillermo GARCIA OCHOA

@ggarciaocomJoin us in our microservices journey !

[email protected]


Recommended