Knative permite que las cargas de trabajo sin servidor se ejecuten en los clústeres de Kubernetes. Hace que crear y organizar 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 servicios que hacen que la creación, implementación y gestión de aplicaciones en contenedores dentro de Kubernetes sea una experiencia más sencilla y más "nativa a Kubernetes" (de ahí el nombre, "K" por "Kubernetes" + "native").
Al igual que Kubernetes, Knative es un software de código abierto. Google la desarrolló inicialmente en colaboración con IBM, Pivotal, Red Hat, SAP y casi 50 empresas más. En la actualidad, la Cloud Native Computing Foundation (CNCF) organiza el proyecto nativo de la nube de código abierto de Knative.
Kubernetes automatiza y programa la implementación, 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 a los componentes de las aplicaciones compartir los recursos de una única instancia de un sistema operativo, de la misma manera que las máquinas virtuales (VM) permiten a las aplicaciones compartir los recursos de un único ordenador físico. Más pequeños y más eficientes en Recursos que las máquinas virtuales y más adecuados para los ciclos de lanzamiento incrementales de las metodologías de desarrollo ágil y DevOps de aplicaciones, los contenedores se han convertido en las unidades de cómputo de facto de las aplicaciones nativas de la nube. Las empresas que utilizan contenedores informan de otros beneficios, como 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, monitorización de salud y más, hacen que esa proliferación sea mucho más fácil de administrar. Sin embargo, Kubernetes es una herramienta compleja que requiere que los desarrolladores realicen o creen plantillas de muchas tareas repetitivas, como extraer el código fuente de la aplicación de los repositorios, crear y aprovisionar una imagen de contenedor en torno al código y configurar conexiones de red fuera de Kubernetes utilizando diferentes herramientas. La incorporación de contenedores gestionados por Kubernetes en una canalización automatizada de 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 dentro de 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, creando el contenedor y realizando 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 nube específico. Knative permite que cualquier contenedor se ejecute como una carga de trabajo sin servidor en cualquier clúster de Kubernetes, tanto si el contenedor se basa en una función sin servidor como en otro código de aplicación (por ejemplo, microservicios), al abstraer el código y gestionar el enrutamiento de la red, los activadores de eventos y el autoescalado.
Knative está basado en Kubernetes y añade tres componentes principales o principales: 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, entre ellos:
Knative utiliza las API de Kubernetes y otras herramientas para su proceso de Build. Un desarrollador puede crear un único manifiesto (normalmente un archivo YAML) que especifique todas las variables (la ubicación del código fuente, las dependencias necesarias y más) y Knative utiliza el manifiesto para automatizar la creación del contenedor.
El componente Serving implementa y ejecuta contenedores como servicios Knative escalables. Serving proporciona las siguientes capacidades esenciales:
Knative Serving toma prestado el enrutamiento inteligente de servicios de Istio, otra aplicación del ecosistema Kubernetes. Istio, una malla de servicios de código abierto para Kubernetes, también proporciona autenticación para solicitudes de servicio, cifrado automático del 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 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 que funcione. Knative también gestiona canales, que son colas de eventos que los desarrolladores pueden elegir, y el bus, una plataforma de mensajería que entrega eventos a los contenedores. También permite a los desarrolladores configurar fuentes, 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. Los eventos de Knative crean automáticamente la conexión con el productor de eventos y enrutan los eventos generados. No hay necesidad de averiguar cómo hacerlo mediante programación: Knative hace todo el trabajo.
En resumen, Knative admite varios casos de uso para los usuarios de Kubernetes que quieren simplificar el desarrollo de aplicaciones en contenedores o llevar el uso de los contenedores al siguiente nivel.
Racionalización de Kubernetes. Al eliminar las 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 Kubernetes es un candidato ideal para Knative.
Acelerar la transición hacia la tecnología sin servidor. Configurar y gestionar manualmente entornos sin servidor puede resultar desalentador. Knative permite a las organizaciones configurar cargas de trabajo sin servidor rápidamente. En lo que respecta a los desarrolladores, solo están construyendo un contenedor: es Knative quien lo ejecuta como una función sin servidor entre bastidores.
Soporte de los ciclos de vida ágiles y DevOps. Al permitir a los desarrolladores crear nuevos contenedores y versiones de contenedores más rápidamente, Knative facilita la implementación 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 canalizaciones automatizadas de CI/CD sin necesidad de software especial ni programación personalizada.
Suavizar la implementación de nuevas características. La implementación de nuevas versiones para los clientes puede exponer problemas de software que podrían afectar a los procesos empresariales. 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 solucionan problemas o vuelven rápidamente a versiones anteriores si es necesario.
Mantener a los desarrolladores centrados en la codificación y la innovación. DevOps podría permitir a los desarrolladores administrar 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 colas de bus de mensajes para activar eventos o gestionar la escalabilidad de contenedores. Knative permite a los desarrolladores dedicar más tiempo a hacer 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 e implementación rápida.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de consultoría de nube de IBM. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.