Cuándo y cuándo No usar Apache Cassandra, Kafka, Spark y Elasticsearch de Código abierto

Casi todas las decisiones de tecnología deben cumplir dos criterios esenciales: debe permitirle cumplir con sus objetivos de negocio y debe funcionar bien junto con el resto de su pila de tecnología. Cuando se trata de seleccionar tecnologías de capa de datos para desarrollar la arquitectura de su aplicación, Apache Cassandra, Apache Kafka, Apache Spark y Elasticsearch de código abierto siguen creciendo en popularidad.

Sin embargo, no son la opción correcta para todos los casos de uso.

Echemos un vistazo más profundo a cada una de estas tecnologías y a algunos de los casos de uso que son, y no son, aplicaciones ventajosas de estas soluciones de código abierto.

Apache Cassandra

Creado originalmente por Facebook en 2007, Cassandra utiliza una arquitectura Dinamo y un modelo de datos de estilo Bigtable para proporcionar un almacén de datos NoSQL que ofrece alta disponibilidad y alta escalabilidad.

Cuando debería usar Apache Cassandra

Cassandra es una opción ideal para casos de uso que requieren los niveles más altos de disponibilidad siempre activa. La base de datos también es particularmente adecuada para servir a organizaciones que anticipan cargas de trabajo masivas o que desean garantizar que sus servicios puedan crecer de manera flexible a medida que se expanden las cargas de trabajo (y, por lo tanto, necesitan la fácil escalabilidad que proporciona Cassandra). Cassandra ofrece redundancia de datos confiable y operaciones activo-activo en múltiples centros de datos.

Cuando no debería

Cassandra consume más recursos que las alternativas cuando se encarga del almacenamiento de datos o del almacenamiento de análisis puro (incluso teniendo en cuenta el uso de conectores Spark disponibles y complementos de Tableau y Hadoop). Cassandra también es poco adecuada para el análisis en tiempo real, especialmente en forma de consultas ad hoc o personalizadas del usuario final, porque la necesidad de implementar código en el lado de la aplicación puede volverse complicada. Además, Cassandra no cumple con la mayoría de los requisitos de ÁCIDO.

Apache Kafka

Creado por primera vez por el equipo técnico de LinkedIn, Apache Kafka proporciona una plataforma de transmisión y un bus de mensajes altamente escalables y disponibles. Kafka funciona como un registro distribuido, en el que los mensajes recién llegados se agregan al encabezado de una cola y los lectores (consumidores) los consumirán en función de un desplazamiento.

Cuándo debe usar Apache Kafka

Apache Kafka es generalmente una opción inteligente para casos de uso que involucran microservicios y arquitectura orientada a servicios. Kafka también puede servir como una cola de trabajo altamente efectiva que puede coordinar rutas de trabajo separadas, reservando potencia de cálculo escuchando y esperando hasta que llegue el trabajo. Las capacidades de procesamiento de flujos de la plataforma son útiles para la detección de anomalías, roll-ups y agregaciones, así como para pasar métricas. Kafka también es una opción de gran capacidad para el abastecimiento de eventos, la conciliación de datos entre varios microservicios y para proporcionar un registro de confirmaciones externo para sistemas distribuidos. Otros casos de uso adecuados incluyen agregación de registros, enmascaramiento y filtrado de datos, enriquecimiento de datos y detección de fraudes.

Cuando no debería

Aunque puede ser tentador en algunos casos, puede ser desaconsejable usar Kafka como base de datos o fuente de registro, al menos sin una comprensión muy sólida de las limitaciones y propiedades de Kafka para este caso de uso. Una verdadera base de datos casi siempre será más fácil de operar y más flexible. Kafka es una opción igualmente inapropiada para el procesamiento de pedidos en todo un tema. En cualquier caso de uso en el que el objetivo sea avanzar rápidamente los paquetes de datos hasta la fuente final, como audio y vídeo en tiempo real u otros flujos de datos con pérdida, las organizaciones deben usar soluciones diseñadas específicamente en lugar de Kafka.

Apache Spark

