Microservices in a serverless world
Microservices Meetup Sep 2017
@exortech
Microservices
vs.
Serverless
Cloud functions
FaaS
@exortech
@exortech
Physical servers
Virtual machines
Containers
Serverless
@exortech
System / Application
Services
Cloud functions
@exortech
@exortech
Design
Tools
Process
Future
@exortech
Design
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
Microservices
Cloud functions
@exortech
Design • Tools • Process • Future
Serverless
Microservice
ephemeral
long-lived
250+ ms latency
low latency
jobs < 5 mins
short requests to batch processing
events / stream
HTTP / REST
@exortech
High coupling
Low coupling
High cohesion
Low cohesion
Monolith
Distributed Monolith
Remote objects
Design • Tools • Process • Future
@exortech
High coupling
Low coupling
High cohesion
Low cohesion
Monolith
Design • Tools • Process • Future
Bounded Context
@exortech
Design • Tools • Process • Future
Queue / Stream
Integration middleware
Use Case #1
@exortech
Design • Tools • Process • Future
API
Application
Use Case #2
@exortech
Tools
Design • Tools • Process • Future
@exortech
@exortech
Design • Tools • Process • Future
AWS SAM
@exortech
Design • Tools • Process • Future
Considerations
portability
abstraction
community / momentum
language
testability
deployment / provisioning
complexity
@exortech
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
service: catalog
functions:
getCatalog:
events: ...
getItem:
listItems:
...
catalog/serverless.yml
@exortech
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
AWS SAM
@exortech
Design • Tools • Process • Future
@exortech
persistence?
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
Relational DB
@exortech
Design • Tools • Process • Future
Key-value store
@exortech
Design • Tools • Process • Future
Event stream
@exortech
Process
Design • Tools • Process • Future
@exortech
Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure.
Design • Tools • Process • Future
Melvin Conway
@exortech
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
Inverse Conway Maneuver
@exortech
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
Inverse Conway’s Law
Systems and tools also shape the structure and processes of the organizations that use them.
@exortech
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
@exortech
Programmer
narchy
@exortech
Design • Tools • Process • Future
“Threw out the Agile Playbook”
fast-failure (MTTR)
defect prevention (MTBF)
business metric tracking
acceptance testing
disposable services
precious code
continuous deployment
continuous integration
duplicate or rewrite
reuse
health checks and alerting
unit testing
@exortech
Future
Design • Tools • Process • Future
@exortech
Design • Tools • Process • Future
The Promise of Serverless
✅ Low barrier to entry
✅ Low cost to operate
✅ No specialized OS or HW knowledge required
@exortech
Design • Tools • Process • Future
“Anyone who knows a bit of coding can deploy an infinitely* scalable service”
@exortech
Design • Tools • Process • Future
20 M
57 M
@exortech
Design • Tools • Process • Future
+
@exortech
Design • Tools • Process • Future
@exortech
Thanks!
@exortech