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

Mofizur Rahman - Knative: Serverless Computing on Kubernetes

Mofizur Rahman - Knative: Serverless Computing on Kubernetes

DevOps Days GDL 2020 - February 20th

DevOpsDays GDL

February 21, 2020
Tweet

More Decks by DevOpsDays GDL

Other Decks in Technology

Transcript

  1. @moficodes Agenda Learn About Knative and Why We Should Care

    See Some “Cool-ish” Demo Learn What’s to Come Next Be Impressed With Mofi
  2. @moficodes Microservice Architecture • Products not Projects • Design for

    Failures • Organized Around Business Capabilities
  3. @moficodes Kubernetes Features • Replicasets • Horizontal Auto Scaling •

    Health Check • Self Healing • Rolling Deployment • Rollback • Resource Quota • Service Discovery • Load Balancing • Networking • Cross Cloud • Secret Management • Batch Execution • Storage orchestration
  4. @moficodes Serverless • Any platform that can do on demand

    work. • Run atomic (in theory) actions aka functions. • Scales according to need
  5. @moficodes Current Solutions: Pros and Cons Pros • Good support

    and many choices • Can handle many types of events • Comparatively cheap Google Cloud Function, AWS Lambda, IBM Cloud Functions, Azure Functions etc. Cons • Not much control in terms of hardware • Can not really handle resource heavy work • Completely separate platform
  6. @moficodes What is Knative? Extends Kubernetes to provide a set

    of middleware components that are essential to modern app development The following Knative components are currently available: • Eventing - Management and delivery of events • Serving - Request-driven compute that can scale to zero
  7. @moficodes Why Knative • Serverless capabilities on K8s • Extend

    K8s in a native way • Higher level primitives • More complete platform
  8. @moficodes Serverless on K8s • Full compute power of a

    cluster “on demand” • Access to wide variety of hardware for serverless • All on the same platform
  9. @moficodes Extend K8s in a Native Way • Make use

    of existing skills • Get to use standard tools • 3rd party tool support is better
  10. @moficodes Higher Level Primitives • Combines bunch of K8s operations

    in higher level primitives • Enables automation
  11. @moficodes Makes K8s More Complete With Knative K8s has •

    Serverless • Event streams • Traffic Routing • Monitoring • Security (mTls) • Policy Enforcement • And all K8s things... Istio
  12. @moficodes Serving • Uses Istio behind the scene • Used

    for intelligent routing, blue-green deployment • Scale down to zero • Scale up to limit
  13. @moficodes Notes About Knative Build As of version v0.8 Knative

    build has been deprecated in favor of Tekton Pipeline
  14. @moficodes Tekton Build Run on Kubernetes Have Kubernetes clusters as

    a first class type Use containers as their building blocks
  15. @moficodes Tekton Primitives Task Defines a series of steps which

    launch specific build or delivery tools that ingest specific inputs and produce specific outputs. TaskRun Instantiates a Task for execution with specific inputs, outputs, and execution parameters. Can be invoked on its own or as part of a Pipeline. Pipeline Defines a series of Tasks that accomplish a specific build or delivery goal. Can be triggered by an event or invoked from a PipelineRun. PipelineResource Defines locations for inputs ingested and outputs produced by the steps in Tasks. PipelineRun Instantiates a Pipeline for execution with specific inputs, outputs, and execution parameters.
  16. @moficodes Blue/Green Deployment • Gradually shift traffic from one version

    to a newer version Also See Canary Deployment, A/B Testing
  17. @moficodes Event Knative Eventing defines the following primitives: • Event

    Sources ◦ generate events from different sources (k8s, github, pub/sub, container) • Channels ◦ buffer between event producers and consumers • Subscriptions ◦ forward events from channels to services or other channels
  18. @moficodes Eventing Principles 1. Services are loosely coupled 2. A

    producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that is not yet being produced. 3. Services can be connected to create new applications ◦ without modifying producer or consumer. ◦ with the ability to select a specific subset of events from a particular producer