¡Deshazte de la base de datos y usa Kafka en su lugar!

Las bases de datos han servido durante mucho tiempo como sistemas de registro, ganándose la confianza de la mayoría de las empresas para almacenar y gestionar datos críticos de manera confiable y duradera.

Pero los tiempos están cambiando. Muchas tendencias emergentes están impactando la forma en que se almacenan y administran los datos hoy en día, lo que obliga a algunos tomadores de decisiones tecnológicas a reconsiderar qué innovaciones existen en el almacenamiento de datos. Quizás las bases de datos relacionales estén empezando a quedar obsoletas.

Este artículo le proporciona una nueva forma de utilizar un sistema de grabación "listo para usar": por qué las organizaciones deben pensar de manera diferente sobre el almacenamiento de datos, los beneficios de usar Kafka como sistema de grabación y cuáles son las buenas ideas de implementación, etc. Inspírenlos chicos.

1. Reemplazar la base de datos relacional con Kafka

KOR Financial es una startup de servicios financieros, ¿por qué eligieron Kafka en lugar de depender de una base de datos relacional para almacenar datos? Andreas, director de tecnología de la empresa, trabajó alguna vez para Pivotal Software y VMware y ha liderado la práctica de arquitectura de transformación de aplicaciones a escala global. ¿Cuál es el misterio de su decisión?

Permítanme hablar primero de los resultados. Utilizando la solución Kafka, es posible "almacenar de forma rentable y segura decenas o incluso cientos de petabytes de datos y conservarlos durante décadas". Andreas dijo: "Usar este método no sólo proporciona gran flexibilidad para la arquitectura de datos y la escalabilidad, al mismo tiempo que permite operaciones ágiles y eficientes”.

 

2. Romper moldes: las bases de datos no están diseñadas para escalar

¡Los tiempos han cambiado! En la era de la transformación digital, la toma de decisiones basada en datos requiere que las empresas tengan una arquitectura de datos moderna y flexible. Para realizar una arquitectura de este tipo, la clave del éxito radica en si el almacenamiento de datos puede ser potente, confiable y flexible.

Es cierto que también hemos visto el auge del big data, los sistemas distribuidos, la computación en la nube y el procesamiento de datos en tiempo real en las últimas dos décadas, pero la base de datos tradicional se ha convertido en un cuello de botella, incapaz de seguir el ritmo y la cantidad de datos generados por segundo.

En primer lugar, se debe a que las bases de datos no están diseñadas para escalar. Su estructura rígida inherente sólo obstaculiza la flexibilidad requerida por las arquitecturas de datos empresariales.

Como operador de repositorios financieros y comerciales que prestan servicios a corporaciones globales, así como de servicios modulares complementarios, el nivel de procesamiento de datos es comparable al purgatorio. El enfoque innovador de KOR Financial hacia el flujo de datos primero es lo que lo diferencia de sus competidores. "Objetivo: revolucionar la forma en que los mercados de derivados y los reguladores globales piensan sobre los informes comerciales, la gestión de datos y el cumplimiento".

Tomar a Kafka como núcleo de la arquitectura es un cambio "cualitativo" en la forma de pensar: porque esta arquitectura puede capturar eventos en lugar de sólo estados. "Almacenar datos en Kafka en lugar de una base de datos y usarlos como sistema de registro hace posible rastrear todos estos eventos, procesarlos y crear vistas materializadas de los datos basadas en casos de uso actuales o futuros".

Si bien otros registros comerciales y proveedores de servicios de corretaje suelen utilizar bases de datos como Oracle Exadata para sus necesidades de almacenamiento de datos, esto puede resultar costoso y presentar desafíos en la gestión de datos. Si bien permite la ejecución de consultas SQL, el desafío es administrar grandes bases de datos SQL y garantizar la coherencia de los datos dentro de estos sistemas.

Estar en el negocio global de informes comerciales obligatorios significa prestar servicios a múltiples jurisdicciones, cada una con sus propios modelos e interpretaciones de datos únicos. La tarea de la gestión unificada se vuelve cada vez más compleja cuando todos los datos se consolidan en un único esquema o modelo. La evolución del esquema es un desafío sin una descripción histórica de los datos, ya que se materializan en una versión específica del estado, lo que exacerba aún más el dilema de la gestión de datos.

