SlideShare a Scribd company logo
The following is intended to outline our general product direction. It
is intended for information purposes only, and may not be
incorporated into any contract. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in
making purchasing decisions. All rights reserved. Timing of any
features or functionality described for Oracle’s products remains at
the sole discretion of Oracle
Democratizing Serverless
Open-Source is for everyone!
Matthew Gilliard
@MaximumGilliard
Team
Fn is an
Open-Source Serverless
Compute Platform
What even is an
Open-Source Serverless
Compute Platform
Functions-as-a-Service
Why Serverless?
Answers for developers:
● Easier: Just code, not infrastructure
● Powerful: Transparent and limitless* scaling
● Faster: Code, Test, Deploy, Iterate
● Cheaper: Try stuff out for microdollars
* limits may apply
Why Serverless?
Answers for managers:
● Cost Reduction: Pay according to demand. Reduce op-ex.
● Agility: Dev teams get faster with less fewer dependencies
● Reliability: is a platform responsibility
● Innovation: easy and cheap to try things out
● Higher density: That hardware was *expensive*
● Security: User has fewer responsibilities
● Economy of Scale: We centralise a lot of things
● Marketplace: users actually want it!
Why Serverless?
Answers for FaaS operators (i.e. ):
-flavoured FaaS
● Deploy to any cloud, or on-premise, or...
● Containers are primitives
● Independent yet vendor backed (by us)
● Strong enterprise focus
Containers vs Functions
Function is a container with a
set of known traits:
● Short running
● Ephemeral / event-driven
● Stateless
How does one
use Fn?
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platform - Matthew Gilliard - Codemotion Amsterdam 2018
Anatomy of an Fn Function
● Some code wrapped into a container image
● Gets input via STDIN and environment
● Produces output to STDOUT
● Logs to STDERR
Input format
Currently looks like this:
Input format
JUST ANNOUNCED HOT NEWS EVERYONE:
Fn CLI
● fn init --runtime go
● fn run
● fn deploy --app myapp
● fn call myapp myfunc
or: curl -v ${FN_API_URL}/r/myapp/myfunc
fn deploy
1. Builds container (multi-stage) + bumps version
2. Pushes container to registry
3. Creates/updates function route (servers lazy load images)
MyFunc:0.0.2
MyFunc:0.0.2 MyFunc:0.0.2
Your code
Fn Service
myfunc →
/r/myapp/myfunc:0.0.2
1 2 3
Function Development Kits (FDKs)
● Used to help with parsing input and writing output
● Familiar syntax for Lambda developers
● Simply write a `handler` function that adheres to the FDK’s
interface and it will parse STDIN and provide the input data to
your function and deal with writing the proper output format.
● Makes it a lot easier to write hot functions
Small images are better. Read
up on “multistage builds” if you
don’t already know about that.
Support for languages
So long as you have:
● a func.yaml
● a Dockerfile
you’re good to go.
Request Flow
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platform - Matthew Gilliard - Codemotion Amsterdam 2018
Kubernetes
● Fn is does not *require* K8S, but lots of optimization work
optimiz for it
● Helm chart available at https://github.com/fnproject/fn-helm
● Investigating deeper Kubernetes integrations including CRD’s
to model functions
Why not K8S ALL THE THINGS!?
1. Speed
a. Pod launch time is too slow/unpredictable for synchronous
requests
b. STDIO is not easily accessible from container in a k8s pod
2. Scale
a. Runs out of addressable network space quickly
b. Functions easily scale to the hundreds of thousands / millions
What’s next for Fn?
1. Hosted Fn-as-a-Service
2. More contributors (could it be you?)
3. More collaboration and standardization
Thank you!
1. Star the project: github.com/fnproject/fn
2. Join the conversation: slack.fnproject.io
3. Learn more: fnproject.io
I’ve been Matthew Gilliard
Get Involved!

More Related Content

