8. How did OpenFaaS come about?
STORY SO FAR
• “Lambda but with containers for Alexa”
• Dockercon Cool Hacks - “push Docker beyond what it was designed to do”
• Major changes since Dockercon
• Top trending Open Source project overall
• > 5.7k stars
• Kubernetes & external provider support
• Asynchronous processing via NATS
• CLI & templating
• Regular contributors & Slack Community
Commits: 876, Forks: 372 Stars: 6589OpenFaaS Org: 33 authors, 876 commits, 372 forks, 6589 stars, Slack - 160
10. What are serverless use-cases?
ANYTHING
Image/Video
conversion
Machine
Learning
Mobile Back-
ends / IoT
HTTP
services
Chat Bots
Batch Jobs
11. What is OpenFaaS?
"A SERVERLESS FRAMEWORK BUILT ON CONTAINERS"
• Basic primitive: containers in OCI format
• Container security
• r/o filesystem, privilege drop, content trust
• Manage functions with scheduler/orchestrator
• Rich container eco-system - commercial & community
• Anything can be a function - polyglot
• Leverage existing skills in teams (including Windows)
• Avoid vendor lock-in
• Run anywhere - cloud or on-prem
20. Derek
• Checks developer sign-off
• Assigns issues
• Manages labels
• Opens & closes issues
Let the robots take over..
CHIEF MAINTAINER
21. How do I write a function?
WRITE A HANDLER
def handler(req):
r = requests.get(req)
print(r.status_code)
handler.py
requirements.txt
Python
Template
Docker
Image
requests
$ faas-cli new --lang python --name sample
Container Registry
22. What languages are available?
SHORT ANSWER - ANY
• Use supported templates
• Edit them or bring your own
• Or go “full Docker”
28. Kubernetes native
VIA EXTERNAL PROVIDER
kubernetes
• Rich eco-system and user-base with
on-prem/hybrid deployments
• Similar primitives to Docker Swarm
• Kubernetes native
31. Asynchronous invocation
RETURN A PRODUCT BY MAIL
NATS Queue
marshal request
Gateway Queue-worker
dequeue
Func: resizer
HTTP
200
HTTP
200
Resize
Image
32. Asynchronous concerns
ADDED COMPLEXITY
• Points of failure:
• Func*on
• Queue-worker
• Queue system
• Func*on response
• Store in S3 or aDB
• Poll for result
• Callback to URL?
Composable complexity
33. Asynchronous invocation
WITH A CALLBACK-URL
Gateway Func: resizer
HTTP
200
http://x.y.z
X-Callback-Url:
hUp://x.y.z
X-Callback-Url
Resize
Image
Queue etc
37. What’s next for OpenFaaS?
SET REPLICAS = 10,000
• Roadmap - supporting users
• Evaluating - ADP, Huawei, CodeFresh, MadGlory, IRT Saint Exupery
• Community language templates, helm chart
• AfterBurn optimisations
• Guides, manual & tutorials for developer-clouds
• Get SWAG and get involved github.com/openfaas/media
• Contributors, sponsorship and finding a home
• Speaking
• JeffConf @ Milano!
• Dockercon EU @ Copenhagen - October - use code “CaptainAlex”
• KubeCon @ Austin, USA - December 6-8
38. Where to start?
BLOGS AND GUIDES
• Introduction to OpenFaaS (15min)
https://blog.alexellis.io/introducing-functions-as-a-service/
• Your first Python function with OpenFaaS (10-20min)
https://blog.alexellis.io/first-faas-python-function/
• Morning Coffee with the FaaS-CLI (5 min)
https://blog.alexellis.io/quickstart-openfaas-cli/