Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

Una guía rápida de Knative Serverless Framework para principiantes

Knative-Serverless-Framework-para-principiantes
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Los marcos sin servidor tienen demanda en los últimos años y han sido testigos de una mayor adopción entre los desarrolladores.

Sin embargo, las aplicaciones basadas en contenedores ya son populares, al igual que Kubernetes entre negocios.

Kubernetes, sin duda, es una gran herramienta con un buen potencial. Su ecosistema también está creciendo con una variedad de nuevas herramientas y las últimas tecnologías, como Knative, que tiene el poder de hacer que Kubernetes sea aún mejor. 

Knative se introdujo para superar situaciones que conducen al fracaso y establecer un estándar central para plataformas en la nube y nativos en la nube. orquestación

En otras palabras, el marco sin servidor de Knative puede adaptarse a las necesidades de una empresa mucho mejor que otras implementaciones sin servidor basadas en la nube. 

En esta guía, hablaré sobre Knative, sus beneficios, casos de uso, procedimiento de instalación, procedimiento de trabajo y más. 

Aquí vamos!

What Is Knative?

Knativo es un marco sin servidor basado en Kubernetes que fue desarrollado por primera vez por Google. Carga y ejecuta funciones sin servidor en función de los requisitos de una empresa, lo que minimiza el desperdicio. Es un proyecto de código abierto que agrega componentes para implementar, ejecutar y administrar aplicaciones sin servidor en Kubernetes. 

El propósito principal del Knative sin servidor framework es administrar los estándares para la orquestación multiplataforma. Esto se implementa integrando la función de creación de contenedores, escalado automático, modelos de eventos y gestión de cargas de trabajo. 

knative-sin servidor

Anteriormente, había una variedad de soluciones de código abierto además de Knative. Cada solución tiene su forma de implementación, lo que puede provocar la fragmentación del mercado ya que faltan prácticas estandarizadas. Esto significa que es necesario elegir un proveedor específico si desea una característica particular del sistema.

Sin embargo, los problemas de migración comenzaron a llegar al frente. Y para evitar tales problemas, se introdujo el marco sin servidor Knative. Entonces, si tiene dificultades para incorporar alguna tarea, Knative puede hacerlo de manera eficiente dentro de la canalización basada en Kubernetes.

Knative tiene tres piezas:

  • Construcción nativa: Construye imágenes de contenedor y las pone a disposición desde el código fuente. 
  • Porción nativa: Utiliza Istio y Kubernetes para conectar e implementar estos envase imágenes a través de los recursos de infraestructura asignados. 
  • Concurso completo nativo: Permite a los usuarios definir los activadores de eventos y asociar los activadores de eventos con funciones en contenedores.

Cada vez que Knative identifica un evento, define el proceso asociado para ejecutarlo bajo demanda. Con Knative, no es necesario asignar nodos, clústeres y pods de contenedores para el trabajo, ya que Knative se compromete hosting recursos sólo cuando se ejecuta un proceso dado. De esta forma, Knative equilibra los beneficios del servidor y del contenedor. 

Core Concepts of Knative

Analicemos los conceptos principales de Knative Serverless Framework y cómo se relacionan con las primitivas de Knative.

Tipo de Cuerpo

La construcción de Knative ayuda a utilizar y ampliar las primitivas de Kubernetes existentes, lo que le permite ejecutar construcciones de contenedores desde el origen. Habilita el código fuente de las dependencias y el repositorio, construyendo imágenes de contenedores y registrándolas. 

Eventos

Eventos

El evento lo ayuda a crear una mejor comunicación entre los consumidores y productores de eventos poco acoplados para construir la arquitectura basada en eventos. Knative pone estos eventos en una cola que debía ejecutarse automáticamente sin el script de los desarrolladores. 

Posteriormente, estos eventos se entregan a los contenedores. Luego envía feeds a los productores de eventos para realizar tareas. Esto reducirá la carga de trabajo del desarrollador en la creación de código para el establecimiento de la conexión. 

clave

