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