API with Express, Mongoose & MongoDB

Cuando queremos tener una arquitectura desacoplada o, cuando necesitamos tener un acceso programático a nuestro producto y/o servicio, lo más normal y común es tener un servicio de API. Concretamente una API RESTful para, por ejemplo, poder ofrecer servicios como: GET para consultar y leer, POST para crear, PUT para editar y DELETE para eliminar. Bien, uno de los lenguajes más famosos y, recomendable, para poder construir nuestra API RESTful es NodeJS y más concretamente su Framework Express que nos proporciona muchas herramientas útiles para poder organizar nuestra aplicación. [Leer más]

Replicando datos en tiempo real (Log Shipping vs Mirror Data)

Hemos hablado bastante sobre “Stream Processing”, “Data Stream”, “Distributed Real-Time Stream Processing”, “Data Sharding”, etc… pero, por lo general, siempre contamos con que tendremos una fuente de datos lo suficientemente preparada como para poder coger los datos y convertirlos en procesos o streams. Pero, seamos sinceros, raramente pasa. Es por eso que tenemos soluciones interesantes cuando, por ejemplo, tenemos una base de datos SGBD (puede ser Oracle o SQLServer) y queremos realizar una réplica de la base de datos origen hacia un destino. [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]

Artificial Intelligence and Machine Learning for Dummies

La Inteligencia Artificial (AI) y el Machine Learning (ML) están siendo utilizados, no solo como asistentes personales para distintas actividades como recientemente hemos podido ver, sino también para atender llamadas y gestionar demandas, conducir vehículos, enviar información segmentada a través de Predictive and Prescriptive Analytics y mucho mucho más. Así de entrada podemos dividir la Inteligencia Artificial en dos bloques: IA General o Amplia y la IA Aplicada o Estrecha. Como en todo, hay un debate, entre Inteligencia Artificial y el Machine Learning y trata más sobre las distintas particularidades entre casos de uso (por ejemplo), como entre sus implementaciones y diferencias reales, no olvidemos que son tecnologías aliadas que trabajan juntas, siendo AI el concepto más amplio y el ML, una parte de él (ver diagrama). [Leer más]

Liquibase, Control y Gestión de cambios en Bases de Datos.

Liquibase es una librería (Java) de base de datos de código abierto para rastrear, administrar y aplicar cambios en el Modelo de base de datos desde línea de comandos y se puede integrar muy fácilmente con Maven y Spring (Liquibase no está restringida solo a Java). Se inició en 2006 para permitir un seguimiento más fácil de los cambios en las bases de datos, especialmente en un entorno de desarrollo de software ágil. [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]

El debate eterno, ¿SQL, o Mongo?

Nuestras queridas bases de datos, amadas veneradas y respetadas por todos los “Dateros” del mundo. Son, sin lugar a duda, el pozo de oro amorfo más valioso de nuestra era. Reiterados autores las describen como “los envases del recurso más preciado de que disponemos”. ¿Pero en qué quedan esas bases reducidas, si no llegan a estar bien administradas? Dentro de las grandes clasificaciones de las tipologías de bases de datos, encontramos las relacionales y las key-values. [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]

Instalación y Configuración de Apache Ambari, administrar y monitorear Cluster Apache Hadoop

Bajo la licencia de la Apache Foundation, Apache Ambari, nació con el objetivo de simplificar la gestión de Hadoop desarrollando software para aprovisionar, administrar y monitorear los clústeres de Apache Hadoop. Ambari proporciona una interfaz de usuario web de administración de Hadoop muy intuitiva y fácil de usar respaldada por sus API RESTful. Ambari nos va a permitir realizar, por ejemplo, las siguientes acciones: Provisión de un clúster de Hadoop [Leer más]

Mi vida y los datos después de la calculadora del colegio

Un dato es un elemento que hace referencia o es representativo de algo. Dicho de otro modo, es la expresión de todo lo que tenemos en la realidad. Los datos son impresiones a las que nosotros les extraemos carácter e información para así entender ésa misma realidad de la que han sido extraídos. Algunos ya se habrán preguntado cosas como donde está el límite de esa definición, hasta que punto se le pueden extraer datos a cierto elementos del día a día y muchas otras. [Leer más]