Knative permite que las cargas de trabajo sin servidor se ejecuten en clústeres de Kubernetes. Hace que construir y orquestar contenedores con Kubernetes sea más rápido y fácil.
Knative (pronunciado kay-NAY-tive) es una extensión de la plataforma de orquestación de contenedores Kubernetes. Proporciona herramientas y utilidades que hacen que la creación, el despliegue y la gestión de aplicaciones en contenedores dentro de Kubernetes sean una experiencia más sencilla y "nativa de Kubernetes" (de ahí el nombre, "K" de "Kubernetes" + "nativo").
Al igual que Kubernetes, Knative es un software de código abierto. Google lo desarrolló inicialmente en colaboración con IBM®, Pivotal, Red Hat®, SAP y casi otras 50 empresas. Hoy en día, la Cloud Native Computing Foundation (CNCF) alberga el proyecto de código abierto Knative.
Kubernetes automatiza y programa el despliegue, la gestión y el escalado de contenedores:componentes de aplicaciones ligeros y ejecutables que combinan el 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 las máquinas virtuales (VM) permiten que las aplicaciones compartan los recursos de una sola computadora física. Más pequeños y más eficientes en recursos que las VM y más adecuados para los ciclos de lanzamiento incrementales de las metodologías de desarrollo ágil y DevOps, los contenedores se han convertido en las unidades informáticas de facto de las aplicaciones modernas nativas de la nube. Las empresas que utilizan contenedores informan otros beneficios, incluida la mejora de la calidad de las aplicaciones, mayores niveles de innovación y más:
A medida que el desarrollo nativo de la nube se vuelve más popular y los contenedores proliferan en una organización, las capacidades de orquestación de contenedores de Kubernetes, que incluyen programación, equilibrio de carga, monitoreo de estado y más, hacen que esa proliferación sea mucho más fácil de gestionar. Sin embargo, Kubernetes es una herramienta compleja que requiere que los desarrolladores realicen o creen plantillas para muchas tareas repetitivas, como extraer el código fuente de la aplicación de los repositorios, crear y aprovisionar una imagen de contenedor alrededor del código y configurar conexiones de red fuera de Kubernetes con diferentes herramientas. La incorporación de contenedores gestionados por Kubernetes en un proceso automatizado de integración continua/entrega continua (CI/DC) requiere herramientas especiales y programación personalizada.
Knative elimina esta complejidad con herramientas que automatizan estas tareas desde Kubernetes. Un desarrollador puede definir el contenido y la configuración del contenedor en un único archivo de manifiesto YAML, y Knative hace el resto: cre el contenedor y realiza la programación de red para configurar una ruta, ingreso, equilibrio 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 más fáciles de desarrollar y más rentables. El modelo de computación sin servidor
Por sí solo, Kubernetes no puede ejecutar aplicaciones sin servidor sin un software especializado que integre Kubernetes con la plataforma sin servidor de un proveedor de la 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 (por ejemplo, microservicios) al abstraer el código y manejar el enrutamiento de la red, los activadores de eventos y el autoescalado.
Knative se encuentra en Kubernetes y agrega tres componentes principales o primarios: Build, Serving y Eventing.
El componente Knative Build automatiza la conversión del código fuente en un contenedor. Este proceso suele implicar varios pasos, que incluyen:
Knative utiliza API de Kubernetes y otras herramientas para su proceso de compilación. Un desarrollador puede crear un manifiesto único (normalmente, un archivo YAML) que especifique todas las variables (ubicación del código fuente, dependencias necesarias y más) y Knative utiliza el manifiesto para automatizar la creación del contenedor.
El componente Serving despliega y ejecuta contenedores como servicios Knative escalables. El servicio proporciona las siguientes capacidades esenciales:
Knative Serving toma prestado el enrutamiento inteligente de servicios de Istio, otra aplicación del ecosistema de Kubernetes. Istio, una malla de servicios de código abierto para Kubernetes, también proporciona autenticación para solicitudes de servicio, cifrado automático de tráfico para una comunicación segura entre servicios, métricas detalladas sobre microservicios y operaciones de funciones sin servidor y otras herramientas para que los desarrolladores y administradores optimicen la infraestructura.
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 adecuados, por lo que no es necesario escribir scripts ni 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 a una acción para que la realicen sus contenedores.
Las fuentes de eventos de Knative facilitan a los desarrolladores la creación de conexiones con productores de eventos de terceros. Knative Eventing crea automáticamente la conexión con el productor de eventos y enruta los eventos generados. No es necesario saber cómo hacerlo mediante programación: Knative hace todo el trabajo.
Para resumir, Knative admite varios casos de uso para los usuarios de Kubernetes que desean simplificar el desarrollo de aplicaciones en contenedores o llevar el uso de contenedores al siguiente nivel.
Optimizar Kubernetes. Al eliminar tareas repetitivas de compilación y configuración, Knative hace que los desarrolladores que trabajan con Kubernetes sean más productivos. Cualquier equipo de desarrollo que tenga dificultades para gestionar un número creciente de clústeres de Kubernetes es un candidato ideal para Knative.
Acelerar el camino hacia la tecnología sin servidor. Puede ser desalentador configurar y administrar manualmente entornos sin servidor. Knative permite a las organizaciones configurar rápidamente cargas de trabajo sin servidor. En lo que respecta a los desarrolladores, solo están creando un contenedor: es Knative el que lo ejecuta como una función sin servidor detrás de escena.
Soporte de ciclos de vida ágil y DevOps. Al permitir a los desarrolladores crear nuevos contenedores y versiones de contenedores más rápido, Knative facilita el despliegue de aplicaciones en contenedores en pasos pequeños, rápidos e iterativos como parte de un flujo de trabajo ágil o DevOps. Los servicios Knative se integran fácilmente en pipelines de CI/CD automatizadas sin requerir software especial o programación personalizada.
Hacer más fluidos los despliegues de nuevas características. El lanzamiento de nuevas versiones a los clientes puede exponer problemas de software que podrían afectar los procesos comerciales. La configuración y el enrutamiento de Knative permiten a los desarrolladores exponer nuevas revisiones de contenedores a un subconjunto de la base de usuarios. Luego, aumentan gradualmente esa audiencia con el tiempo a medida que resuelven problemas o regresan rápidamente a versiones anteriores si es necesario.
Mantener a los desarrolladores centrados en la programación y la innovación. DevOps podría facultar a los desarrolladores para gestionar sus propios entornos. Pero al fin y al cabo, los desarrolladores quieren centrarse en crear software sin errores y nuevas características innovadoras, no en configurar las colas del bus de mensajes para activar eventos o gestionar la escalabilidad de los contenedores. Knative permite a los desarrolladores dedicar más tiempo a lo que mejor saben hacer.
Red Hat OpenShift on IBM Cloud es una plataforma de contenedores OpenShift (OCP) totalmente gestionada.
Las soluciones de contenedores ejecutan y amplían cargas de trabajo en contenedores con seguridad, innovación de código abierto y despliegue rápido.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de IBM de asesoramiento sobre la nube. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.