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.

https://youtu.be/PWJMDWo1An0?t=240

Red Hat Livestreaming

January 18, 2021
Tweet

More Decks by Red Hat Livestreaming

Other Decks in Technology

Transcript

  1. Knative Project
    Introduction and Roadmap
    @cheddarmint
    @mattmoor
    @n3wscott
    @ro14nd

    View Slide

  2. What is it?

    View Slide

  3. What is it really?
    ● Kubernetes extension focused on developer productivity
    ● Solves boring but hard problems
    ● Two key pieces
    ○ Serving
    ○ Eventing

    View Slide

  4. 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

    View Slide

  5. Cloud Events

    View Slide

  6. 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

    View Slide

  7. Knative Serving - key resources

    View Slide

  8. BYO ingress

    View Slide

  9. 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

    View Slide

  10. 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

    View Slide

  11. Knative Eventing - key resources

    View Slide

  12. 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

    View Slide

  13. View Slide

  14. 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

    View Slide

  15. 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

    View Slide

  16. Will it blend???

    View Slide

  17. 2021 Goals
    ● “Knative 1.0” release
    ● More integrations
    ● Improve UX
    ● More adoption!
    ● Grow pool of contributors

    View Slide

  18. Contributors wanted!

    View Slide

  19. How to contribute
    ● Check us out on github! https://github.com/knative
    ● Working group meeting schedule
    ● Join our slack: knative.slack.com

    View Slide