Randstad Docker meetup - Serverless

David Delabassee
David DelabasseeDevRel - Java Platform Group - Oracle
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Fn Project
Randstad Docker meetup
1
David Delabassee - @delabassee
Oracle
January 30, 2019
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 2
Preamble…
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 3
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
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. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
4
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Function As a Service
• Function
• As a Service
5
Small bits of code with a well defined job
Easy to understand and maintain
The system takes care of provisioning, patching, scaling, ...
Each function can scale independently
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 6
https://jaxenter.com/technologies-dominate-2019-poll-152470.html
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 7
https://twitter.com/monkchips/status/1088002995525242880
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Coming Soon: Oracle Functions
8
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 © 2019, Oracle and/or its affiliates. All rights reserved.
FaaS Platform – Roles & Responsibilities
9
Users Provider
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 10
Open-Source Container-Native FaaS Platform
Introducing Fn Project
https://github.com/fnproject
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
The Ideal FaaS Platform?
Open-Source
Approachable
Container-Native
Language Independent
Scheduler Independent
Platform Independent
No vendor lock-in
Easy for new users
Leverage Docker and its ecosystem
Go, Java, Python, …
K8S, Swarm, Mesos, ...
Cloud, On-Perm, laptop
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn Architecture
• Fn CLI
• Fn FDK's
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Introducing Fn Function
Code wrapped in a Container Image
–Via a “wrapper”
• Input from stdin
• Output to stdout
• Logs to stderr
–Or simply use an FDK!
Fn handles everything else!
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn and java
14
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn … not just Java
15
• Go
• Python
• Node
• Ruby
• …
• bring your own!
– Init-image
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
fn deploy
16
• Build container (multi-stage) + bumps version
• Push container to registry (unless --local)
• Create or update function trigger
SomeFunc:0.0.1
SomeFunc:0.0.1 SomeFunc:0.0.1
User code
Fn Service
somefunc →
/r/app/somefunc:0.0.1
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn Triggers
17
• Entry points for function invocation
• Multiple triggers may call the same function
• HTTP trigger, more coming
$ fn init --runtime node --trigger http hello
…
$ fn list triggers nodeapp
FUNCTION NAME TYPE SOURCE ENDPOINT
hello my-trigger http /hi http://10.8.10.103/t/nodeapp/hello
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Logging
18
syslog & logspout
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn and Developers
19
• Strong Developer Focus
– E.g. keep using your preferred tool chain
• FDK
• Fn CLI
# fn init
# fn build (optional)
# fn deploy
# fn invoke
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
DIY Serverless
20
• Roles & Responsibilities
– Users and Provider
• Why?
– Don’t Lean into Lock-in, Open is Good, Flexibility is Great
– Specific requirement, e.g. local legislation
– More controls and customization
– Learning, Development, etc.
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
DIY Serverless
21
• Requirements
– Fn Project
– Kubernetes
– Infrastructure
– DevOps Ninja Skills
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
DIY Serverless
22
• Scheduler Agnostic
– Optimizations and additional management work underway for K8S
• Helm chart
– https://github.com/fnproject/fn-helm
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
DIY Serverless
23
• Requirements
– Fn Project
– Kubernetes
– DevOps Ninja Skills
Oracle Container Engine
for Kubernetes
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Observability and Analytics with Prometheus & Grafana
24
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Tracing with OpenTracing and Jaeger
25
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Customizing and Extending Fn
26
• Listeners
– App, Call, Fn and Trigger listeners
– Can listen to various API events and respond to them
• Middleware
– Add functionality for every API request
– Cancel the request or call the next middleware in the chain
– E.g. Authentication middleware that checks headers for a custom token
• Custom API endpoint
– E.g. Custom API endpoint that handles requests to a custom HTTP route
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Low Latency
• Hot Functions
• Start Fast
• Run Small(er) images
27
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn Hot functions
28
• Cold start time (~300ms) is incurred on a first invocation
• Fn will pause the container for a time, default 30s
• Subsequent invocations will be “hot”, and reset the cooldown
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Start Fast
29
E.g. Java - Moving Startup Costs to Build-Time
• Class Data Sharing
–Avoid parsing JDK classes on start
• Application CDS
–Avoid parsing App classes on start
• AOT compilation
–Compile App classes to native .so libraries (experimental)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Run Small(er) Images
Small container images = faster start-up
–Transferring images to a host
–COW caches
–Overlay FS
30
E.g. Java - Better start-up time
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Run Small(er) Images
31
Remove parts of Java standard library that you don't use
Function and its dependencies
Java runtime
Operating System
Java 11 vs. Java 11 with jlink
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Run Small(er) Images
Security-oriented, lightweight Linux distribution
with 4MB base image
Lightweight, fast, simple, free, C standard library
implementation
32
E.g. Java
Project Portola’s goal is to run the JVM on Alpine Linux/Musl
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Run Small(er) Images
• GraalVM compiles Java source to a single native binary
• Tiny image sizes
• Low VM overhead
33
E.g. Java
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn Project
• Open Source Container Native FaaS Platform
–https://github.com/fnproject
• Development choices
–Go, Java, Node, Python, etc.
• Operation choices
–DIY Serverless
– ➥ Oracle Container Engine for Kubernetes + Fn
–➥ FaaS, i.e. Oracle Functions (soon)
34
Wrap-up
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Coming Soon: Oracle Functions
Function Dev KitsOpen Source Engine
Oracle Cloud Triggers
Events
HTTP
Timer
Streams
Container Native
Advanced DiagnosticsFine-grained Billing
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 36
Dank u!
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
https://cloud.oracle.com/TryIt
Get $500 USD of free credits
1 of 37

