Mais conteúdo relacionado Semelhante a Are microservices 'soa done right'? (20) Mais de Jason Bloomberg (18) Are microservices 'soa done right'?1. Copyright © 2015, Intellyx, LLC
1
Are Microservices ‘SOA
Done Right’?
Jason Bloomberg
President
jason@intellyx.com
@theebizwizard
2. 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, LLC2
3. It’s About Architecture!
• The real question: is
microservices
architecture ‘SOA
done right’?
• What is ‘microservices
architecture’?
• What is ‘SOA done
wrong’ anyway?
Copyright © 2015, Intellyx, LLC3
No argument of architects,
please!
PhotoCredit:Alphaducentaurehttps://www.flickr.com/photos/alphaducentaure/
4. 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!
Copyright © 2015, Intellyx, LLC4
PhotoCredit:PhilMankerhttps://www.flickr.com/photos/philmanker/
5. 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 &
difficult
Copyright © 2015, Intellyx, LLC5
REST-Based SOA still largely
predated microservices
PhotoCredit:CoryDoctorowhttps://www.flickr.com/photos/doctorow/
6. SOA Services
vs. 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, LLC6
7. 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
Copyright © 2015, Intellyx, LLC7
PhotoCredit:NeilTurnerhttps://www.flickr.com/photos/neilt/
8. 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
Copyright © 2015, Intellyx, LLC8
PhotoCredit:JamesLeehttps://www.flickr.com/photos/jronaldlee/
9. 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?
Copyright © 2015, Intellyx, LLC9
PhotoCredit:AJChttps://www.flickr.com/photos/ajc1/
10. Cohesion
• Microservices should do one thing well
• Principle of modular programming since the
1960s
• Web Services often suffered from low
cohesion
Copyright © 2015, Intellyx, LLC10
11. μservice
Cracking Open a
Microservice
• Shared nothing in the
sense that each
microservice has these
elements
• Each element is itself
parsimonious &
coherent
Copyright © 2015, Intellyx, LLC11
Code
Runtime
Cache
OS Elements
Service Interface
12. 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
Copyright © 2015, Intellyx, LLC12
PhotoCredit:AnanthBShttps://www.flickr.com/photos/ananth/
13. 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, LLC13
14. 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
Copyright © 2015, Intellyx, LLC14
PhotoCredit:JitzeCouperushttps://www.flickr.com/photos/jitze1942/
15. Container-Oriented
Architecture & the Cloud
• Container-oriented
architecture builds
upon cloud
architecture best
practices
– Horizontal scalability
– Elasticity
– Automated recovery
from failure
– Tunable data
consistency
Copyright © 2015, Intellyx, LLC15
PhotoCredit:LaurenCoolmanhttps://www.flickr.com/photos/wintercool612/
16. The Answer?
• Not a fixed goal
• More of a journey of
architectural discovery
• Not ‘wrong’ vs. ‘right,’ but
getting better as we go
Copyright © 2015, Intellyx, LLC16
Microservices
architecture is SOA +
cloud architecture
done right
PhotoCredit:RobertCouse-Bakerhttps://www.flickr.com/photos/29233640@N07/