Edward Wilde - Core Contributor - @ewilde
Platform Architect, Form3
Serverless: when functions and GitOps collide
Cloud Native Computing Paris 2018
What we are going to cover?
• Installing OpenFaaS in 60s 📈
• Your first function
• Autoscaling
• GitOps + Functions = OpenFaaS Cloud
• Live demo 🔥 💳
• Get involved 👍
Tweet @openfaas 🤳 📸 @ewilde
OpenFaaS - Functions as a Service
• Started in Nov 2016
• Containers, Alexa, Swarm 🐳
• Full time team @ VMware
• Production users 💻
• Bossie awards 🥇🥈
Serverless Functions Made Simple
Easy to use
Serverless Functions Made Simple
Easy to use
Any code
Anywhere
Any scale
You decide the limits
Developer-first
Gets out your way
• 📄
• 💬
• 🕸
Templates for most popular languages*
* DigitalOcean Currents report https://do.co/2wjzUyR
Templates for most popular languages*
* DigitalOcean Currents report https://do.co/2wjzUyR
Installing OpenFaaS democratically
LIBERTY, EQUALITY, FRATERNITY
• Raspberry Pi ARM (docker swarm)



• Docker swarm x86-64



• Kubernetes x86-64
▪ List

Demo
What you saw:
• Installing OpenFaaS
• Function Store
• Machine-learning
• Creating a new function
Write a function
// Handle a serverless request
func Handle(req []byte) string {
    return fmt.Sprintf("Hello, Go. You
said: %s", string(req))
}
handler.go
Use tools like dep for vendoring
faas new hello-paris --lang go -p ewilde
Go
Template
Docker
Image
$ faas up1. 2.
Handler
Registry
+
Gateway
Stack files (YAML)
functions:
move-money:
lang: go
handler: ./move-money
image: move-money:0.1
register-user:
lang: go
handler: ./register-user
image: register-user:0.2
environment:
http_proxy: http://corp.ad.com:3128
secrets:
- bank-api-key
Stack files (YAML)
functions:
move-money:
lang: go
handler: ./move-money
image: move-money:0.1
register-user:
lang: go
handler: ./register-user
image: register-user:0.2
environment:
http_proxy: http://corp.ad.com:3128
secrets:
- bank-api-key
Stack files (YAML)
functions:
move-money:
lang: go
handler: ./move-money
image: move-money:0.1
register-user:
lang: go
handler: ./register-user
image: register-user:0.2
environment:
http_proxy: http://corp.ad.com:3128
secrets:
- bank-api-key
Stack files (YAML)
functions:
move-money:
lang: go
handler: ./move-money
image: move-money:0.1
register-user:
lang: go
handler: ./register-user
image: register-user:0.2
environment:
http_proxy: http://corp.ad.com:3128
secrets:
- bank-api-key
Why OpenFaaS?
Why OpenFaaS?
• Build and deployment pipeline

Why OpenFaaS?
• Build and deployment pipeline

Why OpenFaaS?
• Build and deployment pipeline

Why OpenFaaS?
• Build and deployment pipeline

• Portability

Why OpenFaaS?
• Build and deployment pipeline

• Portability

• Open-source
Why OpenFaaS?
• Build and deployment pipeline

• Portability

• Open-source
Why OpenFaaS?
• Build and deployment pipeline

• Portability

• Open-source
Why OpenFaaS?
• Build and deployment pipeline

• Portability

• Open-source
• Fits our engineering tao

a Chinese word signifying

'way', 'path', 'route', ‘road' #fancy
Why OpenFaaS?
• Build and deployment pipeline

• Portability

• Open-source
• Fits our engineering tao

• Open vs closed source
a Chinese word signifying

'way', 'path', 'route', ‘road' #fancy
Why OpenFaaS?
• Build and deployment pipeline

• Portability

• Open-source
• Fits our engineering tao

• Open vs closed source
• Loosely coupled systems
a Chinese word signifying

'way', 'path', 'route', ‘road' #fancy
Why OpenFaaS?
• Build and deployment pipeline

• Portability

• Open-source
• Fits our engineering tao

• Open vs closed source
• Loosely coupled systems
• Unix philosophy
a Chinese word signifying

'way', 'path', 'route', ‘road' #fancy
Why OpenFaaS?
• Build and deployment pipeline

• Portability

• Open-source
• Fits our engineering tao

• Open vs closed source
• Loosely coupled systems
• Unix philosophy
• Vendor neutral
a Chinese word signifying

'way', 'path', 'route', ‘road' #fancy
Kubernetes FaaS compared
OpenFaaS Kubeless Knative
Vendor Community Bitnami Google
Maturity 2.5yr 2.5yr 6mo
Stable ✅ ✅ ❌
Docker ✅ ❌ ✅
YAML Stack/CRD CRD CRD
Lightweight ✅✅ ✅ ❌
Code limits ✅ No limit ❌50kb/1mb ✅ No limit
Zero-scale ✅ ❌ ✅
GitOps + Functions
GitOps + Functions
= OpenFaaS Cloud
Are you in?
Initial
Funding
+100GBP
Move
1GBP
Charity
Pot
Pledged
Pot
Main
Account
90/100 GBP 10/100 GBP
Personal Account
Working with my bank’s API
https://www.msf.org.uk/
You register with the App and I’ll pledge
Pledge via this URL:
https://pledge-app.mini.o6s.io
https://bit.ly/2PffyBy
How it works
https://bit.ly/2PffyBy
https://pledge-app.mini.o6s.io
OpenFaaS Cloud ☁
- Managed
- Multi-user
- Personal dashboard
- CI/CD (git push)
- Feedback via GitHub/
GitLab
OpenFaaS Cloud ☁
- Managed
- Multi-user
- Personal dashboard
- CI/CD (git push)
- Feedback via GitHub/
GitLab
Free Community Cluster*
OpenFaaS Cloud Dashboard ☁
Summing up
Don’t get locked-in:
• Kubernetes & Docker
• Existing microservices
and functions
• OpenFaaS/Cloud with
GitHub or GitLab
Serverless 2.0
Community Centric 14k
x3.5 growth
Community Centric 14k
x3.5 growth
Get involved
1. Join Slack 👌
https://docs.openfaas.com/community
2. Try the self-paced workshop! 💻
https://github.com/openfaas/workshop
3. Pickup a small PR 💻
https://docs.openfaas.com/contributing/get-started/
Customer 
Bank (or regulated institution)
Our customer's  
customer
Bank A
Bank B
Bank etc...
Form3 
Financial Cloud
Customer 
Bank (or regulated institution)
Our customer's  
customer
Bank A
Bank B
Bank etc...
Form3 
Financial Cloud
Customer 
Bank (or regulated institution)
Our customer's  
customer
Bank A
Bank B
Bank etc...
Form3 
Financial Cloud
Customer 
Bank (or regulated institution)
Our customer's  
customer
Bank A
Bank B
Bank etc...
Form3 
Financial Cloud
Customer 
Bank (or regulated institution)
Our customer's  
customer
Bank A
Bank B
Bank etc...
Form3 
Financial Cloud
working
and/or
We only hire nice people!
Cloud native yay!
https://form3.tech
Thank you!
www.openfaas.com @ewilde

Serverless: when functions and GitOps collide