Recommended

Java and Serverless - A Match Made In Heaven, Part 1 by
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Curity
162 views47 slides
Serverless Java: JJUG CCC 2019 by
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Shaun Smith
296 views51 slides
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu... by
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...Taewan Kim
342 views61 slides
Cloud Native Java GraalVM 이상과 현실 by
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Taewan Kim
3.5K views88 slides
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20) by
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)Taewan Kim
338 views84 slides
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl... by
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...Bart Jonkers
554 views32 slides

More Related Content

What's hot

Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More by
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MoreShaun Smith
634 views23 slides
Melhore o Desenvolvimento do Time com DevOps na Nuvem by
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
3.9K views36 slides
Tecnologias Oracle em Docker Containers On-premise e na Nuvem by
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemBruno Borges
1.6K views59 slides
A Java Implementer's Guide to Better Apache Spark Performance by
A Java Implementer's Guide to Better Apache Spark PerformanceA Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceTim Ellison
924 views32 slides
Apache Harmony: An Open Innovation by
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open InnovationTim Ellison
790 views37 slides
Api design and prototype by
Api design and prototypeApi design and prototype
Api design and prototypeDonghuKIM2
219 views50 slides

What's hot(20)

Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More by Shaun Smith
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Shaun Smith634 views
Melhore o Desenvolvimento do Time com DevOps na Nuvem by Bruno Borges
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Bruno Borges3.9K views
Tecnologias Oracle em Docker Containers On-premise e na Nuvem by Bruno Borges
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Bruno Borges1.6K views
A Java Implementer's Guide to Better Apache Spark Performance by Tim Ellison
A Java Implementer's Guide to Better Apache Spark PerformanceA Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark Performance
Tim Ellison924 views
Apache Harmony: An Open Innovation by Tim Ellison
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open Innovation
Tim Ellison790 views
Api design and prototype by DonghuKIM2
Api design and prototypeApi design and prototype
Api design and prototype
DonghuKIM2219 views
Oracle Code in Seoul: Provisioning of Cloud Resource by Taewan Kim
Oracle Code in Seoul: Provisioning of Cloud ResourceOracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud Resource
Taewan Kim1.1K views
Building microservice for api with helidon and cicd pipeline by DonghuKIM2
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipeline
DonghuKIM2323 views
20191119 Cloud Native Java : GraalVM by Taewan Kim
20191119 Cloud Native Java : GraalVM20191119 Cloud Native Java : GraalVM
20191119 Cloud Native Java : GraalVM
Taewan Kim1.1K views
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams by Oracle Developers
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
Oracle Developers211 views
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren... by jaxLondonConference
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
jaxLondonConference3.5K views
Is An Agile Standard Possible For Java? by Simon Ritter
Is An Agile Standard Possible For Java?Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?
Simon Ritter3.2K views
Oracle - Continuous Delivery NYC meetup, June 07, 2018 by Oracle Developers
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle Developers146 views
API Design Principles Essential  by Oracle Korea
API Design Principles Essential API Design Principles Essential 
API Design Principles Essential 
Oracle Korea245 views
Migrating From Applets to Java Desktop Apps in JavaFX by Bruno Borges
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
Bruno Borges5.6K views
Oracle Keynote from JMagghreb 2014 by Simon Ritter
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Simon Ritter693 views
JDK 8 and JDK 8 Updates in OpenJDK by Wolfgang Weigend
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
Wolfgang Weigend2.5K views
JavaOne 2014 BOF4241 What's Next for JSF? by Edward Burns
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns29.8K views
Adopt-a-JSR for JSON Processing 1.1, JSR 374 by Heather VanCura
Adopt-a-JSR for JSON Processing 1.1, JSR 374Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Heather VanCura6.5K views
Install Redis on Oracle Linux by Johan Louwers
Install Redis on Oracle LinuxInstall Redis on Oracle Linux
Install Redis on Oracle Linux
Johan Louwers3.1K views