PPTX
Indy meetup#7 effective unit-testing-mule
PPTX
Frameworkless CLI app in PHP
PDF
ElasticMQ : Server for Local SQS
PDF
Angular Libraries & NPM
PDF
Introduction to K6
PDF
Mobicents Summit 2012 - Thomas Quintana - RestComm Cloud Communications
PDF
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...
PDF
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Indy meetup#7 effective unit-testing-mule
Frameworkless CLI app in PHP
ElasticMQ : Server for Local SQS
Angular Libraries & NPM
Introduction to K6
Mobicents Summit 2012 - Thomas Quintana - RestComm Cloud Communications
Максим Климишин "Що такого особливого у пропозиції вартості шаблону Micro Fro...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...

What's hot (20)

PDF
Intoduction to lagom framework
PPTX
Distribute your code with NUget and build vNext
PDF
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
PDF
Devops and the New Culture
PPTX
Introduction to Application insights
PDF
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
PDF
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
DOCX
Branching and merging strategy
PDF
Continuous Integration - What even is it?
PDF
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
PPTX
How to deploy your Apps in serverless-way using App Engine.pptx
PPTX
OpenNfv Talk On Kubernetes and Network Function Virtualization
PPTX
PowerShell DSC Partial Configurations and Cross-node Synchronization
PDF
Continuous Delivery with TeamCity
PDF
Integration Testing in AEM
PPTX
Ruby in mule
PPTX
Power shell saturday ravikanth
PDF
Meta Infrastructure as Code: How Capital One Automated Our Automation Tools w...
PDF
'How to build efficient backend based on microservice architecture' by Anton ...
PDF
An intro to git
Intoduction to lagom framework
Distribute your code with NUget and build vNext
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Devops and the New Culture
Introduction to Application insights
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
Splunk conf2014 - Using Selenium and Splunk for Transaction Monitoring Insight
Branching and merging strategy
Continuous Integration - What even is it?
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
How to deploy your Apps in serverless-way using App Engine.pptx
OpenNfv Talk On Kubernetes and Network Function Virtualization
PowerShell DSC Partial Configurations and Cross-node Synchronization
Continuous Delivery with TeamCity
Integration Testing in AEM
Ruby in mule
Power shell saturday ravikanth
Meta Infrastructure as Code: How Capital One Automated Our Automation Tools w...
'How to build efficient backend based on microservice architecture' by Anton ...
An intro to git
Ad

Similar to Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platform - Matthew Gilliard - Codemotion Amsterdam 2018 (20)

