SlideShare a Scribd company logo
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Serverless Java
Challenges and Triumphs
March 8, 2019
1
David Delabassee - @delabassee
Oracle
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.
3
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 4
Serverless
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
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 7
Interest in Serverless
Source: Google Trends
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 8
Serverless Java?
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 9
https://blog.github.com/2018-11-15-state-of-the-octoverse-top-programming-languages/
Top programming languages by contributors as of September 30, 2018
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 10
https://redmonk.com/sogrady/2018/08/10/language-rankings-6-18/
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 11
4.96% of functions are Java 8!?
https://serverless.com/blog/serverless-by-the-numbers-2018-data-report/
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 12
And the Trend isn’t Great!
https://serverless.com/blog/serverless-by-the-numbers-2018-data-report/
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Serverless Java Landscape
• AWS Lambda - Java 8 support (June 2015)
• Azure Function - Java 8 support (February 2019)
• Google Cloud Function - NA
13
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 14
http://redmonk.com/jgovernor/2016/10/12/when-web-companies-grow-up-they-turn-into-java-shops
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Serverless Java
• FaaS seen as a scripting platform for the web?
• Doesn't fit normal Java development patterns?
• JVM not suitable for short-lived “apps”?
15
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Blueprints for Serverless Java
• “Plain old Java”
• Established toolchains
• Ability to build complex applications
• Low latency/high performance
• JVM ecosystem
16
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
• Open-source, Container NaAve, Serverless PlaDorm
• Apache v2 licence
• Run anywhere - Cloud / Datacenter / Laptop
• Fn ♥
• FuncAons are containers
17
https://github.com/fnproject/fn
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 18
Demo
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn Java Function Development Kit
• Docker images
–A build image for repeatable builds
–An optimized runtime image
• JUnit test harness
• Maven support
• Input/output coercion
• Flow
• …
19
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Blueprints for Serverless Java
• “Plain old Java” ✓
• Established toolchains ✓
• Ability to build complex applications
• Low latency/high performance
• JVM ecosystem
20
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 21
Fn Flow
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Serverless
22
Permanent Storage Lives Elsewhere
ts
10
5
5 5
5
8 7
7 8
10
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn Flow
• Build reliable and scalable Faas applica(ons
• Provides rich concurrency primi(ves including fork-join, chaining, delays
and error handling
• Java support based on Java 8 Comple(onStage API
For long-running, reliable, scalable functions
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn Flow
For long-running, reliable, scalable functions
Flow flow = Flows.currentFlow();
FlowFuture<byte[]> stage =
flow.invokeFunction(aFunc, input.getBytes())
.thenApply(HttpResponse::getBodyAsBytes);
byte[] result = stage.get();
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Fn Flow
25
Demo
Java FDK
Flow
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Blueprints for Serverless Java
• “Plain old Java” ✓
• Wide choice of good tooling ✓
• Ability to build complex applications ✓
• Low latency/high performance
• Rich JVM ecosystem
26
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Low latency/high performance
• Start fast
• Run in small(er) images
• Respect resource constraints
27
What do we want containerized JVMs to do?
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Respecting Resource Constraints
• JDK-8179498:attach in Linux should be relative to /proc/pid/root and
namespace aware as jcmd, jsack, etc. fail to attach (resolved in JDK 10)
• JDK-8193710: jcmd –l and jps commands do not list Java processes
running in Docker containers (resolved in JDK 11)
• And more... JDK-8203357: Container Metrics (resolved in JDK 11.0.1)
• JDK 11—JEP 318: Epsilon, i.e. No-Op, Garbage Collector (experimental)
28
Being Container Friendly
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Start Fast
29
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.
Start Fast
30
Small(er) Container Images = Faster Start-up
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Run Small(er) Images
31
Reduce layers size
• Java Function and its dependencies
• Java Runtime
• Operating System
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Run Small(er) Images
32
Reduce layers size
• Project Portola
– Run the JVM on musl
– https://openjdk.java.net/projects/portola/
• musl
– Lightweight, fast, simple, free, C standard library implementation
– http://www.musl-libc.org
• Alpine
– Security-oriented, lightweight Linux distro with 4MB base image
– https://www.alpinelinux.org
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Run Small(er) Images
33
Reduce Java Runtime layer size - jlink
Modules JLink flags Mb
JDK 12 Whole JDK! 318.7
openjdk:11-jre-slim 11 (default) NB: openjdk:12-jre-slim not yet available! 217.0
JRE 12 all (explicit) --add-module $(java --list-modules) 168.3 100.0%
+ --no-header-files --no-man-pages --strip-debug 143.0 85.0%
+ --compress=1 107.8 64.1%
+ --compress=2 83.7 49.7%
Custom JRE 12 base, logging --add-module $(jdeps --print-module-deps func.jar) 47.4 28.2% 100.0%
+ --no-header-files --no-man-pages --strip-debug 41.6 24.7% 87.8%
+ --compress=2 32.0 19.0% 67.5%
OpenJDK (build 12-ea+29) - alpine:3.9 x86_64
318 Mb 168 Mb 47 Mb 32 Mb
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 34
jlink/Alpine Demo
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
35
GraalVM
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 36
GraalVM Demo
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Blueprints for Serverless Java
• “Plain old Java” ✓
• Wide choice of good tooling ✓
• Ability to build complex applications ✓
• Low latency/high performance ✓
• Rich JVM ecosystem
37
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Ongoing Ecosystem Evolution…
• Substrate VM
• Java release cadence
• Other JVM based languages
– Kotlin, Groovy, etc.
• …
• Fn init-image
38
Copyright © 2019, Oracle and/or its affiliates. All rights reserved.
Blueprints for Serverless Java
• “Plain old Java” ✓
• Wide choice of good tooling ✓
• Ability to build complex applications ✓
• Low latency/high performance ✓
• Rich JVM ecosystem ✓
39
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 40
Serverless Java—Does it have a future? Absolutely!
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 41
Call to Action
https://github.com/fnproject/fn
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 42
Q&A
Ad

More Related Content

What's hot (20)

Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
Taewan Kim
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Oracle Developers
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
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 Borges
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinar
Andrew Morgan
 
Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
Steven Davelaar
 
Migrating From Applets to Java Desktop Apps in JavaFX
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 Borges
 
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
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 Smith
 
Microservices and Container
Microservices and ContainerMicroservices and Container
Microservices and Container
Wolfgang Weigend
 
Java EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil GaurJava EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil Gaur
Takashi Ito
 
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서:  Part 2 (2/2)Oracle APEX 기초 워크샵 - 실습 가이드 문서:  Part 2 (2/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Taewan Kim
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
Oracle Developers
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
Shaun Smith
 
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...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
Taewan Kim
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
Oracle Developers
 
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)
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)
Taewan Kim
 
Let's Talk Mobile
Let's Talk MobileLet's Talk Mobile
Let's Talk Mobile
Chris Muir
 
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
vasuballa
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
Chris Muir
 
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Chris Muir
 
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
Taewan Kim
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Oracle Developers
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
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 Borges
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinar
Andrew Morgan
 
Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
Steven Davelaar
 
Migrating From Applets to Java Desktop Apps in JavaFX
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 Borges
 
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
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 Smith
 
Microservices and Container
Microservices and ContainerMicroservices and Container
Microservices and Container
Wolfgang Weigend
 
Java EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil GaurJava EE, What's Next? by Anil Gaur
Java EE, What's Next? by Anil Gaur
Takashi Ito
 
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서:  Part 2 (2/2)Oracle APEX 기초 워크샵 - 실습 가이드 문서:  Part 2 (2/2)
Oracle APEX 기초 워크샵 - 실습 가이드 문서: Part 2 (2/2)
Taewan Kim
 
General Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajevGeneral Capabilities of GraalVM by Oleg Selajev @shelajev
General Capabilities of GraalVM by Oleg Selajev @shelajev
Oracle Developers
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
Shaun Smith
 
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...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
Taewan Kim
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
Oracle Developers
 
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)
13회 Oracle Developer Meetup 발표 자료: Oracle Cloud Data Interface(2019.07.20)
Taewan Kim
 
Let's Talk Mobile
Let's Talk MobileLet's Talk Mobile
Let's Talk Mobile
Chris Muir
 
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
vasuballa
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
Chris Muir
 
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Chris Muir
 

Similar to Serverless Java - Challenges and Triumphs (20)

Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
David Delabassee
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
David Delabassee
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
Wolfgang Weigend
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
Wolfgang Weigend
 
Randstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
David Delabassee
 
Java 101
Java 101Java 101
Java 101
javafxpert
 
Why to Use an Oracle Database?
Why to Use an Oracle Database? Why to Use an Oracle Database?
Why to Use an Oracle Database?
Markus Michalewicz
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
Wolfgang Weigend
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
CodeOps Technologies LLP
 
Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB Cluster
Balasubramanian Kandasamy
 
Serverless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerServerless Patterns by Jesse Butler
Serverless Patterns by Jesse Butler
Oracle Developers
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
Bruno Borges
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
Christopher Jones
 
Confoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSetConfoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSet
Dave Stokes
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
Keith Hollman
 
Coding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETCoding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JET
Geertjan Wielenga
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based Microservices
Pavel Bucek
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster Everywhere
J On The Beach
 
Marcin Szałowicz - MySQL Workbench
Marcin Szałowicz - MySQL WorkbenchMarcin Szałowicz - MySQL Workbench
Marcin Szałowicz - MySQL Workbench
Women in Technology Poland
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
David Delabassee
 
Randstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
David Delabassee
 
Why to Use an Oracle Database?
Why to Use an Oracle Database? Why to Use an Oracle Database?
Why to Use an Oracle Database?
Markus Michalewicz
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
Wolfgang Weigend
 
Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB Cluster
Balasubramanian Kandasamy
 
Serverless Patterns by Jesse Butler
Serverless Patterns by Jesse ButlerServerless Patterns by Jesse Butler
Serverless Patterns by Jesse Butler
Oracle Developers
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
Bruno Borges
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
Christopher Jones
 
Confoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSetConfoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSet
Dave Stokes
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
Keith Hollman
 
Coding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETCoding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JET
Geertjan Wielenga
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based Microservices
Pavel Bucek
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster Everywhere
J On The Beach
 
Ad

More from David Delabassee (20)

Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
David Delabassee
 
REST in an Async World
REST in an Async WorldREST in an Async World
REST in an Async World
David Delabassee
 
JAX-RS 2.1 Reloaded
JAX-RS 2.1 ReloadedJAX-RS 2.1 Reloaded
JAX-RS 2.1 Reloaded
David Delabassee
 
Java EE 8 - February 2017 update
Java EE 8 - February 2017 updateJava EE 8 - February 2017 update
Java EE 8 - February 2017 update
David Delabassee
 
Java EE Next
Java EE NextJava EE Next
Java EE Next
David Delabassee
 
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee
 
HTTP/2 comes to Java
HTTP/2 comes to JavaHTTP/2 comes to Java
HTTP/2 comes to Java
David Delabassee
 
Java EE 8 - Work in progress
Java EE 8 - Work in progressJava EE 8 - Work in progress
Java EE 8 - Work in progress
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)
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
 
