clda.co/faaskubernetes 2/23/2017 "Onpremises" FaaS on Kubernetes
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
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
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
FunkerDeveloped 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 Kubernetesopen.iron.io
IronFunctions
git.io/ironfunctions-docker
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+
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
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…
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 & monitoringPermissions & 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)