Un marco de computación de clúster de propósito general adecuado para casos de uso que involucran grandes volúmenes de datos, Apache Spark divide los datos y ejecuta la computación en esos segmentos, de modo que los trabajadores realizan todo el trabajo posible hasta que requieren datos de otros trabajadores. Este diseño le da a Spark una gran escalabilidad y disponibilidad, a la vez que lo hace altamente resistente contra la pérdida de datos.

Cuando debería usar Apache Spark

Spark se presta a casos de uso que involucran análisis a gran escala, especialmente en los casos en que los datos llegan a través de múltiples fuentes. Spark es una solución potente para ETL o cualquier caso de uso que incluya el movimiento de datos entre sistemas, ya sea cuando se usa para llenar continuamente un almacén de datos o un lago de datos de almacenes de datos transaccionales, o en escenarios únicos como migraciones de bases de datos o sistemas. Las organizaciones que crean canalizaciones de aprendizaje automático sobre datos existentes, trabajan con streaming de alta latencia o realizan análisis interactivos, ad hoc o exploratorios encontrarán en Spark un ajuste sólido. Spark también se presta para ayudar a las organizaciones a satisfacer sus necesidades de cumplimiento al ofrecer enmascaramiento de datos, filtrado de datos y auditoría de grandes conjuntos de datos desde una perspectiva de cumplimiento.

Cuando no deberías

En general, Spark no será la mejor opción para casos de uso que impliquen procesamiento en tiempo real o de baja latencia. (Apache Kafka u otras tecnologías ofrecen una latencia superior de extremo a extremo para estas necesidades, incluido el procesamiento de flujos en tiempo real.) Cuando se trabaja con conjuntos de datos pequeños o individuales, la mayoría de las veces Spark es una opción demasiado excesiva. Además, cuando se trata de almacenamiento de datos y lagos de datos, es mejor usar una tecnología de nivel superior en lugar de Apache Spark, aunque existen productos de este tipo para Spark.

Elasticsearch

Elasticsearch ofrece un motor de búsqueda de texto completo que ofrece una amplia gama de funciones para buscar y analizar datos no estructurados. La tecnología ofrece búsqueda lineal escalable en tiempo casi real, proporciona un reemplazo sólido de búsqueda directa y capacidades de análisis significativas.

Cuándo debe usar Elasticsearch

Elasticsearch es muy adecuado para casos de uso que requieren búsqueda de texto completo, búsqueda geográfica, extracción y combinación de datos públicos, registro y análisis de registros, visualizaciones y datos y métricas de eventos de pequeño volumen.

Cuando no se debe

Elasticsearch no se debe usar como base de datos o fuente de registro, con datos relacionales o para cumplir con los requisitos de ACID.

Seleccionar tecnologías complementarias

Elegir la mejor combinación de tecnologías para su organización (ya sea de código abierto o de otro tipo) obviamente implica más que solo evaluar las soluciones en sí: los tomadores de decisiones también deben imaginar cómo la organización adoptará y utilizará cada solución como parte de su pila de tecnología. Apache Cassandra, Apache Kafka, Apache Spark y Elasticsearch ofrecen un conjunto de tecnologías particularmente complementarias que tienen sentido para que las organizaciones las utilicen juntas, y que ofrecen libertad de tarifas de licencia o de bloqueo de proveedores gracias a su naturaleza de código abierto. Al combinar estas tecnologías y darse cuenta de sus ventajas, las organizaciones pueden alcanzar sus objetivos y permitir el desarrollo de aplicaciones altamente escalables, disponibles, portátiles y resistentes.

Ben Slater es el Director de Productos de Instaclustr, que proporciona una plataforma de servicios gestionados de tecnologías de código abierto como Apache Cassandra, Apache Spark, Elasticsearch y Apache Kafka.

Artículos relacionados:

Esto Es Lo Que Doug Cutting Dice Que Es La Mayor Contribución De Hadoop

Una Década Después, Apache Spark Sigue Siendo Fuerte

Deja una respuesta

Tu dirección de correo electrónico no será publicada.