application routing on kubernetes

11
APPLICATION ROUTING ON K8S OLIVER GOULD @OLIX0R CTO, BUOYANT.IO #KUBECON2015

Upload: kubeacademy

Post on 14-Feb-2017

412 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Application Routing on Kubernetes

APPLICATION ROUTING ON K8S

OLIVER GOULD @OLIX0R

CTO, BUOYANT.IO

#KUBECON2015

Page 2: Application Routing on Kubernetes

WHALE WARSTWITTER, 2010

Page 3: Application Routing on Kubernetes

TWITTER, 2010: WHALE WARS

THE MONORAIL AND THE FAIL WHALE

▸ Millions of lines of Ruby on Rails

▸ Deployed as a single unit by a single team

▸ twitter.com growing like crazy 📈

▸ Eng: 2x every ~9 months

▸ Hardware: thousands of machines

▸ Allocated & configured ~manually by Ops

▸ Site-wide outages are a given

Page 4: Application Routing on Kubernetes

TWITTER, 2010: WHALE WARS

THE HUNT

▸ Scaling Eng via SOA Microservices!

▸ provisioning:

▸ service discovery (zookeeper, etc)

▸ rpc/traffic (finagle.github.io)

▸ observability (e.g. zipkin)

Page 5: Application Routing on Kubernetes

TWITTER, 2010: WHALE WARS

NOW YOU HAVE N+1 PROBLEMS

▸ What are the properties of slow requests?

▸ How do I set an appropriate timeout without redeploying?

▸ What are sane retry policies?

▸ How do we fail a service to another region where it’s working properly?

Page 6: Application Routing on Kubernetes

TWITTER, 2010: WHALE WARS

SCALING TEAMS THROUGH FLEXIBILITY

▸ How do I stage a version of my service for only certain users?

▸ How do I inject latency/failures into a downstream service without asking them to redeploy?

▸ How do I stage a debugging version of my service without impacting my clients?

Page 7: Application Routing on Kubernetes

APPLICATION ROUTING ON KUBERNETES

BUOYANT, 2015

Page 8: Application Routing on Kubernetes

APPLICATION ROUTING ON KUBERNETES

AN APPLICATION WHAT WHAT?se

rver

clie

ntsvc

serv

er

clie

nt

svc

serv

er

clie

nt

svc

serv

er

clie

nt

svc

Finagle Finagle Finagle

svc

clie

ntse

rver

App Router

svc svc svc

clie

ntse

rver

App Router

clie

ntse

rver

App Router

Page 9: Application Routing on Kubernetes

APPLICATION ROUTING ON KUBERNETES

WHY KUBERNETES?

▸ Flexible

▸ Simple

▸ Networking model + L4 discovery!

▸ Community

--- kind: Service apiVersion: v1 metadata: namespace: $NAMESPACE name: $SERVICE_NAME

spec: selector: app: $SERVICE_NAME

clusterIP: None ports: - name: http port: 8080 - name: admin port: 9990

Page 10: Application Routing on Kubernetes

TEXT

BUOYANT <3 K8S

K8S MASTER

SERVICE A SERVICE B SERVICE C

BUOYANT ROUTER

ServicesUSERS SERVICE OWNERSRequests

Tracing, Stats

Routing, SLAs, …

Page 11: Application Routing on Kubernetes

DESIGN PARTNERS WANTED

OLIVER GOULD @OLIX0R [email protected] @BUOYANTIO