Una función es una unidad de implementación independiente y un servicio de servicio de Knative, como un microservicio. Su código está escrito para realizar una sola tarea, como por ejemplo:

  • Procesamiento de un archivo en una base de datos
  • Guardar un usuario en una base de datos
  • Realización de un trabajo programado

El marco sin servidor de Knative está diseñado para permitirle desarrollar e implementar funciones de manera efectiva y administrarlas. 

Plugins

plugins

Amplíe o sobrescriba fácilmente la funcionalidad del marco sin servidor de Knative mediante complementos. Cada sin servidor.yml El archivo contiene una propiedad de complemento que presenta varios complementos. 

Recursos

Los recursos son los componentes de la infraestructura sin servidor de Knative que usa su función, incluidos:

  • Fuente de eventos de AWS SQS
  • Una tarea programada (ejecutar cada 5 minutos, 10 minutos, etc.)
  • A Kafka origen del evento

Y más. 

Servicios

Los servicios son como un proyecto. Por lo tanto, un servicio es la unidad de organización del marco sin servidor de Knative. Aunque puede tener muchos servicios para una aplicación, puede pensar en el servicio como un archivo de proyecto. 

Es donde podrá definir las funciones, eventos y recursos, todo en un solo archivo titulado sin servidor.yml, sin servidor.jsono sin servidor.js. Cuando implementa los servicios con el marco sin servidor, todo en el archivo se implementa a la vez. 

Entregando a

sirve

Knative-serving está integrado en Istio y Kubernetes que admite la implementación de aplicaciones. Permite el desarrollo rápido de contenedores sin servidor, programación de red y escalado automático para componentes de Istio. Knative-serving considera los contenedores como un servicio escalable que puede abarcar desde una instancia hasta muchas instancias de contenedores. 

Features of Knative

caracteristicas deknative

Analicemos algunas de las características del marco sin servidor de Knative:

  • Knative es un marco sin servidor basado en Kubernetes que le permite implementar servicios en Kubernetes. 
  • Integra fácilmente Knative con el entorno compatible
  • Los desarrolladores pueden usar directamente la API de Kubernetes con la ayuda de Knative para implementar servicios sin servidor
  • Permite a los usuarios activar servicios sin servidor con la ayuda del sistema de eventos de Knative

How Does Knative Work?

El marco sin servidor de Knative funciona como un segmento de dirección de eventos y se conecta Istio y Kubernetes. Kubernetes funciona como orquestador de microservicios y contenedores. Istio, por otro lado, es una tecnología de malla de código abierto que reúne varios componentes para interactuar con el usuario y ellos mismos. 

Knative brinda a los usuarios múltiples componentes destinados a realizar el trabajo diario básico. Estos componentes se utilizan una y otra vez en una variedad de aplicaciones. Un desarrollador puede usar cualquier lenguaje de programación. Por lo tanto, no necesita conocimientos específicos de idiomas, ya que Knative solo reconoce imágenes de contenedores. 

Hay tres componentes del marco sin servidor de Knative que son la clave para su funcionamiento. 

Construcción de nuevos contenedores

build

El componente de construcción es responsable de construir nuevos contenedores. Puede convertir códigos fuente a un contenedor. Knative se puede configurar para satisfacer las necesidades específicas de la empresa.

Primero, Knative extrae el código fuente de la biblioteca como Github. Luego, se agregan dependencias subyacentes para que el código se ejecute de manera efectiva. Luego, las imágenes de contenedor se construyen y se colocan en archivos a los que puede acceder la plataforma Kubernetes. 

El contenedor está disponible para los desarrolladores que utilizan Kubernetes y Knative. Por lo tanto, los contenedores se construyen siempre que se conozca el origen del código. 

Servir o ejecutar la plataforma

