¿Qué es un Data Grid?

In-Memory Data Grid es un concepto que facilita el caché creando una capa de almacenamiento de datos de alta velocidad que almacena información de manera volátil en memoria. Gracias a ello, podemos evitar demoras en tiempo de consulta o de cálculos complejos que han sido previamente realizados.

Existen dos tipos de caché:

  • Caché local: se encuentra contenida dentro de la propia aplicación.
  • Caché de sistemas distribuidos: se encuentra desplegada en uno o varios nodos formando una gran caché lógica, compartiendo distintas estructuras de datos de con una flexibilidad cómoda.

A continuación vamos a ver uno de los principales productos de Data Grid del mercado: Hazelcast.

Hazelcast

Se trata de un sistema de almacenamiento distribuido de código abierto cuyo fundamento principal es compartir distintas estructuras de datos de forma distribuida con una escalabilidad flexible y cómoda. Los datos son distribuidos entre los nodos de manera balanceada, pero siendo tolerante a fallos frente a la caída de nodos.

Arquitectura

  • Despliegue y configuración de los nodos para trabajar con nuestros orígenes de datos.
  • Cliente con el cual nos comunicamos y configura los nodos.
  • Microservicios: Desplegamos JET, trabaja de manera similar y nos permite embeber módulos en cada uno de los microservicios.

Despliegues

Docker Cloud

Levantar instancias de Hazelcast dentro de contenedores docker de forma independiente o como clúster. Podremos levantar un cliente para su gobierno o el «Hazelcast Management center».

Docker & AWS / AzureD

Funcionamiento igual al anterior, pero desplegando los contenedores en cualquier plataforma cloud que nos interese.

Kubernetes & Docker Swarm

Podremos gobernar Hazelcast mediante Kubernetes y Docker Swarm, siendo este caso el recomendado para usar con Azure.

Usos

¿Y qué utilidad tiene todo esto? Veamos algunos ejemplos de uso:

  • Compartir datos y trabajo entre varios servidores.
  • Caché distribuido de datos.
  • Comunicación segura entre servidores.
  • Particionado de datos en memoria.
  • Procesamiento paralelo.
  • Gestión fail-safe de datos.
  • Lanzar consultas complejas contra los datos cacheados.
  • Distribuir la carga.
  • Streamer en tiempo real para la detección del rendimiento.
  • Almacenamiento de datos de sesión en aplicación Web.

Hazelcast JET

Trabaja de manera dinámica y en tiempo real con streams de datos, y nos ofrece la posibilidad de embeber cada nodo en aplicaciones y microservicios. Su uso se recomienda cuando nos encontramos ante grandes volúmenes de datos y la necesidad de tiempo real. Nos ofrece un motor de baja latencia y una alta tasa de transferencia.

Algunas características

  • Baja latencia end-to-end.
  • Hazelcast IMDG embebido.
  • Simple de usar: un único JAR sin dependencias.
  • Ligero y embebible.
  • Despliegue en cloud.

Usos Jet

  • Recomendable para su uso en microservicios.
  • Conexión con DataBrokers.
  • Integración y deployment sencillo.
  • Soporte para Big Data y IoT.

Imagen de cabecera: Julius Drost en Unsplash

Autor

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *