mucon 2017: a not so(a) trivial question by tareq abedrabbo

32
A Not SO(A) Trivial Question! Tareq Abedrabbo - MuCon 7/11/2017

Upload: opencredo

Post on 16-Mar-2018

123 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

A Not SO(A) Trivial Question!

Tareq Abedrabbo - MuCon 7/11/2017

Page 2: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Agenda

• Motivation

• SOA vs Microservices

• Design: anti-patterns and recommendations

Page 3: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

About Me• CEO/Consultant at OpenCredo

• Background

• SOA

• Spring-WS

• Microservices

Page 4: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Motivation

Page 5: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Background

• Some organisations are starting greenfield microservices projects

• A few are trying to evolve preexisting platforms

• Many of these organisations have a SOA heritage

Page 6: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Microservices =

SOA done right ?

Page 7: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

What is SOA?

Page 8: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

“A service has four properties according to one of many definitions of SOA:

1.It logically represents a business activity with a specified outcome. 2. It is self-contained. 3. It is a black box for its consumers. 4. It may consist of other underlying services.”

Page 9: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo
Page 10: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

In reality SOA is also….

Page 11: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

➡ An architectural style and design patterns

➡ Data models and patterns

➡ Technology and tools (ESBs, GUIs)

➡ A collection of specifications (SOAP, WS-*)

Page 12: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

The SOA Heritage

✓ Approach & design

✓ Technology selection

✓ Team organisation

Page 13: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

“Those who cannot remember the past are condemned to repeat it”

Page 14: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

SOA vs

Microservices

Page 15: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Reuse vs

Managing change

Page 16: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Vendor-driven viewvs

Broad system view

Page 17: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Integrationvs

Composition

Page 18: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Technical reusevs

Functional reuse

Page 19: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Staticvs

Dynamic

Page 20: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Organisational silosvs

Collaborative teams

Page 21: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Design

Page 22: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Some anti-patterns

Page 23: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Example 1: The Distributed Monolith

Page 24: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Example 2: The Revenge of the ESB

Page 25: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

• Using ESBs (or similar)

• Ignoring delivery guarantees/expecting transactions

• Excessive marshalling/unmarshalling

• Canonical data models/complex schema

• Distributed monolith (based on lack of understanding of boundaries)

• Minilith (proliferation of technology, databases)

• lack of automation in infrastructure/testing

Page 26: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Recommendation• No canonical data model (services do not need to

understand every aspect of the service)

• canonical data model vs schemas

• Separate data from meta-data

• Data orientated modelling/schemas

• Normalise meta-data

Page 27: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Some Recommendations

Page 28: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Keep it domain-driven

Page 29: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Replace canonical data models with data views

Page 30: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Normalise metadata (and separate it from the rest of the data)

Page 31: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Use the right tool for the job

(and use common sense!)

Page 32: MuCon 2017: A not So(A) Trivial Question by Tareq Abedrabbo

Thank you!