Microservices present challenges of coordination, SSL termination and socket connection among others. Looking to different cloud providers to assist with their load-balancers leaves you wanting as features socket connection support, SSL termination and geo-distributed load-balancing are often absent. Presented at Nginx Conf 2016.
4. Case Study
is an IDE for game developers
- created by game
development studio based in
Austin (MaxPlay)
- creates a real-time,
collaborative game
development engine
@lcalcote
“google docs
for game
development”
6. App is Reactive
Deals with sockets
Limited resources
Culture / DevOps / Cloud Maturity
Support containers and VMs
Propagation of huge data sets
@lcalcote
The Challenge
On-the-fly intelligent rendering
Distribution of content
Extremely low latency for Reactive services
Blocking vs non-blocking
On-premises telemetry collection and
analytics
8. Characteristics of
Microservices
small, autonomous services that work together.
how small is small?
independent, autonomous service
self-contained functional unit
@lcalcote
Who has a system that is
too big and that you’d
like to break down?
Can a small team manage it?
More moving parts
increases complexity.
Can you make a change to a
service and deploy it by itself
without changing anything else?
9. Faster delivery, rolling updates
Horizontal scale out on-demand;
on an individual service basis
Modular architecture
Easy integration and deployments
Service isolation, resilience and fail-safe recovery
@lcalcote
Benefits of Microservices
- a quick review
Democratization of language and technology choice
13. SSL Termination
@lcalcote
Kubernetes 1.3 No
Swarm 1.12 No
Mesos+Marathon Yes
ELB Classic Yes
ELB L7 Yes
Beanstalk Yes (EC2)
IOT Yes
ECS Yes (EC2)
Lambda ?
Container
Orchestrators
Clouds
AWS
Azure
GCP
Load-Balancer No
App Gateway Yes
Container Service ?
Cloud LB (HTTP) Yes (beta)
Cloud LB (Network) Yes (beta)
GKE No
Link
Link
Link
Link
Link
Link
Link
Link
Link
SSL Proxy
SSL Proxy
14. Websocket Support
@lcalcote
Kubernetes 1.3 No
Swarm 1.12 No
Mesos+Marathon Yes
ELB Classic Yes
ELB L7 Yes
Beanstalk Yes
IOT Yes
ECS Yes
Lambda Yes
Container
Orchestrators
Clouds
AWS
Azure
GCP
Load-Balancer No
App Gateway Yes
Container Service ?
Cloud LB (HTTP) No
Cloud LB (Network) Yes
GKE No
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
Link
15. Why Nginx
Hybrid needs
On-premises and Google Cloud Platform
Consistent administration and capabilities
central load balancing and proxy platform
Support for VM and container-based technologies with
minimal configuration change
Deeper feature set available as services/team matures
use as an Application Delivery Controller
@lcalcote
Platform independence
16. Microbloat v2
Going deeper with Nginx & Kubernetes
Service Discovery with Nginx Plus
Need for locating service instances instantly without reconfiguring
On-the-fly Reconfiguration API
Work with etcd
As an ingress controller in Kubernetes
SSL termination
Path-based rules
Multiple host names
@lcalcote
18. GSLB & Content Caching
w/Nginx Plus
@lcalcote
App
App
App
GeoDNS
US
Regions
Session Persistence and Sticky Routing help in
performance of request routing and localized content
Content Caching provides faster retrieval of data
Performance, reliability and availability
Global
Regions
19. A/B Testing Using Nginx
@lcalcote
Requests
App v0.1
App v0.2
90% of requests go to v0.1
10% of requests go to v0.2