Además, la escalabilidad de las bases de datos tradicionales es limitada cuando se trata de grandes cantidades de datos. Por el contrario, usar Confluence Cloud con Kafka y su almacenamiento ilimitado permite a los usuarios almacenar tantos datos como quieran en Kafka, durante el tiempo que sea necesario, y solo pagar por el almacenamiento que utilizan.

Si bien se tiene en cuenta la cantidad de particiones, la cantidad de datos que se pueden colocar en Confluence Cloud es ilimitada y el espacio de almacenamiento crece automáticamente según sea necesario con un tiempo de retención ilimitado.

Permite a los tecnólogos abstraer por completo cómo se almacenan los datos bajo el capó y proporciona una forma rentable de conservarlos todos. Aún mejor, esto permite a las empresas ampliar sus operaciones sin restricciones e interpretar los eventos en cualquier representación que deseen, con un alto grado de libertad.

3. Kafka que estará activo: reproducir eventos, reproducir datos

Una de las ventajas importantes de utilizar Kafka como sistema de registro es su capacidad para reproducir datos, una capacidad nativa de la que carecen las bases de datos tradicionales. Para escenarios financieros, esta característica encaja bien con la preferencia de "eventos y estado de la tienda", lo cual es fundamental para un cálculo preciso del estado de la transacción.

"Recibimos un montón de deltas (incrementos), que llamamos confirmaciones o mensajes, que contribuyen al estado de la transacción en un momento determinado. Cada mensaje o evento entrante modifica la transacción y cambia su estado actual. Si hay algún error ocurre durante nuestra lógica de procesamiento de flujo, puede resultar en una salida de estado incorrecta".

Si esa información se almacenara directamente en una representación fija o en una base de datos tradicional, los eventos que llevaron a ese estado se perderían. Incluso si la interpretación de estos acontecimientos es incorrecta, no se puede revisar el contexto que llevó a esa interpretación.

Sin embargo, al preservar el orden histórico de los eventos en un registro inmutable y de solo agregar, Kafka brinda la capacidad de reproducir esos eventos.

Dados los requisitos reglamentarios del negocio, todo debe almacenarse de forma inmutable. Todos los datos recibidos inicialmente deben capturarse y conservarse. Si bien la mayoría de las bases de datos (incluido SQL) permiten modificaciones, Kafka, por diseño, prohíbe cualquier cambio en su registro inmutable.

Usar Kafka como sistema de registro y tener almacenamiento ilimitado significa retroceder en el tiempo, analizar cómo se desarrollaron las cosas, interpretar los cambios, gestionar correcciones históricas puntuales y crear representaciones alternativas sin afectar las cargas de trabajo operativas actuales.

Esta flexibilidad ofrece ventajas significativas, especialmente cuando se opera en mercados altamente regulados donde la corrección oportuna y eficiente de los errores es fundamental.

 

4. La flexibilidad lo vence todo 

El uso de Kafka como sistema de registro aporta una flexibilidad significativa a la arquitectura de datos. Se pueden crear vistas específicas para cada caso de uso, utilizando una base de datos o tecnología dedicada que se alinee con precisión con esas necesidades, y luego leer los temas de Kafka que contienen estas fuentes de eventos.

Tomemos como ejemplo la gestión de datos de clientes. Es posible utilizar una base de datos de gráficos diseñada específicamente para este caso de uso sin construir un sistema completo alrededor de una base de datos de gráficos, ya que es solo una vista o proyección basada en Kafka.

Este enfoque permite utilizar diferentes bases de datos según el caso de uso sin especificarlas como sistema de registro. En cambio, actúan como una representación de los datos, lo que permite mantener la flexibilidad. De lo contrario, se insertará en una base de datos, lago de datos o almacén de datos, que son rígidos y no permiten la transformación de los datos en una representación optimizada para un caso de uso específico.

Desde la perspectiva de una startup, esta flexibilidad también permite evitar un bloqueo prematuro en una dirección tecnológica particular. Establecida en 2021, KOR sigue las mejores prácticas arquitectónicas de aplazar las decisiones hasta el último momento responsable, lo que puede aplazar el compromiso con una elección tecnológica específica hasta que sea necesaria y conforme. Este enfoque significa un entorno tecnológico que puede adaptarse y evolucionar a medida que evolucionan las necesidades empresariales, permitiendo la escalabilidad y flexibilidad futuras.