Java EE 8 - What’s new on the Web front
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 Delabassee
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8
David Delabassee
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
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 Delabassee
 
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
Avatar 2.0
Avatar 2.0Avatar 2.0
Avatar 2.0
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshotJava EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee
 
Java EE 8 - February 2017 update
Java EE 8 - February 2017 updateJava EE 8 - February 2017 update
Java EE 8 - February 2017 update
David Delabassee
 
Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee
 
Java EE 8 - Work in progress
Java EE 8 - Work in progressJava EE 8 - Work in progress
Java EE 8 - Work in progress
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)
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
 
Java EE 8 - What’s new on the Web front
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 Delabassee
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8
David Delabassee
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
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 Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshotJava EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
Ad

Recently uploaded (20)

Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 

Serverless Java - Challenges and Triumphs

  • 1. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | Serverless Java Challenges and Triumphs March 8, 2019 1 David Delabassee - @delabassee Oracle
  • 2. 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. 3
  • 3. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 4 Serverless
  • 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
  • 5. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 6
  • 6. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 7 Interest in Serverless Source: Google Trends
  • 7. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 8 Serverless Java?
  • 8. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 9 https://blog.github.com/2018-11-15-state-of-the-octoverse-top-programming-languages/ Top programming languages by contributors as of September 30, 2018
  • 9. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 10 https://redmonk.com/sogrady/2018/08/10/language-rankings-6-18/
  • 10. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 11 4.96% of functions are Java 8!? https://serverless.com/blog/serverless-by-the-numbers-2018-data-report/
  • 11. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 12 And the Trend isn’t Great! https://serverless.com/blog/serverless-by-the-numbers-2018-data-report/
  • 12. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Serverless Java Landscape • AWS Lambda - Java 8 support (June 2015) • Azure Function - Java 8 support (February 2019) • Google Cloud Function - NA 13
  • 13. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 14 http://redmonk.com/jgovernor/2016/10/12/when-web-companies-grow-up-they-turn-into-java-shops
  • 14. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Serverless Java • FaaS seen as a scripting platform for the web? • Doesn't fit normal Java development patterns? • JVM not suitable for short-lived “apps”? 15
  • 15. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Blueprints for Serverless Java • “Plain old Java” • Established toolchains • Ability to build complex applications • Low latency/high performance • JVM ecosystem 16
  • 16. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. • Open-source, Container NaAve, Serverless PlaDorm • Apache v2 licence • Run anywhere - Cloud / Datacenter / Laptop • Fn ♥ • FuncAons are containers 17 https://github.com/fnproject/fn
  • 17. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 18 Demo
  • 18. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn Java Function Development Kit • Docker images –A build image for repeatable builds –An optimized runtime image • JUnit test harness • Maven support • Input/output coercion • Flow • … 19
  • 19. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Blueprints for Serverless Java • “Plain old Java” ✓ • Established toolchains ✓ • Ability to build complex applications • Low latency/high performance • JVM ecosystem 20
  • 20. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 21 Fn Flow
  • 21. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Serverless 22 Permanent Storage Lives Elsewhere ts 10 5 5 5 5 8 7 7 8 10
  • 22. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn Flow • Build reliable and scalable Faas applica(ons • Provides rich concurrency primi(ves including fork-join, chaining, delays and error handling • Java support based on Java 8 Comple(onStage API For long-running, reliable, scalable functions
  • 23. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn Flow For long-running, reliable, scalable functions Flow flow = Flows.currentFlow(); FlowFuture<byte[]> stage = flow.invokeFunction(aFunc, input.getBytes()) .thenApply(HttpResponse::getBodyAsBytes); byte[] result = stage.get();
  • 24. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Fn Flow 25 Demo Java FDK Flow
  • 25. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Blueprints for Serverless Java • “Plain old Java” ✓ • Wide choice of good tooling ✓ • Ability to build complex applications ✓ • Low latency/high performance • Rich JVM ecosystem 26
  • 26. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Low latency/high performance • Start fast • Run in small(er) images • Respect resource constraints 27 What do we want containerized JVMs to do?
  • 27. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Respecting Resource Constraints • JDK-8179498:attach in Linux should be relative to /proc/pid/root and namespace aware as jcmd, jsack, etc. fail to attach (resolved in JDK 10) • JDK-8193710: jcmd –l and jps commands do not list Java processes running in Docker containers (resolved in JDK 11) • And more... JDK-8203357: Container Metrics (resolved in JDK 11.0.1) • JDK 11—JEP 318: Epsilon, i.e. No-Op, Garbage Collector (experimental) 28 Being Container Friendly
  • 28. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Start Fast 29 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)
  • 29. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Start Fast 30 Small(er) Container Images = Faster Start-up
  • 30. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Run Small(er) Images 31 Reduce layers size • Java Function and its dependencies • Java Runtime • Operating System
  • 31. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Run Small(er) Images 32 Reduce layers size • Project Portola – Run the JVM on musl – https://openjdk.java.net/projects/portola/ • musl – Lightweight, fast, simple, free, C standard library implementation – http://www.musl-libc.org • Alpine – Security-oriented, lightweight Linux distro with 4MB base image – https://www.alpinelinux.org
  • 32. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Run Small(er) Images 33 Reduce Java Runtime layer size - jlink Modules JLink flags Mb JDK 12 Whole JDK! 318.7 openjdk:11-jre-slim 11 (default) NB: openjdk:12-jre-slim not yet available! 217.0 JRE 12 all (explicit) --add-module $(java --list-modules) 168.3 100.0% + --no-header-files --no-man-pages --strip-debug 143.0 85.0% + --compress=1 107.8 64.1% + --compress=2 83.7 49.7% Custom JRE 12 base, logging --add-module $(jdeps --print-module-deps func.jar) 47.4 28.2% 100.0% + --no-header-files --no-man-pages --strip-debug 41.6 24.7% 87.8% + --compress=2 32.0 19.0% 67.5% OpenJDK (build 12-ea+29) - alpine:3.9 x86_64 318 Mb 168 Mb 47 Mb 32 Mb
  • 33. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 34 jlink/Alpine Demo
  • 34. 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 35 GraalVM
  • 35. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 36 GraalVM Demo
  • 36. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Blueprints for Serverless Java • “Plain old Java” ✓ • Wide choice of good tooling ✓ • Ability to build complex applications ✓ • Low latency/high performance ✓ • Rich JVM ecosystem 37
  • 37. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Ongoing Ecosystem Evolution… • Substrate VM • Java release cadence • Other JVM based languages – Kotlin, Groovy, etc. • … • Fn init-image 38
  • 38. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. Blueprints for Serverless Java • “Plain old Java” ✓ • Wide choice of good tooling ✓ • Ability to build complex applications ✓ • Low latency/high performance ✓ • Rich JVM ecosystem ✓ 39
  • 39. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 40 Serverless Java—Does it have a future? Absolutely!
  • 40. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 41 Call to Action https://github.com/fnproject/fn
  • 41. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. 42 Q&A