Integración

¿Qué es Apache Kafka?

Apache Kafka es una plataforma distribuida de transmisión de datos que permite publicar, almacenar y procesar flujos de registros, y suscribirse a ellos, en tiempo real. Está diseñada para manejar flujos de datos de varias fuentes y distribuirlos a los diversos usuarios. En resumen, transfiere cantidades enormes de datos, no solo desde el punto A hasta el B, sino también del punto A al Z y a cualquier otro lugar que necesite, y todo al mismo tiempo.

Apache Kafka es la alternativa a un sistema de mensajería empresarial tradicional. Comenzó como un sistema interno que LinkedIn desarrolló para manejar 1.4 billones de mensajes por día. Ahora, es una solución open source de transmisión de datos con aplicaciones para diversas necesidades empresariales.


Integración asíncrona con Apache Kafka

Los microservicios han cambiado el panorama del desarrollo. Al reducir las dependencias, como los niveles de bases de datos compartidas, estos permiten que los desarrolladores sean más ágiles. No obstante, las aplicaciones distribuidas que diseñan sus desarrolladores aún necesitan algún tipo de integración para compartir datos. Una opción de integración popular, conocida como el método síncrono, utiliza interfaces de programación de aplicaciones (API) para compartir datos entre los diferentes usuarios.

Otra opción de integración, el método asíncrono, implica replicar datos en un almacén intermedio. Aquí es donde Apache Kafka entra en acción, una plataforma que transmite datos desde otros equipos de desarrollo para rellenar el almacén de datos, de modo que estos se puedan compartir entre varios equipos y sus aplicaciones.

Los equipos de microservicios tienen requisitos de integración distintos de los equipos tradicionales de desarrollo en cascada. Estos equipos requieren tres capacidades fundamentales:

  1. Integraciones distribuidas: integraciones ligeras basadas en patrones que se pueden implementar de forma continua cuando sea necesario y que no están limitadas por las implementaciones centralizadas del tipo ESB.
  2. API: servicios basados en las API para promover un ecosistema de partners, clientes y desarrolladores que pueden ofrecer un uso confiable y rentable de los servicios.
  3. Contenedores: plataforma diseñada para desarrollar, gestionar y expandir aplicaciones conectadas y nativas de la nube. Los contenedores permiten el desarrollo de artefactos eficaces que se pueden implementar de forma individual, que forman parte de los procesos de DevOps y que son compatibles con la agrupación en clústeres lista para usar, lo cual garantiza su alta disponibilidad.

Red Hat denomina a este enfoque "integración ágil", que permite que las integraciones formen parte de los procesos de desarrollo de las aplicaciones, lo cual proporciona mayor agilidad y soluciones adaptables. Parte de la integración ágil es la libertad de utilizar la integración síncrona o asíncrona, según las necesidades específicas de la aplicación. Apache Kafka es una excelente opción al momento de utilizar la integración asíncrona basada en eventos para aumentar el uso de la integración síncrona y las API, además de admitir microservicios y permitir la integración ágil. De esta manera, Apache Kafka puede ser un componente importante de su iniciativa para optimizar el proceso de desarrollo, impulsar la innovación, ahorrar tiempo y, en última instancia, acelerar la comercialización de sus funciones, aplicaciones y servicios nuevos.


Cuándo utilizar Apache Kafka

Apache Kafka está integrado en canales de transmisión de datos que comparten datos entre los sistemas o las aplicaciones, así como también en los sistemas y las aplicaciones que consumen esos datos. Apache Kafka admite una variedad de casos prácticos, donde la alta productividad y escalabilidad son fundamentales. Dado que Apache Kafka minimiza la necesidad de contar con integraciones de punto a punto para el intercambio de datos en ciertas aplicaciones, puede reducir la latencia a milisegundos. Esto significa que los datos están disponibles para los usuarios en menos tiempo, lo cual puede ser una ventaja en los casos prácticos que requieren disponibilidad de datos en tiempo real, como las operaciones de TI y el comercio electrónico.

Apache Kafka puede manejar millones de puntos de datos por segundo, lo cual lo hace ideal para los desafíos del big data. Sin embargo, Kafka también es importante para las empresas que no manejan escenarios de datos tan extremos en la actualidad. En muchos casos prácticos de procesamiento de datos, como el Internet de las cosas (IoT) y las redes sociales, los datos aumentan de manera exponencial y pueden sobrecargar rápidamente una aplicación diseñada en función del volumen de datos actual. En cuanto al procesamiento de datos, debe tener en cuenta la escalabilidad, lo cual implica planificar la creciente proliferación de datos.

Operaciones de TI

Las operaciones de TI se basan en los datos. Necesitan poder acceder a ellos y de forma rápida. Esta es la única forma de mantener el funcionamiento de los sitios web, las aplicaciones y los sistemas en todo momento. Apache Kafka es una buena opción para las funciones de las operaciones de TI que se basan en la recopilación de datos de una variedad de fuentes, como el monitoreo, las alertas y los informes; en la gestión de registros; y en el seguimiento de la actividad de sitios web.

Internet de las cosas

Según Gartner, se espera que IoT incluya más de 20 mil millones de dispositivos para el año 2020. El valor de IoT corresponde a los datos procesables generados por esta gran cantidad de sensores. Apache Kafka está diseñado con miras a la escalabilidad, para hacer frente a la enorme cantidad de datos que se espera de IoT.

Comercio electrónico

El comercio electrónico es una oportunidad cada vez mayor para utilizar Apache Kafka, que puede procesar datos como la cantidad de clics, los "Me gusta", las búsquedas, los pedidos, los carritos de compras y el inventario de las páginas.


De qué forma Kubernetes expande las aplicaciones de Apache Kafka

Kubernetes es la plataforma ideal para Apache Kafka. Los desarrolladores necesitan una plataforma escalable para alojar las aplicaciones de Kafka, y Kubernetes es la solución.

Al igual que Apache Kafka, Kubernetes también agiliza el proceso de desarrollo. Kubernetes, la tecnología de los servicios en la nube de Google, es un sistema open source diseñado para gestionar las aplicaciones en contenedores y eliminar muchos de los procesos manuales relacionados con ellos. Al utilizar Apache Kafka en Kubernetes, se optimiza la implementación, la configuración, la gestión y el uso de Apache Kafka.

Al combinarlos a ambos, obtiene todos los beneficios de Kafka y las ventajas de Kubernetes: escalabilidad, alta disponibilidad, portabilidad y facilidad de implementación.

La escalabilidad de Kubernetes es un complemento natural de Kafka. En Kubernetes, puede expandir y reducir los recursos con un comando simple, o bien expandirlos de forma automática en función del uso según sea necesario para aprovechar al máximo la infraestructura de almacenamiento, conexión de redes y computación. Esta capacidad permite a Apache Kafka compartir con otras aplicaciones un conjunto limitado de recursos. Kubernetes también ofrece la portabilidad de Apache Kafka en todos los proveedores de infraestructura y los sistemas operativos. Con Kubernetes, los clústeres de Apache Kafka pueden extenderse de forma local y en todas las nubes públicas, privadas o híbridas y utilizar diferentes sistemas operativos.

Intégrese con Red Hat

Red Hat le ofrece soluciones de integración modulares, ligeras y completas que utilizan la tecnología open source y estándares abiertos, y que está disponible tanto de forma local como en la nube.

Mensajería

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

Plataformas de contenedores

Desarrolle, implemente, gestione y amplíe las aplicaciones nativas de la nube con contenedores mediante 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.

Continúe explorando la integración con Red Hat