Similar to Randstad Docker meetup - Serverless

Serverless Java Challenges & Triumphs by
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsDavid Delabassee
1.2K views46 slides
Serverless Kotlin by
Serverless KotlinServerless Kotlin
Serverless KotlinDavid Delabassee
251 views24 slides
Functions and DevOps by
Functions and DevOpsFunctions and DevOps
Functions and DevOpsShaun Smith
73 views39 slides
Introducing Fn Project by
Introducing Fn ProjectIntroducing Fn Project
Introducing Fn ProjectAyumu Aizawa
952 views12 slides
Delivering Mobile Apps to the Field with Oracle by
Delivering Mobile Apps to the Field with OracleDelivering Mobile Apps to the Field with Oracle
Delivering Mobile Apps to the Field with OracleSimon Haslam
157 views34 slides
Is 12 Factor App Right About Logging by
Is 12 Factor App Right About LoggingIs 12 Factor App Right About Logging
Is 12 Factor App Right About LoggingPhil Wilkins
350 views30 slides

Similar to Randstad Docker meetup - Serverless(20)

Serverless Java Challenges & Triumphs by David Delabassee
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee1.2K views
Functions and DevOps by Shaun Smith
Functions and DevOpsFunctions and DevOps
Functions and DevOps
Shaun Smith73 views
Introducing Fn Project by Ayumu Aizawa
Introducing Fn ProjectIntroducing Fn Project
Introducing Fn Project
Ayumu Aizawa952 views
Delivering Mobile Apps to the Field with Oracle by Simon Haslam
Delivering Mobile Apps to the Field with OracleDelivering Mobile Apps to the Field with Oracle
Delivering Mobile Apps to the Field with Oracle
Simon Haslam157 views
Is 12 Factor App Right About Logging by Phil Wilkins
Is 12 Factor App Right About LoggingIs 12 Factor App Right About Logging
Is 12 Factor App Right About Logging
Phil Wilkins350 views
9thMeetup-20190316-CI/CD 기반의 Microservice 배포 by DongHee Lee
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
DongHee Lee130 views
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J... by David Buck
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
David Buck114 views
Scaling notebooks for Deep Learning workloads by Luciano Resende
Scaling notebooks for Deep Learning workloadsScaling notebooks for Deep Learning workloads
Scaling notebooks for Deep Learning workloads
Luciano Resende361 views
Shrinking the container_zurich_july_2018 by Ewan Slater
Shrinking the container_zurich_july_2018Shrinking the container_zurich_july_2018
Shrinking the container_zurich_july_2018
Ewan Slater48 views
Artifactory Essentials Workshop on August 27, 2020 by JFrog by Cloud Study Network
Artifactory Essentials Workshop on August 27, 2020 by JFrogArtifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrog
Node.js and Oracle Database: New Development Techniques by Christopher Jones
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
Christopher Jones5.5K views
Strata - Scaling Jupyter with Jupyter Enterprise Gateway by Luciano Resende
Strata - Scaling Jupyter with Jupyter Enterprise GatewayStrata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
Luciano Resende2.1K views
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme... by Phil Wilkins
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Phil Wilkins118 views
Building and Deploying Cloud Native Applications by Manish Kapur
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native Applications
Manish Kapur323 views
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur by Oracle Developers
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Oracle Developers219 views

