Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Awesome Open Source Functions!
Shaun Smith
Director of Product Management
Oracle Cloud Infrastructure—Serverless
@shaunMsmith
October 4, 2018
DevOps and Drinks, New York City
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless is an abstraction of infrastructure and its
operations including provisioning, scaling, patching, etc.
FaaS (Functions-as-a-Service) is the compute
component in a serverless platform
2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 3
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Functions
Functions Developer
Provide your functions code to the platform
No need to worry about servers
FaaS Platform
Abstracts the notion of servers
Ensures the functions are available when invoked
Deploys, triggers, auto-scales your functions
Bills only for execution time, not for idle time

Functions
FaaS Platform
IaaS
Platform
4
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Why Serverless?
•Easier: Just think about your code, not infrastructure
•Powerful: Transparent and limitless scaling
•Faster: Deploy faster, iterate faster, innovate faster
•Cheaper: Only pay for what you use to the ms (never idle)
5
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Hockey-stick Ready
time
users
6
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 7
Fn—An open source Functions Platform
www.fnproject.io
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 8
Functions == Containers
Functions are packaged as
containers—so any container
can be deployed as a function
Package and reuse open source
libraries as functions!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
An Fn Function
• Small chunk of code wrapped into a container image with all dependencies
• Fn server passes in function input and environment
• Fn server returns results to caller
• STDERR automatically routed to logs
• The Fn server handles everything else, like the API gateway, piping things
around, storing logs, etc.
9
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
fn deploy details
1.Builds container (multi-stage)
2.Pushes container to registry
3.Creates/updates function triggers (servers lazy load images)
MyFunc:0.0.2
MyFunc:0.0.2 MyFunc:0.0.2
Your code
Fn Service
myfunc →
/t/myapp/myfunc:0.0.2
1 2 3
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Function Development Kits (FDKs)
• Familiar syntax for Lambda developers
• Simply write a `handler` function that adheres to the FDK’s interface and
the FDK will provide the input to your function, as well as deal with
returning the proper output format.
• FDKs make it easy to write functions
11
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Fn Metrics & Monitoring
• Prometheus metrics generated by Fn server, visualized in Grafana
12
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
State of Serverless
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 19
Peak of Inflated Expectations
Plateau of Productivity
Slope of Enlightenment
Trough of Disillusionment
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 20
Peak of Inflated Expectations
Plateau of Productivity
Slope of Enlightenment
Trough of Disillusionment
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 21
Peak of Inflated Expectations
Plateau of Productivity
Slope of Enlightenment
Trough of Disillusionment
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 22
Peak of Inflated Expectations
Plateau of Productivity
Slope of Enlightenment
Trough of Disillusionment
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless is not...
No Servers!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless is...
Abstraction of compute, storage,
networking, and more
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless is not...
No Ops!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless is not...
Dramatically changing DevOps
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless is...
Not where it needs to be today
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
So how do we get there?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
First Principles of Serverless
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
First Principles
1. Driving business value
2. Increasing efficiency
3. Improving team happiness
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
1. Driving Business Value
● Automation
● Instrumentation
● Proper tagging, auditing
● Guardrails/scaffolding
● Lots of functions, lots of
deploys
● Faster testing of new
business ideas
● Increase in tools/platforms
Serverless DevOps
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
App Guardrails / Scaffolding
• Serverless Application Model
• Terraform templates
• Kubernetes CRD’s
• Function/Service Marketplaces
• Primer (Expedia), Paved Road (Netflix)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
2. Increasing Efficiency
● Understand service
limitations/constraints
● Blue/Green/Canary
● Chaos engineering
● Everything is a service
● Less code
● Smaller teams, smaller
projects
Serverless DevOps
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Chaos Engineering
• Taking out upstream dependencies
• Simulating timeout conditions across all dependencies
• Injecting latency into Functions
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
3. Improving Team Happiness
● Culture of ownership,
balance, teamwork,
innovation
● Owners not operators
● Serverless for DevOps
● More and more
responsibility pushed to
specialists
● Lots of abstractions
● Work from anywhere
Serverless DevOps
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless for DevOps
• Auditing for proper roles, security profiles, TLS, etc.
• Applying tags for ownership, auditing, instrumentation
• Using functions as chaos tools
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Demo
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Autonomous
Platform auto-scales functions
No servers to provision,
manage
Pay Per Use
Pay for execution, not for idle
time
No Lock-in
Built on open-source Fn
Project and Docker
Oracle Functions
Functions-as-a-Service
Oracle Cloud Integrated
Container Native
Multi-tenant
Secure
Open Source Engine
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Thank you!
1. Star the project: github.com/fnproject/fn
2. Join the conversation: slack.fnproject.io
3. Learn more: fnproject.io
Shaun Smith
Director of Product Management
Oracle Cloud Infrastruture—Serverless
@shaunMsmith
Get Involved!

