Slide 1

Slide 1 text

16 Powering Microservices & Sockets using Nginx and Kubernetes Lee Calcote Yogi Porla http://calcotestudios.com/nginx16

Slide 2

Slide 2 text

Lee Calcote linkedin.com/in/leecalcote @lcalcote blog.gingergeek.com [email protected] clouds, containers, infrastructure, applications and their management Free ebook Preorder Available

Slide 3

Slide 3 text

Our App A 1GB jar

Slide 4

Slide 4 text

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”

Slide 5

Slide 5 text

Vert.x Our Bloat-a-lith @lcalcote EventBus Handler Persistence Verticle SockJS Analytics Analytics UI Hazelcast GridConnection Telemetry Telemetry Analysis Projects, Streams, Users, Sessions, Tenants Kafka Producer Platform Client Producer Spark, R GCE Network Load Balancer Kafka Rendering Engines Platform Publishing Tool Game Analysis Single instance

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Shaping Up

Slide 8

Slide 8 text

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?

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Kubernetes & Nginx to the Rescue @lcalcote

Slide 11

Slide 11 text

Our Microbloat v1 @lcalcote Analytics UI Authentication Telemetry Telemetry Analysis Spark, R Kafka Rendering Engines Platform Publishing Tool Game Analysis Master etcd Authorization Locking Authorization Projects Authorization Authorization kube-proxy kube-proxy SockJS Authorization kube-proxy Node Node Node kube-api, etc.

Slide 12

Slide 12 text

Comparing Services (not shoes)

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

@lcalcote Common Administration w/Nginx Plus App App App

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Lee Calcote linkedin.com/in/leecalcote @lcalcote blog.gingergeek.com [email protected] clouds, containers, infrastructure, applications and their management Questions?