Author: Yuan Yi
Guide
Knative is an open source serverless application framework based on Kubernetes that helps users deploy and manage modern serverless workloads and build an enterprise-level serverless platform. Knative has the following advantages:
- establishes a scalable, secure, and stateless service in a few seconds.
- API with higher-level Kubernetes application abstraction.
- pluggable component allows you to use your own logging and monitoring, network and service grid.
- Knative can be run anywhere not need to worry about vendor lock-in .
- developers seamlessly experience , supporting GitOps, DockerOps, ManualOps, etc.
- supports commonly used tools and frameworks , such as Django, Ruby on Rails, Spring, etc.
Knative 1.0
Recently Knative released 1.0 version , reaching an important milestone. Since the first release of Knative in July 2018, the version has been iteratively developed. In addition to numerous bug fixes, stability and performance enhancements, the following improvements have been made in chronological order:
- Supports multiple HTTP routing layers (including Istio, Contour, Kourier and Ambassador)
- Support event-driven Eventing concept and common subscription methods (including Kafka, GCP PubSub and RabbitMQ)
- The "duck type" abstraction allows the processing of arbitrary Kubernetes resources with common fields (such as status.conditions and status.address)
- Command line client supporting additional function plug-ins
- 6-week regular release process
- Supports HTTP/2, gRPC and WebSockets
- Broker and Trigger to simplify event publishing and subscription, while decoupling producers and consumers
- Support event components to pass to non-Knative components, including specific URLs on components outside the cluster or on the host
- Support automatic provision of TLS certificate (through DNS or HTTP01 challenge)
- Customized event delivery options, including retry for undeliverable events and dead-letter dead letter queue
- Event tracking support for Broker and Channel to improve debugging
- The Tekton project spawned by Knative Build
- Supports parallel and sequential components for orchestrating the workflow of events
- Documentation of event sources and instructions on how to contribute, currently covering about 40 different event sources
- "No interruption" smooth upgrade, no request interruption during minor version upgrade
- Redesign the Serving API to match the PodTemplateSpec used by Deployment, CronJob, etc. to simplify the use of Kubernetes users
- Support injecting the event target address into the object of PodTemplateSpec
- Support horizontal Pod auto-scaling based on the number of concurrency or RPS
- Use leader election to achieve high availability of control plane components
- Provide an Operator to help administrators install Knative
- Quick start for developers to try Knative locally
- Use DomainMapping to simplify service management and release
How many fans does Knative have?
From the birth of Knative to the release of 1.0, there have been a series of questions like this: How many companies are using Knative? Is production available?
According to the CNCF 2020 China Cloud Native Survey Report, Knative has become the most widely installed .
Picture 1 (See related links at the end of the article for the source of the picture)
In addition, the Knative community recently launched a statistics: which cloud vendors or enterprises are currently providing or using Knative. The statistics are as follows (and this list is still being updated):
Picture 2 (See related links at the end of the article for the source of the picture)
We can see that almost all major manufacturers support or integrate Knative, such as Alibaba Cloud, Google Cloud, IBM, Red Hat, etc., and most of them provide production-level capabilities (Production). With the release of Knative 1.0, I believe that more users will embrace Knative.
Alibaba Cloud Knative
Alibaba Cloud Container Service began product integration from Knative 0.6.0, and continued to follow up with the iteration of Knative community functions. Currently, Knative 1.0 is fully supported. During this period, Alibaba Cloud Knative has been fully integrated with cloud products such as container service Kubernetes ecology, messaging, and storage. include:
- Rich message cloud product event sources: Kafka, MNS, RocketMQ
- Service access: SLB
- Storage: NAS, cloud disk, etc.
- Observability: log service, ARMS
- IaaS resources: ECS, ECI
In addition, in order to lower the threshold for users to use Knative, one-click deployment capabilities are provided through the container service UI console, and Knative control components are fully managed in Serverless Kubernetes (ASK), which greatly saves users' resources and operation and maintenance costs.
In the continuous iteration of productization, it has also brought more abundant customer application scenarios. The current typical application scenarios of Alibaba Cloud Knative (including but not limited):
- AI audio and video encoding/decoding scene
- GPU and other heterogeneous computing scenarios
- Big data and AI deep learning, machine vision
- Traditional management software
- ...
The industry covers areas such as smart healthcare, online education, and digital spatial modeling. Alibaba Cloud Container Service Knative is continuously providing users with enterprise-level serverless platform capabilities.
summary
If you are facing a difficult problem with complex and diverse Kubernetes resources (Deploymemt, Service, Ingress, etc.), Knative may be able to help you easily deal with it; if you are facing cost pressures, operation and maintenance burdens, Knative can reduce your burden. Interested students are welcome to communicate together.
Alibaba Cloud Knative DingTalk Exchange Group:
Related Links
1) Picture 1:
2) Picture 2:
3) Reference
- https://knative.dev/blog/articles/knative-1.0/
- https://cloudnative.to/blog/knative-1-0-ga/
- https://github.com/knative/community/blob/main/ADOPTERS.MD
Click here find out more Ali cloud Knative product-related information!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。