El componente de servicio es responsable del funcionamiento de la plataforma. Implica:

  • Configuración: La configuración es segura en la gestión de múltiples versiones del servicio. Cada vez que se implementa la nueva característica de un contenedor, Knative guarda la versión existente y crea una nueva con los últimos cambios y características. Además, Knative define el estado de un servicio.
  • Escalado automático: Para que los contenedores sin servidor funcionen mejor, debe ser capaz de escalar automáticamente los contenedores hacia arriba o hacia abajo. Knative puede escalar automáticamente los servicios a muchos si es necesario.
  • Enrutamiento de servicio inteligente: Es una parte importante del mecanismo de trabajo de Knative. Permite a los desarrolladores dirigir el flujo y la cantidad de tráfico a diferentes versiones existentes de los microservicios. Mientras se introducen nuevas funciones y estrategias de implementación azul-verde, se puede utilizar el enrutamiento de servicio inteligente. 

Le permite exponer a una fracción de usuarios a la prueba y versión recientes y gradualmente enrutar un gran tráfico a la nueva versión. 

Eventos para definir funciones

evolutivo

El componente de eventos de Knative es responsable de describir la función de Knative. Permite definir el funcionamiento de los contenedores en base a eventos. Diferentes eventos desencadenan funciones específicas de contenedores. 

Los desarrolladores pueden definir los activadores de eventos y los contenedores asociados para permitir que Knative haga su trabajo. Knative maneja la lista de eventos y la entrega de los eventos. 

Benefits of Knative

Knative proporciona servicios como gestión de rutas, lanzamiento por fases y conexión de servicios. Cuenta con una gran comunidad. Analicemos cómo Knative influye en las empresas para que adopten esta tecnología.

  • A diferencia de otras soluciones, Knative tiene eventos estándar y es compatible con la solución FaaS. Ofrece un marco estándar de CloudEvent que ayuda a diseñar una arquitectura sin servidor. 
  • Aunque Knative no es un PaaS, le permite crear una PaaS sin servidor con la plataforma de orquestación sin servidor. 
  • Knative tiene un diseño sin servidor completo y maduro.
  • Es compatible con varias plataformas y le brinda un estándar universal entre los proveedores de la nube para eliminar la posibilidad de vincular a los proveedores con una solución específica.
plataforma cruzada
  • Knative proporciona un marco flexible.
  • Es compatible con lanzamientos graduales proporcionales. 
  • Puede experimentar el ecosistema sin servidor dentro de un entorno en contenedores.
  • Knative elimina la confiabilidad en la gestión y las herramientas. 
  • Puede migrar rápidamente a otros proveedores de la nube que estén integrados con Knative mediante la implementación de Kubernetes. 
  • Ofrece un modelo informático basado en solicitudes.
  • Te permite gestionar workflows como servicio.
  • Con Knative, puede procesar IoT datos, ejecutar comprobaciones de accesibilidad y validar configuraciones de sus grupos de seguridad. 
  • Permite a los desarrolladores centrarse en la codificación y les permite crear código iterativo rápidamente. 
  • Asegura que los desarrolladores incorporarán nuevas versiones.
  • El modelo basado en eventos de Knative ayuda a implementar diseños, incluida la suscripción, la conexión al sistema externo y el registro. 

Challenges of Knative (and Some Solutions)

Desafíos de eficiencia

Un marco Knative que admita aplicaciones adecuadas proporciona un mejor rendimiento a un costo mínimo. Sin embargo, una combinación inadecuada de aplicaciones puede resultar en costos más altos y recursos de contenedores infrautilizados. Esto podría conducir a un mal rendimiento de la aplicación, que es el mayor desafío de la implementación sin servidor de Knative. 

Eficiencia-Desafíos

Por lo tanto, un grupo de recursos de tamaño deficiente o aplicaciones incorrectas pueden destruir muchos beneficios de Knative. 

Puede superar este desafío realizando pruebas para verificar las cantidades de recursos y la combinación de aplicaciones en Knative. Mida las cargas de eventos dimensionando las cargas promedio y máximas para cada uno y calcule el consumo total de recursos. Repita esto para varias aplicaciones para crear y ejecutar una configuración de prueba para validar las estimaciones.

Desafíos funcionales

