are microservices 'soa done right'?
TRANSCRIPT
Copyright © 2015, Intellyx, LLC
1
Are Microservices ‘SOA Done Right’?
Jason BloombergPresident
@theebizwizard
Copyright © 2015, Intellyx, LLC2
About Jason Bloomberg
• President of industry analyst firm Intellyx
• Agile digital transformation thought leader
• Write for Forbes, several blogs, biweekly newsletter the Cortex
• Buy my latest book, The Agile Architecture Revolution
Copyright © 2015, Intellyx, LLC3
It’s About Architecture!
• The real question: is microservices architecture ‘SOA done right’?
• What is ‘microservices architecture’?
• What is ‘SOA done wrong’ anyway?
No argument of architects, please!
Phot
o Cr
edit:
Alp
ha d
u ce
ntau
re h
ttps:
//www
.flick
r.com
/pho
tos/
alph
aduc
enta
ure/
Copyright © 2015, Intellyx, LLC4
Was First-Generation SOA ‘SOA Done Wrong’?• First-generation SOA
– ESB-Centric– Most or all services were
Web Services– XML was primary message
format• Yes, many times it was ‘done
wrong’– Didn’t meet business needs– Insufficient business agility
• Sometimes people actually got it to work!
Phot
o Cr
edit:
Phi
l Man
ker h
ttps:
//www
.flick
r.com
/pho
tos/
philm
anke
r/
Copyright © 2015, Intellyx, LLC5
What About 2nd Generation, REST-Based SOA?
• REST cleaned up a lot of the Web Services mess
• Abstracted, governed service interfaces still a challenge
• REST’s architectural subtleties ambiguous & difficultREST-Based SOA still largely
predated microservices
Phot
o Cr
edit:
Cor
y Do
ctor
ow h
ttps:/
/www
.flick
r.com
/pho
tos/
doct
orow
/
Copyright © 2015, Intellyx, LLC6
SOA Servicesvs. Microservices
• Web Services are contracted interfaces– WSDL + other policy documents
form the contract (all XML)– Abstract underlying software
• RESTful services are also contracted interfaces– Known by their URI & uniform
interface• Microservices are units of
execution– Container-centric (although
containers not required)
Copyright © 2015, Intellyx, LLC7
No More Lipstick• SOA Services suffer from “lipstick on the pig”
problem– Complicated, problematic
software exposed as services still complicated & problematic
• Call for best practices underlying service interfaces– Highly modular, “shared
nothing” code– Independently deployable– Easy to distribute & scale
Phot
o Cr
edit:
Nei
l Tur
ner h
ttps:
//www
.flick
r.com
/pho
tos/
neilt
/
Copyright © 2015, Intellyx, LLC8
What are Microservices?
Parsimonious, cohesive units of execution– Designed to do one thing very well– Contain everything from the operating system,
platform, framework, runtime and dependencies, packaged as one unit of execution
Phot
o Cr
edit:
Jam
es L
ee h
ttps:
//www
.flick
r.com
/pho
tos/j
rona
ldle
e/
Copyright © 2015, Intellyx, LLC9
Parsimony
• As small as they should be but no smaller
• As part of refactoring, ask:– Would this microservice
work better if it were smaller?
– Would this microservice work better if it were split into two or more microservices?
Phot
o Cr
edit:
AJC
http
s://w
ww.fl
ickr.c
om/p
hoto
s/aj
c1/
Copyright © 2015, Intellyx, LLC10
Cohesion
• Microservices should do one thing well• Principle of modular programming since the
1960s• Web Services often suffered from low
cohesion
Copyright © 2015, Intellyx, LLC11
μservice
Cracking Open a Microservice
• Shared nothing in the sense that each microservice has these elements
• Each element is itself parsimonious & coherent
Code
Runtime
CacheOS
Elements
Service Interface
Copyright © 2015, Intellyx, LLC12
Right Tool for the Job
• ‘SOA Services’ become ‘enterprise services’– Abstract & expose legacy
functionality– Leverage value of existing
middleware• Microservices better for
greenfield development– Cloud and container friendly
• Straightforward continuous delivery– Also DevOps friendly
Phot
o Cr
edit:
Ana
nth
BS h
ttps:
//www
.flick
r.com
/pho
tos/
anan
th/
Copyright © 2015, Intellyx, LLC13
Microservices & Containers
• Containers support lightweight, rapid scalability & elasticity
• Microservices well-suited for containers
• Challenges:– Managing state– Keeping track of everything– Integration, especially in
dynamic environments
Copyright © 2015, Intellyx, LLC14
What about ‘Container-Oriented Architecture’?
• Still in its formative stages• Even so, doesn’t look much
like SOA, done right or not• Not clear whether
microservices-oriented architecture and container-oriented architecture will be – or should be – the same thing
Phot
o Cr
edit:
Jitz
e Co
uper
us h
ttps:
//www
.flick
r.com
/pho
tos/
jitze
1942
/
Copyright © 2015, Intellyx, LLC15
Container-Oriented Architecture & the Cloud
• Container-oriented architecture builds upon cloud architecture best practices– Horizontal scalability– Elasticity– Automated recovery
from failure– Tunable data
consistency
Phot
o Cr
edit:
Lau
ren
Cool
man
http
s://w
ww.fl
ickr.c
om/p
hoto
s/wi
nter
cool
612/
Copyright © 2015, Intellyx, LLC16
The Answer?
• Not a fixed goal• More of a journey of
architectural discovery• Not ‘wrong’ vs. ‘right,’ but
getting better as we go
Microservices architecture is SOA +
cloud architecture done right
Phot
o Cr
edit:
Rob
ert C
ouse
-Bak
er h
ttps:
//www
.flick
r.com
/pho
tos/
2923
3640
@N0
7/
Copyright © 2015, Intellyx, LLC
Jason BloombergPresident, Intellyx
@theebizwizard
Send email NOW to [email protected] to download this presentation
Thank You!