Upload
lee-calcote
View
82
Download
0
Embed Size (px)
Citation preview
16
PoweringMicroservices &Sockets usingNginx andKubernetes
Lee CalcoteYogi Porla
http://calcotestudios.com/nginx16
Lee Calcote
linkedin.com/in/leecalcote
@lcalcote
blog.gingergeek.com
clouds, containers, infrastructure,applications and their management
Free ebookPreorderAvailable
Our AppA 1GB jar
Case Studyis an IDE for game developers - created by gamedevelopment studio based inAustin (MaxPlay) - creates a real-time,collaborative gamedevelopment engine
@lcalcote
“google docsfor game
development”
Vert.x
Our Bloat-a-lith
@lcalcote
EventBus Handler
Persistence Verticle
SockJS
Analytics
Analytics UI
HazelcastGridConnection
Telemetry
Telemetry Analysis
Projects, Streams,
Users, Sessions,
Tenants
Kafka Producer
Platform Client
Producer
Spark, RGCE NetworkLoad Balancer Kafka
Rendering Engines
Platform Publishing
Tool
Game Analysis
Single instance
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
Shaping Up
Characteristics ofMicroservices
small, autonomous services that work together.
how small is small?
independent, autonomous service
self-contained functional unit
@lcalcote
Who has a system that istoo big and that you’d
like to break down?Can a small team manage it?
More moving partsincreases complexity.
Can you make a change to aservice and deploy it by itself
without changing anything else?
Faster delivery, rolling updatesHorizontal scale out on-demand;
on an individual service basis
Modular architectureEasy integration and deploymentsService isolation, resilience and fail-safe recovery
@lcalcote
Benefits of Microservices- a quick review
Democratization of language and technology choice
Kubernetes & Nginx
to the Rescue
@lcalcote
Our Microbloat v1
@lcalcote
Analytics UI
Authentication
Telemetry
Telemetry Analysis
Spark, R
Kafka
Rendering Engines
Platform Publishing
Tool
Game Analysis
Masteretcd
Authorization
Locking
Authorization
Projects
AuthorizationAuthorization
kube-proxy kube-proxy
SockJS
Authorization
kube-proxy
Node Node
Node
kube-api, etc.
ComparingServices
(not shoes)
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 ?
ContainerOrchestrators
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
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
ContainerOrchestrators
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
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 withminimal configuration change Deeper feature set available as services/team matures
use as an Application Delivery Controller
@lcalcote
Platform independence
Microbloat v2Going deeper with Nginx & Kubernetes
Service Discovery with Nginx PlusNeed 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
@lcalcote
Common Administration
w/Nginx Plus
App
App App
GSLB & Content Cachingw/Nginx Plus
@lcalcote
App
App
AppGeoDNS
USRegions
Session Persistence and Sticky Routing help inperformance of request routing and localized contentContent Caching provides faster retrieval of dataPerformance, reliability and availability
GlobalRegions
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
Lee Calcote
linkedin.com/in/leecalcote
@lcalcote
blog.gingergeek.com
clouds, containers, infrastructure,applications and their management
Questions?