Google Introduces Knative 1.0 Serverless Computing Platform

Google has introduced a stable release of the Knative 1.0 platform, designed to create a serverless computing infrastructure 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 will not change from now on and will remain backward compatible. The project code is written in Go and distributed under the Apache 2.0 license.

The serverless application development model (serverless) offered in Knative provides an additional abstraction layer for cloud systems that allows you to perform functions as services (FaaS, Functions as a service). The essence of the serverless model is that the developer implements the logic at the level of individual functions, without worrying about creating and managing the infrastructure for running applications, and without being tied to specific server applications and the cloud environments necessary for their operation.

The development is carried out without creating monolithic applications at the level of preparing a set of small separate functions, each of which provides processing of a certain event and is designed for separate operation without reference to the environment (stateless, the result does not depend on the past state and contents of the file system). Functions are launched only when necessary, and after processing the event, they can immediately complete their work, i.e. unlike microservices, it does not require the constant presence of running environments that consume resources at idle.

The Knative platform itself launches containers as needed, places prepared functions in them, organizes management and ensures scaling of the environments required to perform these functions. The platform can be deployed on its own without being tied to external cloud services. You only need Kubernetes to run. Tools are provided to support a variety of common frameworks, including Django, Ruby on Rails, and Spring. The command line interface can be used to control the operation of the platform.

The platform provides two main components:

  • Serving to run serverless containers in Kubernetes with automatic networking, routing, change tracking (creating snapshots of hosted code and settings) and maintaining the required scaling level (up to reducing the number of pods to zero when there is no activity). The developer focuses only on the logic; everything related to execution is handled by the platform. To organize network interaction and routing requests, the network subsystems Ambassador, Contour, Kourier, Gloo and Istio can be used. There is support for HTTP/2, gRPC and WebSockets.
  • Eventing is a universal system for subscribing (attaching handlers), delivering and managing events. Allows you to create asynchronously running applications by attaching computing resources to data streams using an object model and an event processing mechanism.

Source: opennet.ru

Add a comment