Functions and DevOps

  • 1.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Awesome Open Source Functions! Shaun Smith Director of Product Management Oracle Cloud Infrastructure—Serverless @shaunMsmith October 4, 2018 DevOps and Drinks, New York City
  • 2.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Serverless is an abstraction of infrastructure and its operations including provisioning, scaling, patching, etc. FaaS (Functions-as-a-Service) is the compute component in a serverless platform 2
  • 3.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 3
  • 4.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Functions Functions Developer Provide your functions code to the platform No need to worry about servers FaaS Platform Abstracts the notion of servers Ensures the functions are available when invoked Deploys, triggers, auto-scales your functions Bills only for execution time, not for idle time Functions FaaS Platform IaaS Platform 4
  • 5.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Why Serverless? •Easier: Just think about your code, not infrastructure •Powerful: Transparent and limitless scaling •Faster: Deploy faster, iterate faster, innovate faster •Cheaper: Only pay for what you use to the ms (never idle) 5
  • 6.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Hockey-stick Ready time users 6
  • 7.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 7 Fn—An open source Functions Platform www.fnproject.io
  • 8.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 8 Functions == Containers Functions are packaged as containers—so any container can be deployed as a function Package and reuse open source libraries as functions!
  • 9.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | An Fn Function • Small chunk of code wrapped into a container image with all dependencies • Fn server passes in function input and environment • Fn server returns results to caller • STDERR automatically routed to logs • The Fn server handles everything else, like the API gateway, piping things around, storing logs, etc. 9
  • 10.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | fn deploy details 1.Builds container (multi-stage) 2.Pushes container to registry 3.Creates/updates function triggers (servers lazy load images) MyFunc:0.0.2 MyFunc:0.0.2 MyFunc:0.0.2 Your code Fn Service myfunc → /t/myapp/myfunc:0.0.2 1 2 3
  • 11.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Function Development Kits (FDKs) • Familiar syntax for Lambda developers • Simply write a `handler` function that adheres to the FDK’s interface and the FDK will provide the input to your function, as well as deal with returning the proper output format. • FDKs make it easy to write functions 11
  • 12.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Fn Metrics & Monitoring • Prometheus metrics generated by Fn server, visualized in Grafana 12
  • 13.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | State of Serverless
  • 14.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. |
  • 15.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. |
  • 16.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. |
  • 17.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. |
  • 18.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. |
  • 19.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 19 Peak of Inflated Expectations Plateau of Productivity Slope of Enlightenment Trough of Disillusionment
  • 20.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 20 Peak of Inflated Expectations Plateau of Productivity Slope of Enlightenment Trough of Disillusionment
  • 21.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 21 Peak of Inflated Expectations Plateau of Productivity Slope of Enlightenment Trough of Disillusionment
  • 22.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 22 Peak of Inflated Expectations Plateau of Productivity Slope of Enlightenment Trough of Disillusionment
  • 23.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Serverless is not... No Servers!
  • 24.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Serverless is... Abstraction of compute, storage, networking, and more
  • 25.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Serverless is not... No Ops!
  • 26.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Serverless is not... Dramatically changing DevOps
  • 27.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Serverless is... Not where it needs to be today
  • 28.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | So how do we get there?
  • 29.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | First Principles of Serverless
  • 30.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | First Principles 1. Driving business value 2. Increasing efficiency 3. Improving team happiness
  • 31.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 1. Driving Business Value ● Automation ● Instrumentation ● Proper tagging, auditing ● Guardrails/scaffolding ● Lots of functions, lots of deploys ● Faster testing of new business ideas ● Increase in tools/platforms Serverless DevOps
  • 32.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | App Guardrails / Scaffolding • Serverless Application Model • Terraform templates • Kubernetes CRD’s • Function/Service Marketplaces • Primer (Expedia), Paved Road (Netflix)
  • 33.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 2. Increasing Efficiency ● Understand service limitations/constraints ● Blue/Green/Canary ● Chaos engineering ● Everything is a service ● Less code ● Smaller teams, smaller projects Serverless DevOps
  • 34.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Chaos Engineering • Taking out upstream dependencies • Simulating timeout conditions across all dependencies • Injecting latency into Functions
  • 35.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | 3. Improving Team Happiness ● Culture of ownership, balance, teamwork, innovation ● Owners not operators ● Serverless for DevOps ● More and more responsibility pushed to specialists ● Lots of abstractions ● Work from anywhere Serverless DevOps
  • 36.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Serverless for DevOps • Auditing for proper roles, security profiles, TLS, etc. • Applying tags for ownership, auditing, instrumentation • Using functions as chaos tools
  • 37.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Demo
  • 38.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Autonomous Platform auto-scales functions No servers to provision, manage Pay Per Use Pay for execution, not for idle time No Lock-in Built on open-source Fn Project and Docker Oracle Functions Functions-as-a-Service Oracle Cloud Integrated Container Native Multi-tenant Secure Open Source Engine
  • 39.
    Copyright © 2018,Oracle and/or its affiliates. All rights reserved. | Thank you! 1. Star the project: github.com/fnproject/fn 2. Join the conversation: slack.fnproject.io 3. Learn more: fnproject.io Shaun Smith Director of Product Management Oracle Cloud Infrastruture—Serverless @shaunMsmith Get Involved!