Además de la flexibilidad, el uso del Registro de esquemas garantiza la coherencia de los datos, de modo que los desarrolladores sepan de dónde provienen los datos y qué esquemas están asociados con ellos. Confluence Cloud también permite establecer políticas de evolución explícitas a través de un registro de esquema. Por ejemplo, si coloca todos sus datos en un lago de datos, resulta mucho más difícil administrar todas las diferentes versiones, diferentes esquemas y diferentes representaciones de esos datos.

5. Detrás de la tecnología de conmutación: pensamiento impulsado por eventos

Abandonar la base de datos y adoptar Kafka como sistema de registro para almacenar datos parece ser un enfoque muy nuevo.

No todas las empresas pueden aceptar este enfoque. Andreas cree que esto requiere que las empresas cultiven una cultura de "modelos basados ​​en eventos", y este cambio de pensamiento también debería extenderse a la forma de desarrollar aplicaciones a través del procesamiento de flujo, de lo contrario causará compatibilidad. .problemas de desigualdad de género.

El propósito de esto es ayudar a los miembros del equipo a darse cuenta de que están tratando con datos inmutables y que si han escrito algo, no pueden simplemente entrar y cambiarlo.

Andreas también sugirió que la implementación de una arquitectura centrada en Kafka comienza con un equipo que comprenda "la importancia del procesamiento de flujos y eventos como sistema de prueba". Al demostrar fortalezas dentro de ese equipo, pueden actuar como embajadores de otros equipos, fomentando la adopción de eventos como la verdad última y el procesamiento de transmisiones con el estado como representación final.

6. Escrito al final: ¿Puede Kafka reemplazar la base de datos?

Ya en 2017, Jay Kreps, cofundador de Apache Kafka y Confluent, afirmó claramente que "los datos se pueden almacenar en Apache Kafka".

Además, los datos se pueden almacenar en Kafka durante el tiempo que desee. El lanzamiento de Apache Kafka del New York Times es un ejemplo famoso del uso de Kafka para almacenar datos para siempre. Kafka se utiliza para almacenar todos los artículos que The New York Times ha publicado, reemplazando su enfoque basado en API.

Entonces, ¿puede Kafka reemplazar la base de datos? Obviamente no es realista. Aunque el artículo menciona muchos aspectos "inapropiados" de las bases de datos tradicionales, como "las bases de datos no están diseñadas para escalar", solo se limita a soluciones en escenarios sólidos en tiempo real, como las finanzas.

Sin embargo, vale la pena reflexionar y aprender del método recomendado para romper el patrón de pensamiento tradicional de las bases de datos y rediseñar la arquitectura subyacente.

7. Ampliación de campos relacionados

En los últimos 10 años, cuando incluso las empresas tradicionales comenzaron a digitalizarse a gran escala, descubrimos que en el proceso de desarrollo de herramientas internas se repetían constantemente una gran cantidad de páginas, escenas, componentes, etc. La rueda hizo perder mucho tiempo a los ingenieros.

En respuesta a tales problemas, el código bajo visualiza ciertos escenarios y procesos recurrentes en componentes individuales, API e interfaces de bases de datos, evitando la creación repetida de ruedas. Productividad del programador muy mejorada.

Recomiende una plataforma de desarrollo rápido de software JNPF que los programadores deben conocer, adopta la arquitectura de microservicio SpringBoot líder en la industria, admite el modo SpringCloud, mejora la base de expansión de la plataforma y satisface las necesidades de desarrollo rápido del sistema, expansión flexible, integración perfecta y alta Capacidades integrales, como aplicaciones de rendimiento; al adoptar el modo de separación de front-end y back-end, los desarrolladores de front-end y back-end pueden trabajar juntos para ser responsables de diferentes secciones, ahorrando problemas y conveniencia. Experimente el sitio web oficial: https://www.jnpfsoft.com/?csdn

Si no ha comprendido la tecnología de código bajo, ¡puede experimentarla y aprenderla rápidamente!

Supongo que te gusta

Origin blog.csdn.net/Z__7Gk/article/details/132538682
Recomendado
Clasificación