More from David Delabassee

JVMs in Containers by
JVMs in ContainersJVMs in Containers
JVMs in ContainersDavid Delabassee
1.3K views38 slides
Java Serverless in Action - Voxxed Banff by
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffDavid Delabassee
232 views22 slides
REST in an Async World by
REST in an Async WorldREST in an Async World
REST in an Async WorldDavid Delabassee
2.3K views50 slides
JAX-RS 2.1 Reloaded by
JAX-RS 2.1 ReloadedJAX-RS 2.1 Reloaded
JAX-RS 2.1 ReloadedDavid Delabassee
1.7K views43 slides
Java EE 8 - February 2017 update by
Java EE 8 - February 2017 updateJava EE 8 - February 2017 update
Java EE 8 - February 2017 updateDavid Delabassee
6K views65 slides
Java EE Next by
Java EE NextJava EE Next
Java EE NextDavid Delabassee
2.2K views44 slides

More from David Delabassee(20)

Java Serverless in Action - Voxxed Banff by David Delabassee
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee232 views
Java EE Next - BeJUG JavaOne Afterglow 2016 by David Delabassee
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee433 views
HTTP/2 comes to Java (Dec. 2015 version) by David Delabassee
HTTP/2 comes to Java (Dec. 2015 version)HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee690 views
EJB and CDI - Alignment and Strategy by David Delabassee
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee31.9K views
Java EE 8 - What’s new on the Web front by David Delabassee
Java EE 8 - What’s new on the Web frontJava EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
David Delabassee960 views
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0 by David Delabassee
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
David Delabassee1.8K views
Java EE 8 - An instant snapshot by David Delabassee
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee10.7K views

Recently uploaded

Fleet Management Software in India by
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India Fleetable
12 views1 slide
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionMárton Kodok
11 views55 slides
Programming Field by
Programming FieldProgramming Field
Programming Fieldthehardtechnology
5 views9 slides
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptxanimuscrm
15 views19 slides
JioEngage_Presentation.pptx by
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptxadmin125455
6 views4 slides
Introduction to Gradle by
Introduction to GradleIntroduction to Gradle
Introduction to GradleJohn Valentino
5 views7 slides

Recently uploaded(20)

Fleet Management Software in India by Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable12 views
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok11 views
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm15 views
JioEngage_Presentation.pptx by admin125455
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptx
admin1254556 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ8 views
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation by HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi215 views
Ports-and-Adapters Architecture for Embedded HMI by Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert21 views
How Workforce Management Software Empowers SMEs | TraQSuite by TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite5 views
Top-5-production-devconMunich-2023.pptx by Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app8 views
Bootstrapping vs Venture Capital.pptx by Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic12 views
Understanding HTML terminology by artembondar5
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminology
artembondar56 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski12 views

