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

Knative Project: Introduction and Roadmap

Knative Project: Introduction and Roadmap

Knative, created originally by Google with contributions from over 50 different companies, delivers an essential set of components to build and run serverless applications on Kubernetes. Knative offers features like scale-to-zero, autoscaling, in-cluster builds, and eventing framework for cloud-native applications on Kubernetes. Whether on-premises, in the cloud, or in a third-party data center, Knative codifies the best practices shared by successful real-world Kubernetes-based frameworks. Most importantly, Knative enables developers to focus on writing code without the need to worry about the “boring but difficult” parts of building, deploying, and managing their application.

In this briefing, Red Hat’s Paul Morie and VMWare's Matt Moore will give a brief intro into Knative, a bit of demo of some of the latest features, walk us thru the road ahead and answer your questions.


Red Hat Livestreaming

January 18, 2021

More Decks by Red Hat Livestreaming

Other Decks in Technology


  1. What is it really? • Kubernetes extension focused on developer

    productivity • Solves boring but hard problems • Two key pieces ◦ Serving ◦ Eventing
  2. Knative History inception - present • Fall 2017 - Early

    Prototyping @ Google • July 2018 - Public Launch • March 2019 - Build -> Tekton • Sept 2019 - Serving API v1 • May 2020 - First TOC elections • July 2020 - Eventing API v1 • Nov 2020 - First Steering elections
  3. What does Knative serving get me? • Goal: Enable developers

    to focus on business logic • You bring: container image with your HTTP application. • You get: ◦ DNS name for your application ( ) ◦ Automatic TLS (when enabled) ◦ Immutable application revisions ◦ Traffic splitting between revisions (canary, rollout, rollback) ◦ Request-based autoscaling (0 -> n -> 0) ◦ Concurrency Control
  4. Serving Roadmap • DomainMapping: new resource to assign “vanity” URLs

    to Services (alpha) • Gradual Rollouts: smarter gradual rollouts (alpha) • “Ingress v2”: contributing to this so that we work with “just” K8s (dev) Always: • Scaling: bigger clusters, smaller footprints, more services, more traffic • Latency: faster node/pod cold starts
  5. What does Knative eventing get me? • Enables async app

    development through event deliver from anywhere • Loose coupling and late binding between producers and consumers • Producers can generate events before consumers exist • Consumers can express interest in events that haven’t been produced yet
  6. Eventing Roadmap Next 3 Months Next 6 Months • More

    flakiness stabilization • New testing framework • Experimental features • Tenant Targeted Logging • Better Trigger Filtering • JS expression for Filtering • Improved Reply Contract • Eventing Autoscaling • Control and Data planes Milestone events • Event Discovery
  7. kn - your door to Knative wonderland • Imperative management

    of Knative core entities (CRUD): ◦ kn service|revision|route - Manage Knative services and revisions ◦ kn trigger|subscription|broker|channel - Manage Knative eventing plumbing ◦ kn source - Manage builtin-sources • Declarative handling of Knative services ◦ kn service apply - Like kubectl apply, supporting 3-way merging of resources • Plugin architecture ◦ Similar to kubectl ◦ Inlining possible • GitOps support ◦ Tekton tasks ◦ Offline generation of resource files
  8. kn Roadmap • Support for arbitrary sources ◦ Detection via

    CRDs / Knative Discovery ◦ Dynamic command line arguments, specific to source attributes • Support for Kamelets ◦ Kamelets: Hooking up Apache Camel components (300+) as Knative sources • New plugins in knative-sandbox ◦ kn service log - Logging à la stern for Knative services ◦ kn event - Inject CloudEvents from the CLI (for testing and debugging) • UX improvements
  9. 2021 Goals • “Knative 1.0” release • More integrations •

    Improve UX • More adoption! • Grow pool of contributors
  10. How to contribute • Check us out on github! https://github.com/knative

    • Working group meeting schedule • Join our slack: knative.slack.com