Jump to section

¿Por qué conviene ejecutar Apache Kafka en Kubernetes?

Copiar URL

La implementación de Apache Kafka en una plataforma de organización en contenedores como Kubernetes permite automatizar, ajustar e implementar las aplicaciones basadas en eventos en cualquier lugar. En resumen, Kubernetes mejora la flexibilidad propia de las aplicaciones basadas en Apache Kafka.

Cada vez más, la TI empresarial adopta los microservicios y los modelos de desarrollo directamente en la nube, lo cual genera 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 ideal para el desarrollo en la nube. Las aplicaciones propias de este entorno se basan en eventos, y esta plataforma es la herramienta ideal para gestionarlos. 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 que Apache Kafka en Kubernetes brindará notificaciones adaptables sin servidor, facilitará la comunicación entre los procesos y aportará claridad sobre las funciones sin servidor.

Pruebe Red Hat OpenShift Streams for Apache Kafka

Apache Kafka se suele implementar en el sistema de gestión de los contenedores de Kubernetes, el cual se utiliza para automatizar la implementación, la adaptación 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 tienen 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 la capacidad de los recursos con un comando sencillo, o bien ajustarlos de forma automática en función del uso, para aprovechar los recursos informáticos, de almacenamiento y de redes 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.

El uso manual de Apache Kafka es una tarea compleja que requiere la configuración detallada de varios elementos, pero también es sumamente difícil ejecutarla en un equipo con servidores dedicados (bare metal) 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 para 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 single sign-on (SSO), el cifrado y la autenticación, para que el desarrollador no pierda tiempo con las funciones básicas de seguridad.

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 magnitud y alto rendimiento, ya que la división propia de Apache Kafka permite abordar los requisitos de expansión.

Artículos relacionados

Artículo

¿Qué es la integración?

¿Desea saber qué es la integración? Obtenga información acerca de qué es, cómo incorporarla y por qué es mucho mejor con un enfoque open source.

Artículo

¿Qué es Apache Kafka?

Apache Kafka es una plataforma distribuida de transmisión de datos que permite publicar, almacenar y procesar flujos de registros, así como suscribirse a ellos, de forma inmediata.

Artículo

¿Qué es una API?

Una API o interfaz de programación de aplicaciones es un conjunto de definiciones y protocolos que se usa para diseñar e integrar el software de las aplicaciones.

Más información sobre la integración

Productos

Conjunto completo de tecnologías de integración y mensajería para conectar aplicaciones y datos a través de infraestructuras híbridas. Incluye Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, registro de datos modificados y un registro de servicios.

Conjunto de tecnologías de integración y tiempos de ejecución diseñados para ayudar a crear, implementar y operar aplicaciones de manera segura y a escala a través de la nube híbrida.

Conjunto de productos, herramientas y elementos que permiten desarrollar y mantener las aplicaciones directamente en la nube. Incluye Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, una compilación de OpenJDK de Red Hat, una compilación de Quarkus de Red Hat, un grupo de tiempos de ejecución de nube, Migration Toolkit for Applications, inicio de sesión único y un servicio para lanzamientos .

Los servicios de nube de Red Hat® incluyen aplicaciones, plataformas y servicios de datos alojados y gestionados que optimizan la experiencia en la nube híbrida reduciendo los costos operacionales y simplificando la entrega de aplicaciones nativas de la nube.

Contenido adicional

Ebook

Integración ágil: el plano técnico de la arquitectura empresarial

VISION GENERAL

Red Hat Cloud Services

Servicios gestionados para el desarrollo en la nube

Capacitación

Curso de capacitación gratuito

Red Hat Agile Integration Technical Overview