Editor's Notes

  • #7 Your FaaS platform will enable your app to scale organically per-request without you having to write any special code to handle it. And not just the gentle seasonal changes in demand that a retail business might experience but also sudden, dramatic surges in demand caused by your app going viral.
  • #8 Fn is an open source Function-as-a-Service platform. It was announced by Oracle today/this week. You can download this now and use it for real. It’s an Apache 2.0 licensed project. We are actively seeking outside collaborators. We have teams in the US and UK committed to working in the open on this project. Not ‘open core’. We are not keeping anything back for ourselves – what you see in the github is what we’ll be running in our cloud service. Why? - Being open allows us to provide a much better developer esperience. Not only can you get and read the source so you know exactly what’s going on under the hood (should you need to)… …but you can contribute to shape the project to better meet your needs. But mainly because it enables an awesome, frictionless local developer experience that is difficult or impossible with closed, propietary solutions.
  • #9 You may hear the phrase “functainer”.
  • #24 I hope we’re past this point. Cloud isn’t a datacenter in the sky.
  • #25 Abstractions are a good thing Jevons Paradox: late 1800’s, William Jevon: technological improvements that increased the efficiency of coal-use led to the increased consumption of coal in a wide range of industries
  • #26 There’s some merit to the expression No Ops, but no, it doesn’t exist.
  • #27 In fact it’s now more important than ever We don’t have our friends running ops down the hall who we can work with whenever something goes wrong
  • #28 It’s early Ecosystem is growing Tooling is evolving
  • #32 Frameworks to make it easier Ensure proper ci/ci
  • #33 Best praciteices provided by paved road.
  • #34 Everything is a service: focus on services not servers DevOps have to understand the constraints of services (e.g. db performance) Parse would shut customers down who were doing table scanning to maintain good overall performance. Less Code: more complexity pushed down so less code for devs, but just moved the problem. More elegant code
  • #35 So you must design for them, and degrade the quality of your application gracefully to minimize the impact on your users. Cold starts can heavily influenced by both language runtime and memory allocation. A cold start in an intermediate service can easily cause the outer service to timeout.
  • #36 Specialsts running each service that your function uses—let’s team focus on problem they are working on and not Owners of all codde event if using service managed by others. DevOps can also use serverless, scaning jbos, auditing,
  • #39 Single slide describing Oracle Functions (good to give this to others to incorporate in their decks)