clda.co/faas-­‐kubernetes2/23/2017
"On-­‐premises"  FaaS  
on  Kubernetes
About  Me
@alex_casalboni
clda.co/faas-­‐kubernetes
Bachelor  in  Computer  Science
Master  in  Sound  &  Music  Engineering
SoBware  Engineer  &  Web  Developer
Cloud  Evangelist  @  Cloud  Academy
Agenda
clda.co/faas-­‐kubernetes
What  does  FaaS  mean?
FaaS  in  the  Open-­‐source  World
FaaS  frameworks  for  Kubernetes
Pros  &  Cons  of  “On-­‐premises”  FaaS
clda.co/faas-­‐kubernetes
What  does  FaaS  mean?
Func;on  as  a  Service
clda.co/faas-­‐kubernetes
h"ps://en.wikipedia.org/wiki/Func5on_as_a_Service
Core  component  of  Serverless  
No  infrastructure  management
Microservices  approach
FuncOon  as  the  unit  of  delivery
MulO-­‐language  support  (BYOC)
Transparent  scaling  (PAYG)
How  do  you  FaaS?
clda.co/faas-­‐kubernetes
Independent  FuncOons
Versioning  &  Staging
Cross-­‐team  CollaboraOon
Triggers/Events
Local  unit  tesOng
IntegraOon  tests
Automated  Workflow CI/CD
clda.co/faas-­‐kubernetes
FaaS  in  the  Open-­‐source  World
Open-­‐source  FaaS
clda.co/faas-­‐kubernetes
openwhisk.org open.iron.iogithub.com/bfirsh/funker
Apache OpenWhisk Funker IronFunctions
Open-­‐source  FaaS  -­‐  OpenWhisk
clda.co/faas-­‐kubernetes
openwhisk.org
Apache OpenWhisk
github.com/openwhisk/openwhisk/issues/1402
IniOally  developed  by  IBM
FaaS  component  of  IBM  Bluemix
Doesn’t  run  on  Kubernetes  yet  (open  issue)
cloudacademy.com/blog/ibm-bluemix
github.com/bfirsh/funker
Open-­‐source  FaaS  -­‐  Funker
clda.co/faas-­‐kubernetes
Funker
Developed  by  @bfirsh
Based  on  Docker  Swarm
Support  for  Node,  Python  and  Go
cloudacademy.com/blog/docker
Open-­‐source  FaaS  -­‐  IronFunc;ons
clda.co/faas-­‐kubernetes
git.io/ironfunctions-kubernetes
FaaS  component  of  Iron.io
Runs  on  Docker
Runs  on  Kubernetes
open.iron.io
IronFunctions
git.io/ironfunctions-docker
clda.co/faas-­‐kubernetes
FaaS  frameworks  for  Kubernetes
FaaS  on  Kubernetes
clda.co/faas-­‐kubernetes
Kubeless  by  Skippbox
FunkOon  by  Fabric8
Fission  by  Pla_orm9
Kubeless
clda.co/faas-­‐kubernetes
“Only”  a  POC  (wriaen  in  Go)
Both  HTTP  and  PubSub
Based  on  Zookeeper  and  Kada
+
Kubeless  Example
clda.co/faas-­‐kubernetes
Funk;on
clda.co/faas-­‐kubernetes
@funk;onio
funktion.fabric8.io
Backed  by  Red  Hat  (wriaen  in  Go)
Integrated  with  fabric8’s  Developer  Pla_orm
Only  Python  is  supported
Based  on  connectors  (200+)
camel.apache.org/components
Funk;on  Example
clda.co/faas-­‐kubernetes
Fission
clda.co/faas-­‐kubernetes
@fissionio
fission.io
Extensible  and  Fast  by  design  (wriaen  in  Go)
Reduced  cold  starts  (warm  pool)
Only  HTTP  triggers  for  now,  but…
Only  Node  and  Python  for  now,  but…
Fission  Example
clda.co/faas-­‐kubernetes
clda.co/faas-­‐kubernetes
Pros  &  Cons  of  “On-­‐premises”  FaaS
Pros  of  “On-­‐premises”  FaaS
clda.co/faas-­‐kubernetes
Kubernetes  abstracOon  for  devs
Open-­‐source  soluOon
Fewer  non-­‐funcOonal  limitaOons
More  control  over  infrastructure
Might  be  cheaper  overall
Might  be  faster  (dedicated  cluster)
Cons  of  “On-­‐premises”  FaaS
clda.co/faas-­‐kubernetes
Many  missing  features
Versioning,  staging,  env.  vars,  Omeouts
TesOng,  monitoring,  logging
Responsibility  &  Ownership
Provisioning  &  configuraOon
UpOme  &  monitoring
Permissions  &  auth,  orchestraOon
More  naOve  triggers  (storage,  db,  streams) OperaOonal  complexity
Addi;onal  Resources
clda.co/faas-­‐kubernetes
cloudacademy.com/webinars/kubernetes-38
Webinar:  Hands  on  Kubernetes  (Part  1)
cloudacademy.com/webinars/kubernetes-41
Webinar:  Ecosystem  &  ProducOon  OperaOons  (Kubernetes  Part  2)
cloudacademy.com/webinars/docker-31
Webinar:  Docker  -­‐  From  Dev  to  ProducOon
cloudacademy.com/webinars/docker-34
Webinar:  Docker  -­‐  ProducOon  &  Beyond
by  Adam  Hawkins  
(@adman65)
Thank  you!                
2/23/2017 clda.co/faas-­‐kubernetes
Q  &  A

"On-premises" FaaS on Kubernetes