Devoxx Poland 2019, Kraków: Talk by Mario-Leander Reimer (@LeanderReimer, Principal Software Architect at QAware)
=== Please download slides if blurred! ===
Abstract: Only a few years ago the move towards microservice architecture was the first big disruption in software engineering: instead of running monoliths, systems were now build, composed and run as autonomous services. But this came at the price of added development and infrastructure complexity. Serverless and FaaS seem to be the next disruption, they are the logical evolution trying to address some of the inherent technology complexity we are currently faced when building cloud native apps.
FaaS frameworks are currently popping up like mushrooms: Knative, Kubeless, OpenFn, Fission, OpenFaas or Open Whisk are just a few to name. But which one of these is safe to pick and use in your next project? Let's find out. This session will start off by briefly explaining the essence of Serverless application architecture. Leander will then define a criteria catalog for FaaS frameworks and continue by comparing and showcasing the most promising ones.
3. #DEVOXXPL 2017
A HITCHHIKER’S GUIDE TO THE
CLOUD NATIVE STACK 4
4
https://speakerdeck.com/lreimer/a-hitchhikers-guide-to-the-cloud-native-stack-number-devoxxpl
https://www.youtube.com/watch?v=eMMkOyZwam4
3 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
4. CLOUD NATIVE SOFTWARE DEVELOPMENT IS
COMPLICATED.DOCKER, YAML, MICROSERVICES, KUBERNETES, ET.AL.
4 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
5. SERVERLESS IS THE NEXT
LOGICAL EVOLUTIONIN CLOUD NATIVE SOFTWARE DEVELOPMENT.
5 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
6. Serverless computing refers to a new model of cloud native
computing, enabled by architectures that do not require
server management to build and run applications. It leverages
a finer-grained deployment model where applications, bundled
as one or more functions, are uploaded to a platform and
then executed, scaled, and billed in response to the exact
demand needed at the moment. 1
1
https://landscape.cncf.io/
6 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
8. 8 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
9. EVENT-DRIVEN ARCHITECTURE
ENABLES LOOSELY COUPLED REACTIVE
SOFTWARE COMPONENTS AND SERVICES. 2
2
https://cloudevents.io
9 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
10. 10 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
11. USE CASE 1
HYBRID ARCHITECTURES
> Combine Microservice Architecture
with EDA
> Leverage Function services for
Event-driven use cases
> Reduce resource consumption and
costs via Scale 2 Zero
> Integrate into existing Enterprise
PaaS environment
12. USE CASE 2
EDGE AND FOG COMPUTING
> Research project: evaluate usage of
FaaS for low power devices
> Support for lightweight schedulers
like Docker Swarm
> Support for compiled language
runtimes like Go
13. MY CRITERIA TO CHOOSE THE IDEAL FAAS PLATFORM
> Open Source - no initial $$$ and no vendor lock-in please
> Maturity - good and active community, little issues, frequent releases
> Use Cases - general purpose, enterprise, big data, AI, edge computing
> Approachable - quick start and sufficient documentation
> Language Runtimes - please more than JavaScript!
> Developer Friendly - tools & frameworks, local runtime, testing, IDE support
> Operability - easy setup, supported platforms, technology footprint
> Integration - supported triggers, infrastructure, plugins, standards
> Performance - good cold startup performance and throughput
13 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
14. 14 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
15. 15 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
16. 16 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
17. 17 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
18. PUT KNATIVE, RIFF AND KYMA ON YOUR RADAR!
> Knative
> K8s based platform to build, deploy and manage serverless workloads
> Build for Cloud-native Source-to-Container orchestration
> Serving for a scale-to-zero request driven compute model, leverages Istio
> Eventing provides composable primitives to enable late-binding event sources and event consumers
> riff
> provides and integrates basic FaaS platform infrastructure components, currently v0.3.0
> combines Cloud Native Buildpacks with Knative Serving and Knative Eventing
> Kyma
> full blown serverless platform with many components, currently v1.1.0
> Recently migrated serverless components to Knative and Istio
18 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
19. 19 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }
27. IT DEPENDS ON YOUR USE CASE.
> Fission is a pretty complete platform.
> OpenFaas is very popular with an active community.
Currently the only one with support for ARM devices.
> Nuclio is fast, lightweight and has support for many
triggers. Promising roadmap.
> Kubeless is lightweight and simple.
27 — // #DevoxxPL 2019 // The Big Cloud Native FaaS Lebowski -> { created with ❤ and
☕
by @LeanderReimer #CloudNativeNerd @qaware }