Los desafíos funcionales de Knative podrían ser:

  • Knative depende de las funciones que se ajustan a un modelo sin estado. Esto significa que no se almacenan datos en el propio componente. El desarrollo de las funciones no es una fase difícil, pero requiere un ligero cambio en el enfoque, lo que significa que un solo error puede arruinar el rendimiento del software. 
  • Los datos comerciales consisten en transacciones de varios pasos, y las funciones sin estado mantienen el contexto en todos los pasos. Knative no tiene la capacidad que tienen las herramientas sin servidor de la nube pública. 

El monitoreo regular y la solución de problemas pueden ayudarlo a mantener su rendimiento en puntajes decentes.

Desafíos operativos

Desafíos Operacionales

En comparación con las ofertas sin servidor en una nube pública, Knative presenta un desafío operativo. Los administradores no controlan los servidores subyacentes con la nube pública. Pero necesitarán administrar servidores junto con Kubernetes, contenedores, Knative e Istio. 

Knative amplía mínimamente la complejidad de las operaciones y el desarrollo para las empresas que ya se han comprometido con Kubernetes y contenedores. Aquellos comprometidos con la malla de servicios y los microservicios encontrarán en Knative una extensión natural.

Use Cases of Knative

usecasesofknative

Para las aplicaciones que dan lugar a un número variable de eventos que se mantienen dentro o por encima de los límites de tiempo establecidos, Knative es lo mejor para ellas. Los casos de uso específicos del marco sin servidor de Knative incluyen:

La orientación al evento es fundamental. Si los equipos de TI no pueden imaginar una aplicación como una serie de eventos en lugar de transacciones, Knative puede no ser una buena opción por razones funcionales y de eficiencia. 

Prerequisites and Installation of Knative

Como vemos en las secciones anteriores, Knative es un conjunto de componentes, como eventos y servicio, que se ejecuta en una red de servicios y en un clúster de orquestación de cargas de trabajo. Hay utilidades de línea de comandos que necesitamos instalar para una operación sencilla. Por lo tanto, necesitamos algunas dependencias para garantizar que podamos continuar con la instalación. 

Requisitos previos

Requisitos previos

Hay varias opciones para instalar Kubernetes. Docker Desktop viene para habilitar un clúster de Kubernetes fácil que sirve para varios propósitos. El enfoque simple es usar Kubernetes en Docker para ejecutar el clúster de Kubernetes junto con los nodos de contenedor de Docker. La forma conveniente de trabajar con el clúster es usar la herramienta de línea de comandos Knative. 

La CLI de Knative ofrece una interfaz fácil y rápida para crear sus recursos. Ayuda en tareas complejas como la división del tráfico y el escalado automático. La forma conveniente es descargar el binario compatible desde el Página de GitHub

INSTALACIÓN

Una vez que tengamos todos los requisitos previos, podemos proceder a instalar los componentes. Para el entorno de desarrollo, hay un complemento de inicio rápido. El complemento ayuda a instalar un clúster Knative local utilizando el cliente Knative. Puede descargar el complemento de inicio rápido desde la página de lanzamiento oficial. 

Conclusión: el futuro de Knative

Knative ha reemplazado la computación sin servidor al proporcionar escalado automático de aplicaciones. Tiene un impacto significativo en el sistema interoperable y modular.

En el futuro, se espera que Knative cubra las deficiencias actuales y se convierta en una de las tecnologías más eficientes para ejecutar la arquitectura sin servidor. 

La tecnología Knative es más influyente para los desarrolladores al observar sus beneficios sobre las alternativas sin servidor. Knative lo ayudará a ahorrar mucho tiempo al reemplazar la necesidad de construir y mantener las extensiones de Kubernetes. Los desarrolladores están muy contentos con la tecnología Knative, ya que es fácil de usar y una gran alternativa a soluciones sin servidor.

Por lo tanto, si desea maximizar el poder de la Entorno de Kubernetes en tu nube workflows, adopte la tecnología Knative y sea testigo de los beneficios usted mismo.

Gracias a nuestros patrocinadores
Más lecturas excelentes sobre computación en la nube
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder