SlideShare a Scribd company logo
GLUE CON 2015
Architectural Patterns for Scaling Microservices
and APIs
Scalability is not a Singleton
You have
less than 5
seconds to
deliver
content.
Maintain availability
Maintain performance
Average
cost of
critical app
failure per
hour is
$500,000 to
$1 million.
Scale is achieved by optimally distributing
load
 TCP Connections
 Response time
 HTTP Requests
 Least connections
 Fastest response
 Fastest app
 Round Robin
Thresholds Methods
The Scale Cube
 X-axis
 Y-axis
 Z-axis
http://microservices.io/articles/scalecube.html
Scalability: Out, Up, and Across
 Creating scalability
domains
 Balance
performance and
availability
X-Axis
 Like clustering
 Leverages cloning
 Typically operates at layer
4 (TCP)
Y-Axis
 Like routing
 Uses identifiable variables
(usually from HTTP headers)
 Operates at layer 7 (HTTP)
Z-Axis
 Like sharding
 Uses one or more identifiable variables (usually from HTTP headers)
 Operates at layer 7 (HTTP)
APIs and Microservices
API as Façade API as Endpoint
SERVICE
API
API
SERVICE
API
SERVIC
E
A
P
I
SERVIC
E
A
P
I
API as Endpoint
API
Standard X-axis Scaling Pattern
APIAPI
API Façade: Interpolated in Network
Standard Y-axis Scaling Pattern
Microservice A
Microservice B
Microservice C
API
One pattern is rarely enough
Most often combined in 2-3 tiers
 Y-axis routing pattern used to
distribute API calls to X-axis
scaled service clusters
2-Tier Interpolated API
Y-Axis Scaling X-Axis Scaling
API
Top Mistakes Regardless of
Pattern
• Choosing the wrong thresholds
• Scaling too late leads to time outs &
performance degradation
• Not monitoring
• Services fail, users get angrified by time outs
• Not scaling the scaler
• Overwhelming the upstream scaler is a Very
Bad Thing™
@lmacvittie
F5 Networks
THANK YOU!

More Related Content

Architectural Patterns for Scaling Microservices and APIs - GlueCon 2015

Editor's Notes

  1. Session Title        Description        Scalability has come along way from the simple cloning and clustering techniques used to scale monolithic applications. As applications and APIs continue to decompose there’s a need for patterns designed to scale at an architectural level across X, Y and Z axes. This session will dive into the three axes of scale (as defined by The Scale Cube) and how smart proxies facilitate the implementation of architectural level scalability patterns.
  2. Thresholds and methods can be used with any pattern, and mixed and matched with patterns to achieve the goals desired.