Knative permite que las cargas de trabajo sin servidor se ejecuten en clústeres de Kubernetes y hace que la creación y organización de contenedores con Kubernetes sea más rápida y sencilla.
Red Hat OpenShift on IBM Cloud
IBM Cloud Code Engine
IBM Cloud Satellite
IBM Cloud Kubernetes Service
Knative (pronunciado Kay-NAY-tive) es una extensión de la plataforma Kubernetes de orquestación de contenedores que permite que cargas de trabajo sin servidor se ejecuten en clústeres de Kubernetes y proporciona herramientas y utilidades que facilitan la creación, implementación y administración de aplicaciones en contenedores dentro de Kubernetes . Una experiencia más simple y más 'nativa de Kubernetes' (de ahí el nombre - 'K' de 'Kubernetes' + native).
Al igual que Kubernetes, Knative es un software software de código abierto. Fue desarrollado originalmente por Google en colaboración con IBM, Pivotal, Red Hat, SAP y cerca de 50 empresas más. Hoy, el proyecto de código abierto Knative está alojado por la Cloud Native Computing Foundation (CNCF).
Kubernetes automatiza y programa la implementación, la gestión y el escalado de contenedores, componentes de aplicaciones ejecutables y ligeros que combinan código fuente con todas las bibliotecas y dependencias del sistema operativo (SO) necesarias para ejecutar el código en cualquier entorno.
Los contenedores permiten que los componentes de la aplicación compartan los recursos de una sola instancia de un sistema operativo, de la misma manera que máquinas virtuales (VM) permiten que las aplicaciones compartan los recursos de una sola computadora física. Más pequeños, más eficientes en recursos que las VM, y mejor adaptados a los ciclos de lanzamiento incrementales de Agile y las metodologías de desarrollo de DevOps, los contenedores se han convertido en las unidades de cómputo de facto de las aplicaciones modernas nativas de la nube. Las empresas que utilizan contenedores informan otros beneficios, incluyendo la mejora de la calidad de las aplicaciones, mayores niveles de innovación, y mucho más:
Descargue el informe completo: Contenedores en la empresa (PDF, 1,4 MB)
A medida que el desarrollo nativo de la nube se vuelve más popular y los contenedores seproliferan en una organización, las capacidade de Kubernetes de orquestación de contenedores (programación, equilibrio de carga, supervisión del estado y más), hacen que la proliferación sea mucho más fácil de administrar. Sin embargo, Kubernetes es una herramienta compleja que requiere que los desarrolladores realicen o preparen una plantilla de muchas tareas repetitivas, como extraer el código fuente de la aplicación desde repositorios, construir y aprovisionar una imagen del contenedor alrededor del código, configurar conexiones de red , además de tener a Kubernetes utilizando diferentes herramientas. E incorporar Contenedores administrados por Kubernetes en una integración continua/entrega continua (CI/DC) requiere herramientas especiales y codificación personalizada.
Knative elimina esta complejidad con herramientas que automatizan estas tareas, desde adentro de Kubernetes. Un desarrollador puede definir el contenido y la configuración del contenedor en un solo archivo de manifiesto YAML, y Knative hace el resto, creando el contenedor y realizando la programación de la red para configurar una ruta, un ingreso, un balanceo de carga y más. (Knative también ofrece una interfaz de línea de comandos, Knative CLI, que permite a los desarrolladores acceder a las características de Knative sin editar archivos YAML.)
La computación sin servidor es un modelo de ejecución nativo de la nube que hace que las aplicaciones sean aún más fáciles de desarrollar y más rentables de ejecutar. El modelo informático sin servidor
Por sí mismo, Kubernetes no puedo ejecutar aplicaciones sin servidor sin software especializado que integre Kubernetes con la plataforma sin servidor de un proveedor de nube específico. Knative permite que cualquier contenedor se ejecute como una carga de trabajo sin servidor en cualquier clúster de Kubernetes , ya sea que el contenedor está construido alrededor de una función sin servidor u otro código de aplicación (p. ej., microservicios), abstrayendo el código y manejando el enrutamiento de la red , los desencadenadores de eventos y el autoescalado.
Knative está sobre Kubernetes y agrega tres componentes principales, o primativas: Build, Serving y Eventing.
El componente Knative Build automatiza el proceso de convertir el código fuente en un recipiente. Este proceso generalmente implica varios pasos, que incluyen:
Knative utiliza APIs de Kubernetes y otras herramientas para su proceso de construcción. Un desarrollador puede crear un solo manifiesto (normalmente un archivo YAML ) que especifica todas las variables - ubicación del código fuente, dependencias requeridas, etc., y Knative usa el manifiesto para automatizar la compilación del contenedor.
El componente Serving implementa y ejecuta contenedores como servicios escalables Knative. Serving proporciona las siguientes capacidades importantes:
Knative Serving pide prestado un servicio de enrutamiento inteligente desde Istio , otra aplicación en el ecosistema de Kubernetes. una malla de servicio de fuente abierta para Kubernetes. Istio también provee autenticación para solicitudes de servicio, cifrado de tráfico automático para una comunicación segura entre servicios y métricas detalladas sobre microservicios y operaciones de funciones sin servidor que los desarrolladores y administradores pueden utilizar para optimizar la infraestructura. (Para obtener más detalles sobre cómo Knative utiliza Istio, lea "Istio y Knative: extendiendo Kubernetes a una nueva Experiencia de desarrollador.")
El componente Eventing de Knative permite que diferentes eventos activen sus servicios y funciones basados en contenedores. Knative pone en cola y entrega esos eventos a los contenedores apropiados, por lo que no es necesario escribir scripts o implementar middleware para la funcionalidad. Knative también maneja canales, que son colas de eventos entre los que los desarrolladores pueden elegir, y el bus, una plataforma de mensajería que entrega eventos a contenedores. También permite a los desarrolladores configurar feeds, que conectan un evento con una acción para que realicen sus contenedores.
Fuentes de eventos
Knative hacen que sea más fácil para los desarrolladores la creación de conexiones con productores de eventos de terceros. Knative eventing creará automáticamente la conexión con el productor de eventos y enrutará los eventos generados. No es necesario averiguar cómo hacerlo mediante programación: Knative hace todo el trabajo.
Recapitulando, Knative soporta varios casos de uso de usuarios de Kubernetes que desean simplificar el desarrollo de aplicaciones en contenedores o llevar su uso de contenedores al siguiente nivel.
Los contenedores son ideales para modernizar sus aplicaciones y optimizar su infraestructura de TI. Los servicios de contenedor de IBM Cloud, basados en tecnologías de código abierto como Kubernetes, Knative e Istio, pueden facilitar y acelerar su camino hacia el desarrollo de aplicaciones nativas de la nube y hacia un enfoque de nube híbrida abierta que integra las mejores características y funciones de la nube privada, y las infraestructuras de TI locales.
Dé el siguiente paso:
Para comenzar de inmediato a utilizar Knative, inscríbase para una cuenta de IBM Cloud.
Una estrategia en la nube híbrida abierta le permite crear y gestionar cargas de trabajo desde cualquier lugar, sin dependencia de un proveedor.
Descubra cómo la infraestructura adecuada de nube local puede aportar resiliencia y seguridad a su entorno de nube híbrida, incluso durante una disrupción.
Red Hat OpenShift en IBM Cloud aprovecha OpenShift en entornos públicos e híbridos para obtener velocidad, capacidad de respuesta al mercado, escalabilidad y confiabilidad.
Con IBM Cloud Satellite puede implementar servicios en la nube consistentes en cualquier lugar; de forma local, en el borde y en los entornos de nube pública.
IBM Cloud Code Engine, una plataforma sin servidor totalmente gestionada, ejecuta cargas de trabajo en contenedores, incluidas aplicaciones web, microservicios, funciones controladas por eventos y más.