Expectationsare
changing
» real-time (latency of 1
second, not 1 day)
» users are always connected
» mission-critical use cases
» consistent experience more
important than peak
performance
We used towrite
programs...
» for single servers and VMs
» for single cores
» that expect local
communications (call stack)
» that expect small data
snapshots (data fits into
memory)
Nowwewrite
programs...
» that must exploit clusters
» that must exploit multi-
core CPUs (even on cell
phones!)
» that must work across async
boundaries (threads,
networks)
» that must process streams
(i.e, data without limits)
Arecapofheritage
systems
heritage
applications
» Single points of failure
» Difficult to scale (shared
mutable state, etc)
» Different non-functional
requirements (reads,
writes, compute) &
optimized for none!
» Long, risky release cycles
Whatis SOA?
Elements ofSOA
» Inter-operable services
» Formal contracts (e.g,
WSDL)
» Multiple protocols (e.g,
SOAP, RPC, REST, CORBA,
etc)
» Location transparency
» ESB
SOAframework
» Problems arise when we
attempt to contradict the
spirit of SOA
» Central control +
location transparency
» Rigid specifications +
flexibility
» Transactions +
distribution
» Etc
The bad parts ofSOA
“Architecture is
hard enough
withoutadding
unnecessary
complexity.”
Ross Mason, CTO, MuleSoft
ESB
Stateless:
messaging, message exchange patterns (sync req/resp,
async p2p messaging, pub/sub, streams), routing,
service orchestration (service aggregation), security
(encryption and signing), monitoring, protocol
conversion, legacy adapters, payload transformation,
schema validation, governance (the ability to apply
business rules uniformly), service catalog
ESB
Stateful:
process choreography (BPM), complex event processing
(CEP), reliable delivery, transaction management,
split and merge (conflating, windowing, ordering)
heritage systems
» Productivity depends on
working within the system
context
» ESB and other heritage
systems infrastructure
creates difficult
productivity barriers for
developers
BPM
» business activity flows
» modeling, automation, execution, control,
measurement, optimization
» enterprise scope
» spanning systems, employees, customers, partners
"Jack of all trades, master of none,
often times better than the master of one."
Give up control to gain flexibility.
Embrace new patterns to achieve balance.
Howdoes microservice
architecture (MSA) help?
Microservices
» Ubiquitous language
» Well defined models &
boundaries
» Single responsibility
» Independently deployable,
scalable, resilient
» Communicate via async
messaging
» Own their data
» Don't expose a public API
Cloud ready
infrastructure
We needto buildapplications...
» that exploit clusters
» that exploit multi-core CPUs
» that work across async boundaries
» that process streams
Physical
infrastructure
» Nodes across multiple DCs
are considered part of the
same system
» Physical infrastructure
abstracted away from system
world view
Cluster
infrastructure
» Nodes can join or leave the
cluster
» Services are rebalanced
across the cluster
» Node failure doesn't equal
system failure
Service
infrastructure
» View the world through
services
» Service replicas provide
elasticity and resilience
» Support multiple versions
of a service, etc
Rethinking SOAwith MSA
API Gateway
» Some ESB functionality is
moved into API gateways
» routing, service
aggregation, security
(encryption and
signing), protocol
conversion, legacy
adapters, payload
transformation, service
catalog
Microservices
» Microservices become the
core communication
abstraction within a system
» async p2p, pub/sub
» streams (split and merge
(conflating, windowing,
ordering), complex event
processing (CEP))
Modeling
» process choreography (BPM)
becomes DDD (domain driven
design)
» single canonical model
becomes many canonical
models
» ubiquitous language
» well defined interfaces
Transactions
» transaction management (2PC) becomes the saga
pattern
Both service-leveland
infrastructure
» security (encryption and signing)
» monitoring
Summary
» Microservice architecture
(MSA) is not a new concept
» MSA is the evolution of SOA
for a modern world
(expectations, hardware,
size)
Microservices, Monoliths, SOA and How We Got Here
Microservices, Monoliths, SOA and How We Got Here

Microservices, Monoliths, SOA and How We Got Here