Slide 1

Slide 1 text

Intro to Fn in 10 Minutes JeffConf 2/16/18 Chad Arimura VP Serverless, Oracle @chadarimura

Slide 2

Slide 2 text

About Me ● Engineer and builder ● 3x entrepreneur, most recently founding CEO of Iron.io ● Blame us (at least partially) for Jeff

Slide 3

Slide 3 text

What is Serverless?

Slide 4

Slide 4 text

Why Serverless?

Slide 5

Slide 5 text

Introducing the Fn Project ● Open-source serverless compute platform created by Iron.io team that built IronFunctions ● Can be deployed to any cloud and on-premise ● Active w/ 2500+ commits across 60+ contributors ● Independently governed with plans for foundation

Slide 6

Slide 6 text

Differentiators ● Open source and runs anywhere ● Containers as primitives (bring-your-own-dockerfile) ● Simple, elegant, and extensible by design ● Independent yet vendor backed ● Strong enterprise focus (security, scalability, observability, etc.)

Slide 7

Slide 7 text

An Fn Function ● Small chunk of code wrapped into a container image ● Gets input via STDIN and environment ● Produces output to STDOUT ● Logs to STDERR The Fn server handles everything else, like the API gateway, piping things around, storing logs, etc.

Slide 8

Slide 8 text

Fn CLI ● fn init --runtime go ● fn run ● fn test ● fn deploy --app myapp ● fn call myapp myfunc → http://localhost:8080/r/myapp/myfunc

Slide 9

Slide 9 text

Demo #1

Slide 10

Slide 10 text

Fn Flow ● Build long-running, reliable, scalable functions with rich sets of language-specific primitives including fork-join, chaining, delays and error handling ● Supports complex parallel processes that are readable and testable (including unit tests) with standard programming tools ● Java support using CompletableFuture API from Java 8 with JS, Python, Go language support on the way!

Slide 11

Slide 11 text

Plate Detect Function Draw Function Slack Function Twitter Function Scraper

Slide 12

Slide 12 text

Scraper Plate Detect Function Draw Function Slack Function Twitter Function FlowFuture.invoke() thenCompose() thenCompose() allOf() whenComplete()

Slide 13

Slide 13 text

Scraper Plate Detect Function Draw Function Slack Function Twitter Function FlowFuture.invoke() thenCompose() thenCompose() allOf() whenComplete() Flow Function

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Demo #2

Slide 16

Slide 16 text

Thank you! Chad Arimura VP Serverless @chadarimura 1. Star the project: github.com/fnproject/fn 2. Join the conversation: slack.fnproject.io 3. Learn more: fnproject.io 4. We’re hiring engineers and evangelists: [email protected]