Upgrade to Pro — share decks privately, control downloads, hide ads and more …

High-Performance FaaS with Nuclio #serverless #...

High-Performance FaaS with Nuclio #serverless #munich

Not long ago, the advent of microservice architectures was a big disruption in software engineering: systems were now build, composed and run as autonomous services. But this came at the price of added complexity. Serverless and FaaS seem to be the next disruption, they are the logical evolution in cloud native software development.

Of course, FaaS bringt its own set of challenges, such as cold startup performance, asynchronism and overall throughput. But it does not have to be all that bad. Do you want to know what real fast FaaS looks like? Then fasten your seatbelts when we give Nuclio a try. #serverless #munich #cloudnativenerd @qaware

M.-Leander Reimer

July 31, 2019
Tweet

More Decks by M.-Leander Reimer

Other Decks in Technology

Transcript

  1. HIGH- PERFORMANCE FAAS WITH NUCLIO // Serverless Munich Meetup //

    High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  2. CLOUD NATIVE SOFTWARE DEVELOPMENT IS COMPLICATED. DOCKER, YAML, MICROSERVICES, KUBERNETES,

    ET.AL. 3 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  3. 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/ 4 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  4. SERVERLESS IS THE NEXT LOGICAL EVOLUTION IN CLOUD NATIVE SOFTWARE

    DEVELOPMENT. 5 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  5. EVENT-DRIVEN ARCHITECTURE ENABLES LOOSELY COUPLED REACTIVE SOFTWARE COMPONENTS AND SERVICES.

    7 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  6. 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
  7. 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
  8. 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 10 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  9. 11 — // Serverless Munich Meetup // High-Performance FaaS with

    Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  10. 12 — // Serverless Munich Meetup // High-Performance FaaS with

    Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  11. 13 — // Serverless Munich Meetup // High-Performance FaaS with

    Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  12. 14 — // Serverless Munich Meetup // High-Performance FaaS with

    Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  13. 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 15 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  14. 16 — // Serverless Munich Meetup // High-Performance FaaS with

    Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  15. MY MAIN CONTENDERS > fission https://fission.io > Fn Project http://fnproject.io

    > Kubeless https://kubeless.io > nuclio https://nuclio.io > OpenFaaS https://www.openfaas.com > OpenWhisk https://openwhisk.apache.org
  16. THE OPEN SOURCE FAAS FRAMEWORK QUICK CHECK 3 License Inception

    Contributor Releases Stars Issues Build nuclio Apache-2.0 Jun 04, 2017 42 60 2.869 48 (1 bugs) ✅ OpenWhisk Apache-2.0 Feb 14, 2016 147 1 4.061 411 (22 bugs) ❌ Fn Project Apache-2.0 May 30, 2016 76 1.039 4.074 109 (8 bugs) ✅ fission Apache-2.0 Aug 14, 2016 76 34 4.411 232 (5 bugs) ✅ Kubeless Apache-2.0 Nov 13, 2016 75 40 4.750 131 (0 bugs) ✅ OpenFaaS MIT Dec 18, 2016 97 87 14.510 53 (0 bugs) ✅ 3 data from Jun 17, 2019. Github stats will vary, taken from Main repo only. 18 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  17. Language Use Cases Generation Platforms Runtimes Triggers nuclio Go Enterprise,

    IoT 2nd Docker, K8s, AWS, GCP, (Raspberry PI soon) .NET Core, Go, Java, NodeJS, Python, Shell DynamoDB, Iguazio v3io, http, kafka, kinesis, nats, rabbitmq, mqtt fission Go Enterprise 2nd k8s Go, Python, NodeJS, Java/JVM cron, http, NATS, Azure Queue Storage, Kafka, Kubewatch Kubeless Go Enterprise 2nd K8s NodeJS, Java, Go, JVM, Python, PHP, Ruby, .NET Core, Ballerina, Vert.x cron, http, NATS, kinesis, Kafka OpenFaaS Go Enterprise, IoT 1st K8s, Docker Go, C#, Java8, Dockerfile, NodeJS, PHP, Python, Ruby http, cron, Kafka, AWS SNS, S3, CloudEvents, IFTTT, Redis, MQTT, NATS OpenWhisk Scala Enterprise, Hosted? 2nd K8s, Mesos, Docker, OpenShift NodeJS, Swift, Java, Go, Scala, Python, PHP, Ruby, .NET Core, Ballerina Cloudant, RSS, Kafka, JIRA, Bluemix Push, Slack, Github Fn Project Go Enterprise, Hosted? 1st Docker, K8s Java, Go, NodeJS, Python, Ruby http 19 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  18. Installation Scheduler Docs Usage Ecosystem Performance nuclio K8s YAML K8s

    Native Web, README Quick Start, Examples, CLI SDK, Jupyther 1542 Req/sec fission Helm (2 Charts) K8s Native Web, README Quick Start, Examples, CLI SDK, Workflow, Istio 1069 Req/sec OpenFaaS Helm, Docker Compose YAML K8s Native Web, README Quick Start, Examples, CLI Raspberry Pi, Serverless Framework 1041 Req/sec Kubeless K8s YAML, Helm (Incubator) K8s Native Web, README Quick Start, Examples, CLI SDK, Istio, Serverless Framework 1363 Req/sec OpenWhisk Helm Custom Web, README Quick Start, Examples, CLI Serverless Framework not tested Fn Project Helm Custom README Quick Start, Examples, CLI SDK, Graal VM 48 Req/sec 20 — // Serverless Munich Meetup // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  19. FORK ME HTTPS://GITHUB.COM/LREIMER/THE-BIG-FAAS-LEBOWSKI HTTPS://GITHUB.COM/LREIMER/RASPI-SWARM-BOX 23 — // Serverless Munich Meetup

    // High-Performance FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }
  20. THANK YOU! 24 — // Serverless Munich Meetup // High-Performance

    FaaS with Nuclio -> { created with ❤ and by @LeanderReimer #CloudNativeNerd @qaware }