Iniciar sesión / Registrar Cuenta

Integración

¿Por qué conviene ejecutar Apache Kafka en Kubernetes?

Jump to section

La TI empresarial adopta cada vez más microservicios y modelos de desarrollo directamente en la nube, lo cual da lugar a los sistemas distribuidos con aplicaciones basadas en eventos (EDA). En este entorno dinámico de desarrollo, muchos líderes digitales optan por utilizar Apache Kafka y combinarlo con Kubernetes.

Con Apache Kafka, los usuarios pueden ver y analizar una empresa de inmediato, y reaccionar con rapidez ante los cambios que se producen en el mercado. Además, es una excelente opción para establecer y mantener la conectividad en tiempo real con las partes interesadas internas y los partners, los proveedores y los clientes externos.

Kafka Streams es una función de Apache Kafka que se puede agregar a cualquier aplicación, y permite procesar los flujos de eventos de Kafka de forma sencilla y potente. Lo que realmente distingue a Apache Kafka de las demás alternativas de mensajería es la posibilidad de procesar y analizar grandes cantidades de datos sobre la marcha, de forma constante y simultánea. La plataforma permite que los usuarios agreguen, transformen, enriquezcan y organicen eventos para su análisis directo e inmediato, sin tener que esperar a que una máquina de big data haga los cálculos. Por eso, es fundamental para todas las aplicaciones que necesitan respuestas urgentes a los datos en tiempo real.

Apache Kafka es la base perfecta para gestionar eventos, por lo que es ideal para el desarrollo de aplicaciones directamente en la nube, las cuales se basan en eventos. Permite utilizar las funciones esenciales basadas en ellos, como la transmisión distribuida, el procesamiento inmediato y un alto nivel de escalabilidad.

Con Apache Kafka, también puede acceder a la arquitectura sin servidor, la cual está un paso adelante del desarrollo nativo de la nube y también está basada en eventos. Los desarrolladores pueden confiar en Apache Kafka en Kubernetes para las notificaciones escalables sin servidor, las comunicaciones entre los procesos y la visibilidad de las funciones sin servidor.

¿Por qué conviene ejecutar Apache Kafka en Kubernetes?

Apache Kafka se suele implementar en el sistema de gestión de contenedores de Kubernetes, el cual se utiliza para automatizar la implementación, la escalabilidad y el funcionamiento de los contenedores en los clústeres de los hosts. Apache Kafka en Kubernetes va de la mano con el desarrollo nativo de la nube, la próxima generación en el diseño de aplicaciones. Se trata de servicios independientes, distribuidos y sin conexión directa que ofrecen una gran capacidad de expansión por medio de la nube. De la misma manera, las aplicaciones basadas en eventos y diseñadas a partir de Kafka no tienen conexión directa y pueden ampliarse en un entorno distribuido de nube híbrida.

Una de las principales ventajas para los equipos de operaciones que ejecutan Apache Kafka en Kubernetes es el aislamiento de la infraestructura, ya que una vez que se configura, se puede ejecutar en todas partes. Los equipos modernos suelen gestionar distintos conjuntos de recursos on premise y de nube, y Kubernetes les permite tratarlos como si fueran grupos de recursos informáticos a los que pueden asignarles los recursos de software, como Apache Kafka. Además, con esa misma capa de Kubernetes se puede gestionar todas las instancias de Apache Kafka con un solo entorno.

La escalabilidad propia de Kubernetes es un complemento natural de Apache Kafka. Gracias a Kubernetes, las aplicaciones pueden ampliar o reducir los recursos con un comando sencillo, o bien ajustarlos de forma automática en función del uso, para aprovechar los recursos de almacenamiento, redes e informática de la forma más rentable. También brinda portabilidad a Apache Kafka para que se pueda extender de forma local y en todas las nubes públicas, privadas o híbridas, y para que utilice diferentes sistemas operativos.

Strimzi logra que Apache Kafka funcione en Kubernetes

El uso de Apache Kafka de forma manual es una tarea compleja que requiere la configuración detallada de varios elementos, pero también es sumamente difícil ejecutarlo en un equipo sin sistema operativo o en una máquina virtual, así como implementar, supervisar, actualizar y restaurar los nodos.

Aquí es donde entra en juego el proyecto open source de Strimzi, el cual tiene como objetivo eliminar toda esta complejidad. Strimzi utiliza operadores para implementar las configuraciones de Apache Kafka de forma rápida y sencilla. Los operadores son una herramienta de última generación para implementar y gestionar las aplicaciones en Kubernetes, dado que aíslan la infraestructura, aportan flexibilidad al desarrollo y permiten implementar las aplicaciones sin tener mucha información sobre la infraestructura. Los desarrolladores no necesitan conocer los tecnicismos (p. ej., cuántas máquinas hay o qué tipo de hardware se utiliza), ya que los operadores implementan la infraestructura y gestionan todos los detalles de manera automática.

Strimzi ofrece las ventajas de la infraestructura como código (IaC): el desarrollador puede escribir un manual de instrucciones como código para definir la infraestructura, y Strimzi se encarga de ejecutarlas a la perfección. Incluso puede simplificar la difícil tarea de implementar Apache Kafka en los modos de alta disponibilidad.

Otra razón importante para ejecutar Strimzi es que aborda muchos de los problemas de seguridad de Apache Kafka. También automatiza la seguridad de Apache Kafka en Kubernetes por medio del inicio de sesión único, el cifrado y la autenticación, para que el desarrollador no pierda tiempo con las funciones básicas de seguridad.

Cómo encontrar las soluciones adecuadas de EDA

Red Hat AMQ Streams forma parte de Red Hat Integration y es una distribución empresarial de Apache Kafka y el proyecto Strimzi de Red Hat. Gran parte del valor adicional que AMQ Streams aporta a la plataforma se basa en el uso de Apache Kafka en Kubernetes, o en Red Hat OpenShift (la distribución de Kubernetes de Red Hat).

Red Hat AMQ Streams en OpenShift ofrece Apache Kafka en Kubernetes para habilitar las arquitecturas de nivel empresarial y basadas en eventos que respaldan los flujos de datos distribuidos y las aplicaciones basadas en microservicios de procesamiento de flujos. AMQ Streams resulta apropiada especialmente para los casos de gran escala y alto rendimiento, ya que la división propia de Apache Kafka permite abordar los requisitos de escalabilidad.

Integración con Red Hat

Red Hat le ofrece soluciones modulares, ligeras y completas de integración que utilizan la tecnología de open source y los estándares abiertos, y que están disponibles para la implementación local y en la nube.

Servicio de nube gestionada que ofrece una experiencia ágil para que los desarrolladores diseñen, implementen y adapten las aplicaciones directamente en la nube o para que modernicen los sistemas actuales.

Red Hat AMQ

AMQ Streams forma parte de Red Hat® AMQ y ofrece Apache Kafka en Red Hat OpenShift® Container Platform. AMQ Streams es una función de transmisión de datos escalable, distribuida y de alto rendimiento basada en el proyecto Apache Kafka, que se ejecuta en Kubernetes.

Red Hat Openshift

Desarrolle, implemente, gestione y amplíe las aplicaciones desarrolladas directamente en la nube con los contenedores, en una plataforma de contenedores. OpenShift puede coordinar todas esas aplicaciones de forma automática y trabajar con ofertas como AMQ, Fuse y 3scale API Management para brindar un enfoque de integración ágil a la nube.

Pruebe Red Hat OpenShift Streams for Apache Kafka