PPTX
The FN Project by Maximilian Jerg
PDF
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
PDF
Devops with Python by Yaniv Cohen DevopShift
PDF
The Fn Project: A Quick Introduction (December 2017)
PDF
Codecoon - A technical Case Study
PDF
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
PDF
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
PPTX
Democratizing Serverless
PPTX
Not my problem - Delegating responsibility to infrastructure
PDF
The Fn Project by Jesse Butler
PDF
Serverless Boston @ Oracle Meetup
PPTX
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
PDF
OSMC 2012 | Shinken by Jean Gabès
PDF
DevOps Fest 2020. immutable infrastructure as code. True story.
PDF
Pivotal Cloud Foundry 2.4: A First Look
PPTX
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
PDF
Software Delivery in 2016 - A Continuous Delivery Approach
PPTX
Building CI_CD for Mobile Development.pptx
PDF
Introduction to DL-BUILDER
PDF
Migrating .NET Apps to CF, A Strategy for Enterprises
The FN Project by Maximilian Jerg
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Devops with Python by Yaniv Cohen DevopShift
The Fn Project: A Quick Introduction (December 2017)
Codecoon - A technical Case Study
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
Preparing for Neo - Singapore OutSystems User Group October 2022 Meetup
Democratizing Serverless
Not my problem - Delegating responsibility to infrastructure
The Fn Project by Jesse Butler
Serverless Boston @ Oracle Meetup
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
OSMC 2012 | Shinken by Jean Gabès
DevOps Fest 2020. immutable infrastructure as code. True story.
Pivotal Cloud Foundry 2.4: A First Look
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Software Delivery in 2016 - A Continuous Delivery Approach
Building CI_CD for Mobile Development.pptx
Introduction to DL-BUILDER
Migrating .NET Apps to CF, A Strategy for Enterprises
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PDF
Encapsulation theory and applications.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Cloud computing and distributed systems.
PDF
Electronic commerce courselecture one. Pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
KodekX | Application Modernization Development
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Encapsulation theory and applications.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Network Security Unit 5.pdf for BCA BBA.
20250228 LYD VKU AI Blended-Learning.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine learning based COVID-19 study performance prediction
Cloud computing and distributed systems.
Electronic commerce courselecture one. Pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The AUB Centre for AI in Media Proposal.docx

Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platform - Matthew Gilliard - Codemotion Amsterdam 2018

  • 1. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. All rights reserved. Timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle
  • 2. Democratizing Serverless Open-Source is for everyone! Matthew Gilliard @MaximumGilliard
  • 4. Fn is an Open-Source Serverless Compute Platform
  • 5. What even is an Open-Source Serverless Compute Platform
  • 7. Why Serverless? Answers for developers: ● Easier: Just code, not infrastructure ● Powerful: Transparent and limitless* scaling ● Faster: Code, Test, Deploy, Iterate ● Cheaper: Try stuff out for microdollars * limits may apply
  • 8. Why Serverless? Answers for managers: ● Cost Reduction: Pay according to demand. Reduce op-ex. ● Agility: Dev teams get faster with less fewer dependencies ● Reliability: is a platform responsibility ● Innovation: easy and cheap to try things out
  • 9. ● Higher density: That hardware was *expensive* ● Security: User has fewer responsibilities ● Economy of Scale: We centralise a lot of things ● Marketplace: users actually want it! Why Serverless? Answers for FaaS operators (i.e. ):
  • 10. -flavoured FaaS ● Deploy to any cloud, or on-premise, or... ● Containers are primitives ● Independent yet vendor backed (by us) ● Strong enterprise focus
  • 11. Containers vs Functions Function is a container with a set of known traits: ● Short running ● Ephemeral / event-driven ● Stateless
  • 14. Anatomy of an Fn Function ● Some code wrapped into a container image ● Gets input via STDIN and environment ● Produces output to STDOUT ● Logs to STDERR
  • 16. Input format JUST ANNOUNCED HOT NEWS EVERYONE:
  • 17. Fn CLI ● fn init --runtime go ● fn run ● fn deploy --app myapp ● fn call myapp myfunc or: curl -v ${FN_API_URL}/r/myapp/myfunc
  • 18. fn deploy 1. Builds container (multi-stage) + bumps version 2. Pushes container to registry 3. Creates/updates function route (servers lazy load images) MyFunc:0.0.2 MyFunc:0.0.2 MyFunc:0.0.2 Your code Fn Service myfunc → /r/myapp/myfunc:0.0.2 1 2 3
  • 19. Function Development Kits (FDKs) ● Used to help with parsing input and writing output ● Familiar syntax for Lambda developers ● Simply write a `handler` function that adheres to the FDK’s interface and it will parse STDIN and provide the input data to your function and deal with writing the proper output format. ● Makes it a lot easier to write hot functions
  • 20. Small images are better. Read up on “multistage builds” if you don’t already know about that. Support for languages So long as you have: ● a func.yaml ● a Dockerfile you’re good to go.
  • 23. Kubernetes ● Fn is does not *require* K8S, but lots of optimization work optimiz for it ● Helm chart available at https://github.com/fnproject/fn-helm ● Investigating deeper Kubernetes integrations including CRD’s to model functions
  • 24. Why not K8S ALL THE THINGS!? 1. Speed a. Pod launch time is too slow/unpredictable for synchronous requests b. STDIO is not easily accessible from container in a k8s pod 2. Scale a. Runs out of addressable network space quickly b. Functions easily scale to the hundreds of thousands / millions
  • 25. What’s next for Fn? 1. Hosted Fn-as-a-Service 2. More contributors (could it be you?) 3. More collaboration and standardization
  • 26. Thank you! 1. Star the project: github.com/fnproject/fn 2. Join the conversation: slack.fnproject.io 3. Learn more: fnproject.io I’ve been Matthew Gilliard Get Involved!

