Google has stable release of the platform announced a Knative 1.0 , designed to create a infrastructure serverless computing deployed on top of a container isolation system based on the Kubernetes platform. In addition to Google, companies such as IBM, Red Hat, SAP and VMware are also involved in the development of Knative. The release of Knative 1.0 marked the stabilization of the API for application development, which from now on will not change and will remain backward compatible. The project code is written in the Go language and is distributed under the Apache 2.0 license.
The Knative platform launches prepared containers as needed (the application is not tied to any specific container), organizes management and provides scaling of environments required to perform functions and applications. The platform can be deployed at its own facilities without being tied to external cloud services. Only Kubernetes is required to run. Tools are provided to support a variety of common frameworks, including Django, Ruby on Rails, and Spring. The can be used to control the operation of the platform command line interface .
The platform provides two main components:
- Serving – Deploying and managing applications and functions in the form of serverless containers. Containers are executed in Kubernetes with automatic configuration of networking, routing, tracking changes (creating snapshots of hosted code and settings) and maintaining the required level of scaling (up to reducing the number of pods to zero in the absence of activity). The developer focuses only on the logic, everything related to the execution is dealt with by the platform. The Ambassador, Contour, Kourier, Gloo, and Istio networking subsystems can be used to organize networking and route requests. There is support for HTTP / 2, gRPC and WebSockets.
- Eventing is a universal system for subscribing (attaching handlers), delivering and managing events. Enables the creation of asynchronous applications by attaching computational resources to data streams using the object model and event handling.