Descripción general
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.
La TI empresarial adopta cada vez más 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, proveedores y 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, mejoren 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 flexibilidad.
Con Apache Kafka, también puede acceder a la arquitectura sin servidor, la cual está un paso adelante del desarrollo en 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.
¿Por qué conviene ejecutar Apache Kafka en Kubernetes?
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 en la nube, la tecnología de vanguardia en 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 de nube y en las instalaciones, 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, gracias esa misma capa de Kubernetes, se pueden gestionar todas las instancias de Apache Kafka con un solo entorno.
La capacidad de ajuste 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.
Recursos de Red Hat
Strimzi logra que Apache Kafka funcione en Kubernetes
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., la cantidad de máquinas o el tipo de hardware que 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 de la función Single Sign-On (SSO), el cifrado y la autenticación, para que el desarrollador no pierda tiempo con las funciones básicas de seguridad.
Las soluciones adecuadas de EDA
Streams for Apache Kafka 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 Apache Kafka 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).
Streams for Apache Kafka 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. Además, 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.
Blogs de Red Hat
Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.