Serverless Java in Action
David Delabassee
@delabassee
Fn DevRel - Oracle
@delabassee
Belgium
2
@delabassee
Function as a Service
• Function
• As a Service
3
Small bits of code with a well defined job
Easy to understand and maintain
The system takes care of provisioning, scaling, patching, ...
Each function can scale independently
@delabassee
Serverless
https://serverless.zone/serverless-is-just-a-name-we-could-have-called-it-jeff-1958dd4c63d7
(Servers)
“‘Serverless’ is just a name.
We could have called it ‘Jeff ’”
- Paul Johnston
@delabassee
Why Serverless?
• No Server
• Automatic Scaling
• Only pay for what you use
• Agility
Management
@delabassee 6
Open Source Container Native FaaS Platform
Introducing Fn Project
https://github.com/fnproject
@delabassee
Introducing Fn Project
7
Open Source
Approachable
Container based
Platform independent
Language independent
Scheduler independent
No lock-in
Easy for new users
More controls for advanced users
Leverage Docker
Cloud, On-Perm, laptop
Go, Java, Python, …
K8S, ...
@delabassee
Introducing Fn Function
Code wrapped in a Container Image
–Input from stdin
–Output to stdout
–Logs to stderr
–Or simply use an FDK!
Fn handles everything else!
@delabassee
Fn Architecture
• Fn CLI
• Fn FDK's
9
@delabassee
Fn
10
Awesome Java support
@delabassee
Fn
11
… not just Java
• Go
• Python
• JS
• Ruby
• …
• or bring your own!
– Init-image
@delabassee
Serverless
12
Permanent Storage Lives Elsewhere
ts
10
5
5 5
5
8 7
7 8
10
@delabassee
Fn Flow
• For long-running, reliable, scalable functions with primitives for fork-join,
chaining, delays and error handling
• Java support based on Java 8 CompletableFuture API
• Go, Node and Python support on the way!
13
@delabassee
Fn Flow
Demo
Fn Flow
@delabassee
Rapid Ecosystem Evolution…
15
• Java release cadence
• JVM based languages
– Kotlin, Groovy, etc.
• “JVM-less”
– E.g. Substrate VM
• …
• Fn init-image
@delabassee
Fn
16
And more…
• Spring Cloud Function support
• Serverless Framework support
• JAX-RS support
• CNCF CloudEvents support
• Hot – Frozen – Cold Functions
• Helm Chart for K8S
• Async Functions (*)
@delabassee
Fn
18
Monitoring & Management
• OpenTracing support
• Pluggable backend
– Prometheus Metrics Sets
• Function counts
• Operation durations
• Docker metrics
• Logging via syslog
• Fn CLI
• Fn Dashboard
@delabassee
Fn
• Container Native, Cloud Agnostic, Polyglot, Open Source FaaS Platform
• Init, Test, Deploy, Invoke and Scale
19
Recap
@delabassee
Fn - An Ideal Functions Platform
20
• Platform Independent - laptop, server, cloud
• Scheduler Independent - deploy to Kubernetes, Swarm, etc.
• Docker Based - leverage Docker ecosystem
• Open Source - no vendor lock-in
• Approachable - easy for new users, low level controls for advanced users
https://github.com/fnproject/
@delabassee 21
Thanks!
@delabassee
Fn
22
Resources
• https://github.com/fnproject/
• https://fnproject.slack.com/messages
• http://fnproject.io
• https://medium.com/fnproject/
• https://twitter.com/fnproject
@delabassee
Safe Harbor Statement
The preceding 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.
23

Java Serverless in Action - Voxxed Banff