Arquitectura de Datos y Teorema CAP ¿Dónde chocan?

Arquitectura de Datos y Teorema CAP ¿Dónde chocan?

Nota del editor: Joep Kokkeler es un ponente en ODSC West este otoño. Asegúrate de ver su charla, “Capturando CAP en una Arquitectura de Datos Kappa”, allí.

Antes de adentrarnos en los diferentes tipos de arquitectura de datos, centrémonos primero en el teorema CAP. El teorema CAP establece que en cualquier sistema (excluyendo las transacciones ácidas por ahora) puedes tener dos de los siguientes, pero nunca los tres: consistencia, disponibilidad y tolerancia. Para lidiar con esto, puedes tomar la decisión correcta al elegir un tipo de arquitectura.

Cuando hablamos de arquitectura, la gente siempre asume que sabe a qué se refiere cada tipo de arquitectura. Pero ¿qué pasa si no lo sabes? Digamos que conoces la implementación técnica de la arquitectura lambda pero no sabes qué significa esto en comparación con otras implementaciones.

Déjame explicarlo usando una fácil analogía.

Todos han estado en un zoológico en algún momento de su vida. Hay muchos animales diferentes y se necesitan diversas habilidades para cuidar de estos animales por parte de los cuidadores. Así que necesitas tener el conocimiento adecuado para dirigir un zoológico o contratar personas que sepan cómo cuidarlos para que puedas disfrutar de tu zoológico. Con la elección de la arquitectura, es casi lo mismo, ya que no necesitas saber todo sobre cada implementación pero necesitas saber con qué estás tratando.

Monolito

Comencemos con la arquitectura de monolito, como su nombre indica, es grande, es antigua, ocupa mucho espacio y probablemente sea un elefante. Específicamente, un elefante africano de sabana, el elefante más grande que existe. Y hay un tipo mayor en tu equipo que sabe cómo cuidarlo adecuadamente, quien sabe qué botones puede presionar y cuáles debe evitar. Uno de los internos intentó trabajar con la gran bestia, pero después de apagar muchos incendios a su paso, es mejor que el tipo que nació alrededor de la misma época en que se acuñó el término “arquitectura” se encargue del monolito.

Microservicio

El siguiente sería el microservicio. En una arquitectura de microservicio, es importante crear servicios que tengan sus propias responsabilidades. A veces, esas responsabilidades se desbordan y antes de que te des cuenta, estás ejecutando un mini monolito. Y tratar de guiar a un elefante gris joven hacia donde quieres que vaya requiere un conjunto de habilidades completamente diferente al de ejecutar microservicios. Mi mejor comparación para los microservicios es una manada de lobos. Cuando están en la naturaleza, una manada avanza en línea recta (para ahorrar energía) con todos en el orden correcto de la manada. Y cada posición en la manada tiene una responsabilidad específica.

Hay una imagen que circula por internet en la que se ve una manada en la nieve y la leyenda dice que los lobos de adelante están enfermos o son viejos, así que hay que asegurarse de que no se queden atrás o se utilicen como “amortiguador” cuando son atacados. Teniendo en cuenta que moverse en la nieve requiere mucha energía, no tiene sentido tener a un lobo debilitado en la parte delantera. Lo mismo ocurre con tus microservicios: el primer servicio puede estar un poco sobrecargado, pero hace la mayor parte del trabajo pesado para los demás. La arquitectura lambda se caracteriza por su tamaño de componente pequeño y siempre quieres tener más de ellos.

Así que es más comparable a un grupo de suricatas. Un grupo de suricatas se llama una pandilla, lo cual me gusta mucho más. En lugar de decir que ejecutas múltiples grupos de lambdas, tienes varios grupos bajo tu control. La clave con las suricatas y con las lambdas es hacer que la responsabilidad sea lo más pequeña posible, de lo contrario, la suricata simplemente la dejaría como está. En el pasado, le tomaba a la suricata algunos minutos hacer realmente lo que querías que hiciera, pero resolvimos este problema dándole cosas que hacer para que nunca se detenga. Esto hace que sea fácil para la suricata hacer su trabajo y asegurarse de pasar los resultados del trabajo a la siguiente suricata, y tendrás muchos grupos bajo tu control haciendo lo que quieres que hagan.

Kappa

Por último, pero no menos importante, la arquitectura kappa. Imagina un pingüino gordo, uno de esos personajes de “Madagascar”. Los pingüinos siempre necesitan moverse en grupos, así que dentro de tu arquitectura kappa, hay muchos grupos de pingüinos sonriendo y saludando. Pero en realidad queremos que nuestra arquitectura sea realmente rápida y muy inteligente. Así que imagina el mismo pingüino pero ahora con un cohete atado a su espalda. Esa es la base de nuestra arquitectura kappa. Muchos pingüinos con muchos cohetes atados a ellos. Ten en cuenta que no es necesario ser un científico de cohetes para trabajar en una arquitectura kappa.

Conclusión

Ahora tenemos una idea de qué tipo de bestias estamos observando, ¿cómo podemos implementar una de esas arquitecturas para tener los tres componentes del Teorema CAP? Para saber cuál es la mejor bestia (o un pingüino con un cohete) para el teorema CAP, ven a verme en ODSC West en San Francisco para una explicación más detallada de este problema y para ver una demostración en vivo de las diferentes implementaciones.

Acerca del autor:

Joep Kokkeler tiene más de 12 años de experiencia en el desarrollo, ingeniería, arquitectura y visualización de productos de datos en diversos sectores, que van desde la energía hasta la fabricación de ropa. Se centra en capacitar a los equipos para que sean mejores en el manejo de datos y proporcionarles las herramientas y el conocimiento necesarios para ponerse en marcha y mantenerse en producción.

Fue miembro del comité del programa Teqnation, realizó una presentación sobre el uso de Kafka y Hue durante el fútbol, desarrollando e implementando en Hololens, Devops total utilizando Gitlab, Evolución de un producto de ciencia de datos, utilizando la pila elástica desde PoC hasta producción, Xbox Kinect en una bicicleta en Devoxx London.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Los adolescentes se esfuerzan por ampliar la alfabetización en IA

Algunos adolescentes están pidiendo a sus escuelas que brinden experiencias de aprendizaje de IA más amplias.

Inteligencia Artificial

Creando empatía artificial

Los científicos se esfuerzan por añadir la habilidad de entender lo que los demás sienten a la inteligencia artificial.

Inteligencia Artificial

ChatGPT investigado por la Comisión Federal de Comercio por posibles daños

En un desarrollo significativo, la Comisión Federal de Comercio (FTC) ha iniciado una investigación contra OpenAI, la...

Inteligencia Artificial

Soñar primero, aprender después DECKARD es un enfoque de IA que utiliza LLMs para entrenar agentes de aprendizaje por refuerzo (RL)

El aprendizaje por refuerzo (RL) es un enfoque popular para entrenar agentes autónomos que pueden aprender a realizar...

Inteligencia Artificial

Conoce T2I-Adapter-SDXL Modelos de Control Pequeños y Eficientes.

Los T2I-Adapters son herramientas plug-and-play que mejoran los modelos de texto a imagen sin requerir un nuevo entre...