Randstad Docker meetup - Serverless

  • 1. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Fn Project Randstad Docker meetup 1 David Delabassee - @delabassee Oracle January 30, 2019
  • 2. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 2 Preamble…
  • 3. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 3
  • 4. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement 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. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 4
  • 5. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Function As a Service • Function • As a Service 5 Small bits of code with a well defined job Easy to understand and maintain The system takes care of provisioning, patching, scaling, ... Each function can scale independently
  • 6. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 6 https://jaxenter.com/technologies-dominate-2019-poll-152470.html
  • 7. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 7 https://twitter.com/monkchips/status/1088002995525242880
  • 8. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Coming Soon: Oracle Functions 8 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
  • 9. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. FaaS Platform – Roles & Responsibilities 9 Users Provider
  • 10. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 10 Open-Source Container-Native FaaS Platform Introducing Fn Project https://github.com/fnproject
  • 11. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. The Ideal FaaS Platform? Open-Source Approachable Container-Native Language Independent Scheduler Independent Platform Independent No vendor lock-in Easy for new users Leverage Docker and its ecosystem Go, Java, Python, … K8S, Swarm, Mesos, ... Cloud, On-Perm, laptop
  • 12. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn Architecture • Fn CLI • Fn FDK's
  • 13. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Introducing Fn Function Code wrapped in a Container Image –Via a “wrapper” • Input from stdin • Output to stdout • Logs to stderr –Or simply use an FDK! Fn handles everything else!
  • 14. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn and java 14
  • 15. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn … not just Java 15 • Go • Python • Node • Ruby • … • bring your own! – Init-image
  • 16. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. fn deploy 16 • Build container (multi-stage) + bumps version • Push container to registry (unless --local) • Create or update function trigger SomeFunc:0.0.1 SomeFunc:0.0.1 SomeFunc:0.0.1 User code Fn Service somefunc → /r/app/somefunc:0.0.1
  • 17. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn Triggers 17 • Entry points for function invocation • Multiple triggers may call the same function • HTTP trigger, more coming $ fn init --runtime node --trigger http hello … $ fn list triggers nodeapp FUNCTION NAME TYPE SOURCE ENDPOINT hello my-trigger http /hi http://10.8.10.103/t/nodeapp/hello
  • 18. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Logging 18 syslog & logspout
  • 19. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn and Developers 19 • Strong Developer Focus – E.g. keep using your preferred tool chain • FDK • Fn CLI # fn init # fn build (optional) # fn deploy # fn invoke
  • 20. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. DIY Serverless 20 • Roles & Responsibilities – Users and Provider • Why? – Don’t Lean into Lock-in, Open is Good, Flexibility is Great – Specific requirement, e.g. local legislation – More controls and customization – Learning, Development, etc.
  • 21. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. DIY Serverless 21 • Requirements – Fn Project – Kubernetes – Infrastructure – DevOps Ninja Skills
  • 22. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. DIY Serverless 22 • Scheduler Agnostic – Optimizations and additional management work underway for K8S • Helm chart – https://github.com/fnproject/fn-helm
  • 23. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. DIY Serverless 23 • Requirements – Fn Project – Kubernetes – DevOps Ninja Skills Oracle Container Engine for Kubernetes
  • 24. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Observability and Analytics with Prometheus & Grafana 24
  • 25. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Tracing with OpenTracing and Jaeger 25
  • 26. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Customizing and Extending Fn 26 • Listeners – App, Call, Fn and Trigger listeners – Can listen to various API events and respond to them • Middleware – Add functionality for every API request – Cancel the request or call the next middleware in the chain – E.g. Authentication middleware that checks headers for a custom token • Custom API endpoint – E.g. Custom API endpoint that handles requests to a custom HTTP route
  • 27. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Low Latency • Hot Functions • Start Fast • Run Small(er) images 27
  • 28. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn Hot functions 28 • Cold start time (~300ms) is incurred on a first invocation • Fn will pause the container for a time, default 30s • Subsequent invocations will be “hot”, and reset the cooldown
  • 29. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Start Fast 29 E.g. Java - Moving Startup Costs to Build-Time • Class Data Sharing –Avoid parsing JDK classes on start • Application CDS –Avoid parsing App classes on start • AOT compilation –Compile App classes to native .so libraries (experimental)
  • 30. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Run Small(er) Images Small container images = faster start-up –Transferring images to a host –COW caches –Overlay FS 30 E.g. Java - Better start-up time
  • 31. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Run Small(er) Images 31 Remove parts of Java standard library that you don't use Function and its dependencies Java runtime Operating System Java 11 vs. Java 11 with jlink
  • 32. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Run Small(er) Images Security-oriented, lightweight Linux distribution with 4MB base image Lightweight, fast, simple, free, C standard library implementation 32 E.g. Java Project Portola’s goal is to run the JVM on Alpine Linux/Musl
  • 33. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Run Small(er) Images • GraalVM compiles Java source to a single native binary • Tiny image sizes • Low VM overhead 33 E.g. Java
  • 34. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn Project • Open Source Container Native FaaS Platform –https://github.com/fnproject • Development choices –Go, Java, Node, Python, etc. • Operation choices –DIY Serverless – ➥ Oracle Container Engine for Kubernetes + Fn –➥ FaaS, i.e. Oracle Functions (soon) 34 Wrap-up
  • 35. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Coming Soon: Oracle Functions Function Dev KitsOpen Source Engine Oracle Cloud Triggers Events HTTP Timer Streams Container Native Advanced DiagnosticsFine-grained Billing
  • 36. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 36 Dank u!
  • 37. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. https://cloud.oracle.com/TryIt Get $500 USD of free credits