Serverless Kotlin
- 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless Kotlin
David Delabassée - Oracle
@delabassee
Nicolas Fränkel - Exoscale
@nicolas_frankel
October 2018
- 2. Copyright © 2018, 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, timing, and pricing of any
features or functionality described for Oracle’s products may change and remains at the
sole discretion of Oracle Corporation.
- 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
@delabassee from Belgium
- 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
@nicolas_frankel from France
- 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Simple, scalable and safe European alternative to the big cloud-computing
players
• Privacy-minded
• Great support
https://exoscale.com
- 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Function as a Service
• Function
• As a Service
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
- 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Serverless Servers
“ ‘ Serverless ’ is just a name.
We could have called it ‘ Jeff ’ ”
- Paul Johnston
https://serverless.zone/serverless-is-just-a-name-we-could-have-called-it-jeff-1958dd4c63d7
- 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Why Serverless?
• No Server
• Automatic Scaling
• Only pay for what you use
• Agility
Management
- 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Open Source Container Native FaaS Platform
Introducing Fn Project
https://github.com/fnproject
- 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Introducing Fn Project
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 and its ecosystem
Cloud, On-Perm, laptop
Go, Java, Python, …
K8S, ...
- 13. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
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!
- 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Fn Architecture
• Fn CLI
• Fn FDK's
• Local
• Exoscale
- 15. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Polyglot
• Go
• Java
• Python
• JS
• Rust
• Ruby
• … bring your own!
- 17. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Kotlin
“ Statically typed programming language
for the JVM, Android, native and the
browser ”
https://kotlinlang.org/
- 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Kotlin - A Few Facts
• Developed by JetBrains
– Co-managed with Google
– Supported by Pivotal for Spring/Boot
• Open Source
• Compiles to
– JVM bytecode
– JavaScript
– (Native)
• Lot of traction
- 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Kotlin - Features
• Functional and object-oriented
• Statically-typed
• Null safety
• No checked exceptions
• Named & optional arguments
• Lambdas
• Java compatibility
• And more...
- 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Kotlin – Killer Features
• Extension methods
• Extension properties
- 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Fn
• Container Native, Cloud Agnostic, Polyglot, Open Source FaaS Platform
https://github.com/fnproject https://exoscale.com https://kotlinlang.org
Editor's Notes
- WORK IN PROGRESS
- 5 times surface, 4x population
- Let’s define FaaS
Func : Single purpose
Serverless: A category of software design where the abstraction layer for developers is at the application tier, above the OS, infra, and cloud IaaS API’s. In other words, developers never think about infrastructure.
No complicated plumbing
- Functions as Unit of Billing
- Functions as Unit of Billing
Just think about your code, not the infrastructure
- let’s look at Fn.
- Unit of design deployment, scaling and billing
Or use an FDK!
- Small chunk of code wrapped into a container image
- + FDKs
- Kotlin