Google ha presentado el lanzamiento estable de la plataforma Knative 1.0, diseñada para crear infraestructuras de computación sin servidor, desplegadas sobre un sistema de aislamiento de contenedores basado en Kubernetes. Además de Google, empresas como IBM, Red Hat, SAP y VMware también participan en el desarrollo de Knative. El lanzamiento de Knative 1.0 marca la estabilización de la API para el desarrollo de aplicaciones, que ahora no cambiará y mantendrá la compatibilidad hacia atrás. El código del proyecto está escrito en Go y se distribuye bajo la licencia Apache 2.0.
El modelo de desarrollo de aplicaciones sin servidor (serverless) ofrecido en Knative proporciona un nivel adicional de abstracción para los sistemas en la nube, permitiendo ejecutar funciones como servicios (FaaS, Functions as a service). La esencia del modelo sin servidor es que el desarrollador implementa la lógica a nivel de funciones individuales, sin preocuparse por crear y gestionar la infraestructura para ejecutar aplicaciones, y sin atarse a aplicaciones de servidor específicas y a los entornos en la nube necesarios para su funcionamiento.
El desarrollo se lleva a cabo sin crear aplicaciones monolíticas a nivel de un conjunto de pequeñas funciones individuales, cada una de las cuales proporciona el procesamiento de un evento específico y está diseñada para trabajar de manera independiente sin depender del entorno (stateless, el resultado no depende del estado previo y del contenido del sistema de archivos). Las funciones sólo se inician cuando es necesario y, tras procesar el evento, pueden finalizar su ejecución de inmediato, es decir, a diferencia de los microservicios, no se requiere que haya entornos en ejecución de manera continua, consumiendo recursos en modo inactivo.
La plataforma Knative inicia los contenedores según sea necesario, coloca en ellos las funciones preparadas, organiza la gestión y asegura la escalabilidad de los entornos necesarios para ejecutar estas funciones. La plataforma puede desplegarse en sus propios recursos sin depender de servicios en la nube externos. Solo se necesita Kubernetes para su ejecución. Se proporcionan herramientas para soportar varios marcos típicos, incluidos Django, Ruby on Rails y Spring. Para gestionar el funcionamiento de la plataforma se puede utilizar la interfaz de línea de comandos.
La plataforma proporciona dos componentes principales:
- Servicio para lanzar contenedores sin servidor en Kubernetes con configuración automática de red, enrutamiento, seguimiento de cambios (creación de instantáneas del código y configuraciones implementadas) y mantenimiento del nivel de escalado requerido (incluso reduciendo el número de pods a cero en ausencia de actividad). El desarrollador se centra solo en la lógica, mientras que la plataforma se encarga de todo lo relacionado con la ejecución. Para la organización de la interacción de red y el enrutamiento de solicitudes se pueden utilizar subsistemas de red como Ambassador, Contour, Kourier, Gloo e Istio. Hay soporte para HTTP/2, gRPC y WebSockets.
- Eventing es un sistema universal de suscripción (adjunto de manejadores), entrega y gestión de eventos. Permite crear aplicaciones que funcionan de manera asíncrona, adjuntando recursos computacionales a flujos de datos mediante un modelo de objetos y un mecanismo de procesamiento de eventos.
Fuente: opennet.ru
