Knative
Last updated
Last updated
Knative (pronounced kay-nay-tiv) is an open source community project which adds components for deploying, running, and managing serverless, cloud-native applications to Kubernetes.
With Knative, you create a service by packaging your code as a container image and handing it to the system. Your code only runs when it needs to, with Knative starting and stopping instances automatically. Resources aren’t consumed unless your code needs to do something. Operations costs can be reduced you can pay for cloud-based compute time as it’s needed instead of running and managing your own servers all the time.
Knative consists of 3 primary components based on here:
Build - A flexible approach to building source code into containers.
Configurable and flexible approach to building source code into containers
Pluggable approach leveraging Dockerfiles or built templates
No cross-compiling or need for local build tools
Support for cached artifacts for faster builds
Allow your organization to utilize spare capacity for better resource usage
Serving - Enables rapid deployment and automatic scaling of containers through a request-driven model for serving workloads based on demand.
Higher level abstraction, easy to reason about the object model
Seamless autoscaling based on HTTP requests
Gradual rollouts for new revisions
Integrates networking and service mesh automatically
Pluggable: connect your own logging and monitoring platform
Eventing - An infrastructure for consuming and producing events to stimulate applications. Applications can be triggered by a variety of sources, such as events from your own applications, cloud services from multiple providers, Software-as-a-Service (SaaS) systems.
Universal subscription, delivery, and management of events
Build loosely coupled, event-driven systems with high-level objects
Declarative binding between event producers and event consuming services
Scalable from just a few events to live streams
Custom event pipelines to connect with your own existing systems
Knative is thinking to move Build out, so one might wonder why there are only Serving and Eventing from its official website.
Knative's benefits can help solve a variety of real-world challenges facing today's developers, including the following:
CI/CD set up: Continuous integration and deployment workflows are a linchpin of DevOps processes. Automated gating for software builds and deployments can reduce deployment times while increasing software quality. The problem is that these automated workflows can take time and expertise to set up, often involving many different products. Knative is a useful tool that can be used as part of a pipeline automation project to get DevOps teams up and running.
Easier customer rollouts: The problem with a fast release cadence is that developers end up testing software on their users. Rolling out new releases to the customer base can expose software issues that may affect business processes. Knative's configuration and routing system allow you to expose new container revisions to a subset of the user base, gradually increasing that audience over time and quickly rolling back to older versions should problems arise.