Introduction to CQRS (segregando la tipología de uso y del dato)

En anteriores post hemos hablado sobre Data streaming como también de escalar bases de datos. Pero hoy vengo a darte una introducción, clara y concisa, sobre CQRS y su aplicación; utilizando un tanto los posts mencionados anteriormente. CQRS es un método para optimizar escrituras en bases de datos (write) y leerlas (read). Hoy en día, algunas más que otras, las empresas están ya acostumbradas a trabajar con grandes volúmenes de datos y, por lo tanto, con grandes bases de datos. [Leer más]

High Performance Computing in the AWS Cloud (low cost)

De tipologías de Arquitectura de infraestructura hay muchas pero, así de entrada, podemos diferenciar entre: “High Performance” y “High Availability”. Que por cierto, podemos implementar las dos en una misma, por ejemplo, nuestro post de hoy. Vamos a ver una arquitectura, bastante económica, para poder tener el siguien esquema lógico: Acceso de los usuarios > Validaciones > Retorno de datos > Ingestión de información (Evento) > Transformación de la Información >Indexación > Visualización (Explotación). [Leer más]

Data Scaling Architectures & Data Caching Architectures en AWS (Hazelcast vs Elasticsearch vs Memcached)

Hoy en día uno de nuestros grandes retos es poder escalar, en el momento oportuno y durante el tiempo necesario (no más de lo necesario, por su impacto en costes). Para poder dar solución, por lo general, nuestras arquitecturas han ído sufriendo cambios, introduciendo balanceadores de carga, para distribuir el tráfico de forma horizontal (que no vertical) y introduciendo también caché en la cap de publicación. Con la introducción del Cloud y más concretamente de sus servicios PaaS, nos hemos podido “olvidar” un poco de estos escalados tanto en la parte de publicación como también en la parte de base de datos, que es mucho más complejo el escalado ya que, la aplicación también debe estar preparada para atacar a “múltiples” bases de datos. [Leer más]

Pull data from Twitter and push data to Elasticsearch using Apache NiFi

En este post vamos a realizar un Workflow de conexión a Twitter, a partir de su API, para poder guardarlos, posteriormente, en un Elasticsearch mediante Apache NiFi. La estructura del Workflow es muy simple, tendrá cuatro pasos, los siguientes: Descargar los tweets mediante la conexión a la API de Twitter. Estructurar el fichero de salida de la API a un tipo JSON. Enrutar el fichero al destino aplicando un filtro (opcional). [Leer más]

ElastAlert, un sistema de Alertas para nuestras APIs

ElastAlert es un sistema de Alertas creado por Yelp el cual nos permite monitorizar en Realtime nuetras APIs y así poder detectar comportamientos anómalos y/o errores. Su arquitctura es muy simple ya que se basa en un sistema de consultas a Elasticsearch y en función del resultado de la misma, lanzar si corresponde una Alerta a nuestro Dashboard o herramienta de bugs, Slack, etc… tiene integración con JIRA y otras herramientas de ésta misma tipología. [Leer más]

Data Transformation Pipelines (Apache Nifi, Flink, Kafka y MongoDB) (Parte 1)

Ya en anteriores artículos hemos explicado la importancia de tratar con datos organizados ya que el Big Data como tal, ¡no sirve de nada!. Para ello existen los llamados procesos de transformación (Data Transformation) que consisten, entre otros, a convertir ese Big Data en un Smart & Small Data Concept. Para ello podemos utilizar muchas tecnologías, ya anteriormente hemos hablado de FluentD o bien del Stack ELK (Elasticsearch + Logstash + Kibana) como buenas soluciones para poder crear flows de Data Transformation, mejor dicho, Flows envío y agregación de Datos. [Leer más]

Instalación y Configuración de FluentD con Elasticsearch + Kibana

FluentD se divide en tres bloques: filtro y envío de datos a un buffer, transforma o simplemente recoge los datos para una cadencia continua y los enruta o envía a otro destino. En nuestro caso, instalaremos y configuraremos FluentD para enviar los datos a un servicio de Elasticsearch que almacenará los eventos que ocurran. Luego mostraremos la información de manera legible con Kibana. ¿Qué información puede recoger? No hay límites, ya que está preparado un gran volúmen de datos pero, en caso de tener múltiples orígenes de datos, siempre es mejor utilizar FluentD Aggregator entre FluentD Agent y Elasticsearch. [Leer más]

Instalación + Configuración de ELK (Elasticsearch + Logstash + Kibana)

ELK, que es la composición de Elasticsearch + Logstash + Kibana es una más que correcta solución para, por ejemplo, crear un sistema de Control de Eventos y/o Logs. Por ejemplo, si queremos monitorizar en Realtime nuestras aplicaciones o sistemas podemos implementar el Stack de ELK para embeber nuestros logs, ya sean generados por el Framework del código (Symphony, Laravel, Spring, etc…) o bien, por el log de Apache, Nginx, etc… el que corresponda a nivel de Sistema Operativo. [Leer más]

Enviando Build Logs de Jenkins a ELK (Elasticsearch + Logstash + Kibana)

Jenkins y ELK (Elasticsearch, Logstash y Kibana) son dos fantásticas herramientas para iniciarnos en DevOps. En nuestro caso usamos Jenkins como Planificador de Tareas (Scheduled Task) aunque, realmente, es casi perversión lo que se puede llegar hacer con Jenkins y todos sus plugins. En éste artículo no hablaremos de Jenkins sinó de la posibilidad de poder mandar sus Log de ejecución a ELK, otra herramienta o Suite de herramientas que ningún DevOps puede dejar en el tintero. [Leer más]

Small Architectures for a Big Data

Casi siempre tenemos la costumbre de pensar que Tecnología es todo aquello que es grande, caro y complicado. Bueno, no es cierto! Básicamente la tecnología es el bolígrafo que nos permite dibujar aquello que nos imaginamos, ya sea mediante un lenguaje de programación, mediante un hardware que lo sustenta todo, etc… en éste breve artículo veremos como afrontar la construcción de una pequeña infraestructura de Big Data basada en AWS (Amazon Web Services). [Leer más]