32
Serverless on Kubernetes Sebastien Goasguen @sebgoa www.skippbox.com

Serverless on Kubernetes

Embed Size (px)

Citation preview

Page 1: Serverless on Kubernetes

Serverless on Kubernetes

Sebastien Goasguen@sebgoa

www.skippbox.com

Page 2: Serverless on Kubernetes

DON’T DISMISSForget the buzz, the FUD….

Page 3: Serverless on Kubernetes

How I dismissed EC2:

Page 4: Serverless on Kubernetes

Did not dismiss Docker and won’t dismiss Serverless

Page 5: Serverless on Kubernetes

DON’T GET HANG UP ON THE NAME

Naming is hard they say...

Page 6: Serverless on Kubernetes

Via Twitter from Serverless Austin…

Page 7: Serverless on Kubernetes

Don’t mind the hype

Page 8: Serverless on Kubernetes

Forget the hype focus on adoption

Page 9: Serverless on Kubernetes

Definition

“Serverless can also mean applications where some amount of server-side logic is still written by the application developer but unlike traditional architectures is run in stateless compute containers that are event-triggered, ephemeral (may only last for one invocation), and fully managed by a 3rd party”

--Mike Roberts (https://martinfowler.com/articles/serverless.html)

Page 10: Serverless on Kubernetes

Knitting services together through functions

Page 11: Serverless on Kubernetes

https://aws.amazon.com/lambda/

Lambda examples:

Page 12: Serverless on Kubernetes

IFTTT

Page 13: Serverless on Kubernetes

Solutions

Page 14: Serverless on Kubernetes

WHY THE FUSS ABOUT SERVERLESS ?

From @swardleyhttp://blog.gardeviance.org/2016/11/why-fuss-about-serverless.htmlAll maps hereafter are from Simon.

Page 15: Serverless on Kubernetes

Value Chain and Evolution

Page 16: Serverless on Kubernetes

Co-evolution

• As infrastructure and platform evolve towards utility

• So does Practice…it evolves.

• So imagine a pure Cloud world, with third party services, how do you stitch them together ?

• What does it trigger ?

Page 17: Serverless on Kubernetes

“Worth based development” @swardley

• “FinDev”• FaaS gives you fine grain cost monitoring.

• Develop and optimize for cost/business

Page 18: Serverless on Kubernetes

100% “DevOps”Focus on the biz, Go fast.

Page 19: Serverless on Kubernetes

WHY KUBELESSServerless on Kubernetes

Page 20: Serverless on Kubernetes

#1 Borg

Page 21: Serverless on Kubernetes

#2 Change Mindset

• Everything is remote API driven– Deployments– Config– Volume mgt, RBAC …

• No SSH– I don’t care about servers anymore

• Containers are invisible• Brings focus on application architecture

Page 22: Serverless on Kubernetes

KUBELESS ARCHITECTUREgithub.com/skippbox/kubeless

Page 23: Serverless on Kubernetes

Leverage kubernetes

• ThirdPartyResource, gives us CRUD for functions

• Watch via a controller• Inject the function code via a ConfigMap• Kafka/Zookeeper for events

Page 24: Serverless on Kubernetes

kubeless install

• Creates thirdpartyresource for CRUD of functions

• Creates a kubeless namespace• Launches controller as a deployment• Launches a Kafka/Zookeeper deployment

Page 25: Serverless on Kubernetes

Lamba-k8s.io$ kubectl get thirdpartyresource lamb-da.k8s.io -o yaml

apiVersion: extensions/v1beta1description: 'Kubeless: Serverless framework for Kubernetes'kind: ThirdPartyResourcemetadata: creationTimestamp: 2017-02-02T14:30:20Z name: lamb-da.k8s.io resourceVersion: "54958" selfLink: /apis/extensions/v1beta1/thirdpartyresourceslamb-da.k8s.io uid: 203ddb53-e954-11e6-a0da-080027b57baeversions:- name: v1

Page 26: Serverless on Kubernetes

kubeless create

• Creates custom resource (with thirdparty endpoint)

• Controllers creates deployment and service• Pod starts containers with REST wrapper• Function injected in runtime via configmap

Page 27: Serverless on Kubernetes

Event based

• Topic created via kubeless CLI on Kafka broker• Specific runtime consumes messages on given

topic

Page 28: Serverless on Kubernetes

DEMO

kubeless function create get \--trigger-http \--runtime \--handler \--from-file

Page 29: Serverless on Kubernetes

kubeless roadmap

• Add new runtime (e.g nodejs)• Use Ingress resources• Instrument the runtime with prometheus for

monitoring• Horizontal Pod Autoscaling• Default services with event notification (e.g

Minio).

Page 30: Serverless on Kubernetes

Kubernetes Services

• Deploy Services (backends) via helm

helm install stable/minio

• Access Services via the Service Broker API.

Page 31: Serverless on Kubernetes

CONCLUSIONSgithub.com/skippbox/kubeless

Page 32: Serverless on Kubernetes

Thanks

Respect each other…Don’t dismiss it …Evolve …Situational awareness …Focus on the business problem and deliver value…

@sebgoagithub.com/skippbox/kubeless