Editor's Notes

  • #4: Who are the Fn team? 30-ish ppl Most are <2 years at Oracle. Several from Iron Functions, whose codebase we forked. Fn gets around 10x effort compared to Iron Mostly Oak/Bris but some remote (the long green thing isn’t on the team)
  • #6: Open-Source: Yeah, github etc. Apache 2 license. Fight the vendor lock-in. Serverless: As in, you don’t get to care about the servers. Is DBaaS “serverless”? i.e. is “serverless” particularly novel? Maybe compare with “wireless” (which uses a LOT of wires). Or mention “Jeff” conf Compute platform: Runs user-submitted code in a safe sandboxed environment, on demand This makes us a “FaaS” -
  • #7: Functions are small Single-purpose Independent easy to understand and maintain As a service means no plumbing service takes care of provisioning, scaling, patching, maintaining, etc. Each function scales independently.
  • #8: *limitless: Well, up to a point. You can set limits because a DOS attack would otherwise be a denial of wallet
  • #9: Dependencies here in the Conway’s Law sense. Organi{s,z}ational dependencies
  • #10: Density. Succinctly - all the things we need to do to get higher density are under *our* control Security: More charitably, *we* can take some actions which the users can’t, and we are *highly* incentivised to do them quickly. All these things conspire to MAKE MONEY which is what Oracle’s ultimately about after all. The technical challenges are interesting too, though.
  • #11: KubeCon demo is showing Fn on GKE, AWS Enterprise focus = (security, scalability, observability, etc.) It’s rather easy to make a FaaS, really, but to make a *good* one is harder Have to walk a line between vendor-agnostic and “works reaaaallllly well on OCI”
  • #12: How are “Function” containers different from “regular” containers? Ie jetty-in-a-container or whatever...
  • #13: Demo is: Install cli tool Watch docker ps Fn start In a new directory: fn init --runtime=java See what files are generated Fn run Echo -n “yeah” | fn run Fn deploy --app foo --local Curl -v Check fn-lb-wait-header Curl again Check fn-lb-wait-header explain about hot functions
  • #14: Demo is: Install cli tool Watch docker ps Fn start In a new directory: fn init --runtime=java See what files are generated Fn run Echo -n “yeah” | fn run Fn deploy --app foo --local Curl -v Check fn-lb-wait-header Curl again Check fn-lb-wait-header explain about hot functions
  • #15: “Some code” could be anything that is containerizable. Environment dependency is a PITA and we’re moving away from it STDOUT/ERR easy to write to
  • #16: “Some code” could be anything that is containerizable. Environment dependency is a PITA and we’re moving away from it STDOUT/ERR easy to write to
  • #17: Cloud events is going to be the main event format in the future. Possibly the only one. Common question: How to do streaming data in a JSON object? Well, you can’t but one good way is to pass a URL which the function can retrieve the data from. We may support other streaming formats.
  • #18: Don’t use --local in the hackathon….
  • #19: Lazy or maybe not so lazy
  • #20: These are our supported languages. Exact functionality depends on the style and conventions of the language, eg node is v. simple, Java does type coercion by reflection, etc
  • #21: Small images rule, of course, so look into Multi-stage docker builds
  • #22: Based on available memory. Everything else is scaled proportional to memory so there is only one degree of freedom for sizing your function.
  • #23: “Let me introduce you to my 7-sided friend”
  • #24: So, at the moment we don’t let k8s manage the function containers But all the control-plane stuff can be installed using the Helm chart
  • #25: That said, these are technical problems not philosophical. As k8s gets more adoption and becomes (a) better (b) more pluggable we will revisit.