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

A Polyglot Developer Experience on Kubernetes: Docker-less and YAML-less

A Polyglot Developer Experience on Kubernetes: Docker-less and YAML-less

Let's build a CaaS (Containers-as-a-Service) platform that delivers a similar experience to well-loved solutions like Google Cloud Run and Azure Container Apps. Those platforms allow you to run your applications without the need to know about containers or Kubernetes. They take your source code and remotely build and deploy your software while hiding away the complexity of Docker and Kubernetes. This presentation gives practical advice on how to build such a platform in a cloud provider-agnostic way on top of Kubernetes using only open-source projects.

Thomas and Mauricio will show how the platform can scale and provide developers with a polyglot environment to code, build and deploy their event-driven applications. The presentation will cover how tools like Knative, CloudEvents, Buildpacks, func CLI, and popular languages like Java, Go, and Python can be glued together to provide an optimized polyglot developer experience that can be tested and demoed in front of a live audience.

Thomas Vitale

May 21, 2022
Tweet

More Decks by Thomas Vitale

Other Decks in Technology

Transcript

  1. Mauricio Salatino & Thomas Vitale KubeCon + CloudNativeCon Europe May

    18th, 2022 A Polyglot Developer Experience on Kubernetes Docker-less and YAML-less @salaboy @vitalethomas
  2. Mauricio Salatino VMware - Knative OSS • a.k.a @Salaboy •

    Sta ff Engineer - Knative Eventing tech lead for VMware • Knative OSS core contributor • Passionate about Functions, Platforms, Open Source and Kubernetes salaboy.com
  3. Systematic • Software Architect at Systematic, Denmark. • Author of

    “Cloud Native Spring in Action” (Manning). • Spring Security and Spring Cloud contributor. Thomas Vitale thomasvitale.com @vitalethomas
  4. Serverless Architectures Developers focus on code Focus on business logic

    @salaboy @vitalethomas Developer Platform Infrastructure Provisioning Workload Management Dynamic Scaling
  5. Knative Serving Serverless Containers on Kubernetes Developer-friendly abstractions From code

    to URL Autoscaling Scaling to zero Progressive Rollouts Request-driven Event-driven @salaboy @vitalethomas Cloud agnostic
  6. Platform 1 - Serverless experience From containers to deployment with

    autoscaling @salaboy @vitalethomas Image pack kn URL Kubernetes Cluster Container Container Container Knative Serving
  7. Functions Functional programming model Triggered by requests or events Stateless

    Smaller scope Cold start Cost optimization @salaboy @vitalethomas
  8. Functions Patterns Topologies for functional programming @salaboy @vitalethomas Asynchronous processing

    Event-based Data stream via chained functions Synchronous Asynchronous Fire and Forget Request/ Response Request/ Response (State)
  9. More on Knative Functions In active development, join the community!

    External templates repository Run locally with func run On-cluster build, no Docker required Roadmap to 1.0 GA @salaboy @vitalethomas Works with multiple languages and frameworks
  10. Platform 2 - Polyglot Functions From idea to deployment with

    autoscaling @salaboy @vitalethomas URL func create Image func deploy Kubernetes Cluster Container Container Container Knative Serving
  11. Knative Eventing Event routing and triggers Developer-friendly abstractions Event-driven architectures

    Event routing Polyglot support with CloudEvents Pluggable @salaboy @vitalethomas Cloud agnostic
  12. Platform 3 - Knative Eventing Event-driven and reactive functions @salaboy

    @vitalethomas URL func create + trigger Image func deploy Kubernetes Cluster Container Container Knative Serving & Eventing Knative Broker Knative Event Sources Trigger A Trigger B
  13. Kubernetes Cluster Game - Functions Synchronous functions with Knative <Client

    Side> React Application <Orchestrator> Game FrontEnd <Function> Start Game <Function> Level X … <Function> Get LeaderB Redis (State) HTTP SYNC <Function> Level 1 …
  14. Game - Eventing Knative Eventing, CloudEvents & RSocket Kubernetes Cluster

    <Client Side> React Application <Orchestrator> Game FrontEnd <Function> Level X … Redis HTTP SYNC Broker Trigger Score CloudEvent RSocket GameScore CloudEvent Trigger Another Function
  15. Discount codes Manning • 35% discount code, valid for all

    products in all format • ctwkucoeu22 • manning.com
  16. Resources Source code • Learn more about the game: •

    https://github.com/salaboy/from-monolith-to-k8s/tree/main/game • Deploy the game on Kubernetes: • https://github.com/ThomasVitale/eventing-game • Knative: https://knative.dev • Knative Functions: https://github.com/knative-sandbox/kn-plugin-func
  17. Mauricio Salatino & Thomas Vitale KubeCon + CloudNativeCon Europe May

    18th, 2022 A Polyglot Developer Experience on Kubernetes Docker-less and YAML-less @salaboy @vitalethomas