Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Intro to Fn in 10 Minutes - JeffConf 02/18

Chad Arimura
February 16, 2018

Intro to Fn in 10 Minutes - JeffConf 02/18

Chad Arimura

February 16, 2018
Tweet

More Decks by Chad Arimura

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. What is Serverless?

    View Slide

  4. Why Serverless?

    View Slide

  5. 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

    View Slide

  6. 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.)

    View Slide

  7. 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.

    View Slide

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

    View Slide

  9. Demo #1

    View Slide

  10. 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!

    View Slide

  11. Plate Detect
    Function
    Draw
    Function
    Slack
    Function
    Twitter
    Function
    Scraper

    View Slide

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

    View Slide

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

    View Slide

  14. View Slide

  15. Demo #2

    View Slide

  16. 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]

    View Slide