Publicado Hazelcast IMDG 3.8

Hazelcast logo

Se ha publicado la versión 3.8 del grid open-source Hazelcast IMDG 3.8 GA.

Esta versión tiene numerosas novedades (algunas de ellas las esperábamos ansiosos!!)

(Jesús, ya sabes lo que te toca :D)

Una de las mejoras fundamentales de Hazelcast IMDG 3.8 es la mejora en el uptime-time del cluster: ahora el número de veces que el cluster debe pararse para mantenimiento se ha reducido.

Además se han incluido mejoras para gestionar la persistencia y el despliegue multi-data center.

Veamos algunas de las novedades:

Rolling Upgrade (Enterprise)

Es la capacidad para actualizar las versiones de los nodos del cluster sin interrupción del servicio.

Docs: http://www2.hazelcast.com/e/30822/x-html-rolling-member-upgrades/btvcj4/368721839

Dynamic WAN Sync (Enterprise)

Usando replicación WAN puedo copiar los datos de un cluster a otro sin interrupción en el servicio.

Docs: http://www2.hazelcast.com/e/30822/gle-index-html-wan-replication/btvcjb/368721839

Hot Backup Cluster (Enterprise)

Permite hacer un backup de un cluster en ejecución a través de un API REST o del centro de despliegue.

Docs: http://www2.hazelcast.com/e/30822/l-single-index-html-hot-backup/btvcjd/368721839

Scheduled Executor Service

Es una implementación distribuida del API Java ScheduledExecutorService, permite hacer Schedule de tareas en el cluster.

Docs: http://www2.hazelcast.com/e/30822/tml-scheduled-executor-service/btvcjg/368721839

Open Sourcing Continuous Query Cache

En esta release se ha hecho open-source la funcionalidad Continuos Query Cache, que permite combinar los contenidos de una caché con streams de eventos para actualizar la caché.

Es muy útil si necesitas hacer queries de datos de un IMap distribuido muy rápidamente. De esta forma los resultados de la query estarán siempre listos de forma local a la aplicación.

Docs: http://www2.hazelcast.com/e/30822/ex-html-continuous-query-cache/btvcjj/368721839

Projection for Queries

Las queries pueden ahora devolver campos específicos de u entry. Esto minimiza el tráfico por red e mejora el throughput.

Docs: http://www2.hazelcast.com/e/30822/-single-index-html-projections/btvcjl/368721839

Fast Aggregations

Antes de Hazelcast IMDG 3.8, las agregaciones se basaban en el motor Map-Reduce de Hazelcast. Esta funcionalidad es el sucesor y ahora ejecuta sobre una infraestructura de Queries, que mejora el rendimiento en un ratio de cientos puesto que ejecutan en paralelo en cada partición.

Docs: http://www2.hazelcast.com/e/30822/e-index-html-fast-aggregations/btvcjn/368721839

Improvements on Near Cache

2 mejoras principales:

· Es consistente eventually vs weakly consistent

· El cliente de Near Cache puede persistir keys en un filesystem y recargarlos en restart.

Docs: http://www2.hazelcast.com/e/30822/l-single-index-html-near-cache/btvcjq/368721839

User Code Deployment (Beta)

Permite cargar nuevas clases a los nodos Hazelcast IMDG dinámicamente sin reiniciar. Es por tanto un classloading dinámico y distribuido.

Docs: http://www2.hazelcast.com/e/30822/html-user-code-deployment-beta/btvcjs/368721839

Split Brain Protection for Queue and Lock

Cluster quorum es un esfuerzo para hacer las estructuras de datos más consistentes a fallos de red.

Docs: http://www2.hazelcast.com/e/30822/ex-html-split-brain-protection/btvcjz/368721839

 

Podéis leer más sobre esta release aquí:

Un poco de metabase

Conforme a su lema:

De una forma más mundana podríamos definir metabase como una solución para construir dashboards sobre diferentes repositorios de forma visual y sencilla:

Metabase permite elegir los campos a visualizar, los filtros a aplicar, agrupaciones y la representación seleccionada, todo ello de forma visual e intuitiva:

Soporta estas bases de datos:

· MySQL

· Postgres

· Mongo

· SQL Server

· AWS Redshift

· Google BigQuery

· Druid

· H2

· SQLite

· Oracle

· Crate

Metabase es un software open-source con licencia AGPL

metabase se puede instalar de diversas formas (http://www.metabase.com/start/ ), se puede desplegar con Docker, en Amazon AWS, Heroku o de la forma más sencilla:

java -jar metabase.jar (metabase.jar)

donde sólo necesitaréis una JMV Java 1.6 o superior.

Una vez lanzado podéis acceder a http://localhost:3000

La primera vez nos pedirá un información básica, pero en 2 minutos ya podréis estar creando representaciones:

La forma más sencilla es comenzar a crear una

Seleccionaré primero mi DataSource:

Si selecciono la colección Restaurants

Puedo directamente ver el resultado:

(NOTA: podéis descargaros el dataset de Restaurants desde aquí https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

e importarlo en Mongo con: mongoimport –db test –collection restaurants –drop –file primer-dataset.json)

Desde ahí puedo crear filtros:

Crear grupos:

Elegir campos:

Y seleccionar métricas:

Y por supuesto cambiar la visualización:

Viendo:

En la parte derecha con este botón:

puedo ver la query que se está ejecutando:

Una vez he explorado lo que quiero representar podré guardar el Gadget (Question en terminología metabase) y arrastrarlo a mi Dashboard:

¿Qué es Clarifai?

Clarifai es un motor de Machine Learning centrado en el reconocimiento visual (clasificación de imágenes y vídeos), se ofrece como Servicio SaaS a través de APIS REST.

Permite de forma muy sencilla subir imágenes y vídeos (o bien publicarlos en una URL y que el API de Clarifai acceda a ellos)

y en función de uno de sus motores tagear la imagen:

Entre sus modelos tiene el general (soportando varios idiomas, incluyendo el castellano), el NSFW (Not Safe For Work), Bodas, Viajes,…

Las peticiones se hacen así:

curl "https://api.clarifai.com/v1/tag/?model=travel-v0.01&url=https://samples.clarifai.com/travel.jpg" -H "Authorization: Bearer {access_token}"

y devuelve un JSON con las clases y su probabilidad:

Además del API REST ofrece APIS en diversos lenguajes para simplificar su uso:

Clarifai ofrece diversos modelos de precios, desde uno gratuito que permite 5000 unidades al mes al Enterprise:

DZone Refcardz Java Containerization con Docker

En este nuevo Refcardz

El equipo de DZone nos presentan Docker desde el punto de vista de contenedores para Java.

La Arquitectura Docker:

Donde el cliente Docker le pide al Docker daemon vías Sockets o RESTful que construya, ejecute y distribuya los contenedores Docker:

Terminología

· Docker Images Read-only templates that use union file systems to combine layers—making them very lightweight. Images are built from Dockerfiles.

· Docker Registries Store Docker images. Users can push (or publish) their images to a public registry (like Docker Hub) or to their own registry behind a firewall. Registries store the “tagged” images—allowing users to maintain different versions of the same image.

· Docker Containers Virtualized application environments that run on a Docker Host in isolation. Containers are launched from Docker images, adding a read-write layer on top of the image (using a union file system) as well as the network/bridge interface and IP address. When a container is launched, the process specified in the Dockerfile is executed and the logs are captured for auditing and diagnostics.

· Dockerfiles Composed of various commands (instructions) listed successively to automatically perform actions on a base image in order to create a new one. The instructions specify the operating system, application artifacts, data volumes, and exposed ports to be used, as well as the command (or script) to run when launching a Docker container.

· Docker Host A Linux host (either a physical/bare-metal server or a virtual machine) that is running a Docker daemon on which images can be built, pulled or pushed and containers can run in isolation.

· Docker Client Command-line utility or other tool that takes advantage of the Docker API (docs.docker.com/reference/api/docker_ remote_api) to communicate with a Docker daemon

Docker con Java:

Docker puede usarse para empaquetar una JVM junto a los JARs y WARs y otras partes de la aplicación en un contenedor que puede ejecutar en cualquier host Linux, eliminando la complejidad de versions de librerías.

Contenizar aplicaciones Java es complejo, por suerte DCHQ ofrece un framework de composición que extiende Docker Compose.

Una vez la aplicación se ha provisionado se puede monitorizar la CPU, memoria, I/O del contenedor, notificaciones,…

Leer más

¿Qué es Jaggery?

Jaggery es un framework con licencia Apache 2.0 para escribir aplicaciones y servicios Web completas:Front-end, comunicación, lógica en Servidor y persistencia, todo ello en Javascript.

Las aplicaciones Jaggery se despliegan sobre el Jaggery Server (un Servidor Java construido sobre WSO2 Carbon Runtime), y ofrece una consola que permite desplegar y gestionar aplicaciones Jaggery:

También ofrece una CLI para desplegar apps vía línea de comandos.

Entre sus herramientas tenemos un Editor para IntelliJ y un Debugger sobre Rhino Javascript Debugger: http://jaggeryjs.org/tools.jag

Para probarlo lo mejor es echar un ojo a sus demos.

Un poco de StreamSets Data Collector

StreamSets Data Collector es una solución DataFlow (al estilo de Spring XD o Hortonworks DataFlow) opensource (licencia Apache 2.0), dicho de otra forma es una infraestructura que soporta la ingesta continua en entornos Big Data.

Está desarrollada en Java.

Ofrece un interfaz de usuario Web muy potente para que los Data Scientits pueda crean sus pipelines de forma sencilla.

Y:

Nos permite modelar Pipelines como este:

Ofrece integrados conectores con un gran número de sources y sinks (origins y destinations) incluyendo Amazon S2, Cassandra, Hadoop, Kafka, SolR, HBase, JDBC, JMS, (ver integraciones)

además permite procesar online los datos a través de sus Transformers que pueden codificarse en Python, Javascript y Java.

StreamSets Data Collector está pensado para entornos Big Data e Alta disponibilidad, para lo que permite desplegar los pipelines en cluster. También ofrece una completa monitorización de los pipelines:

StreamSets Data Collector se puede instalar de diversas formas, entre ellas vía Docker y Cloudera Manager.

En su documentación podéis ver cómo se trabaja con el producto. Para comenzar os recomiendo su Tutorial. También podéis echar un ojo a sus videotutoriales, como este.

Además de la versión Community (sin coste) ofrece 2 licencias comerciales:

Un poco de PIWIK

Piwik es una plataforma open-source para Analítica Web (Google Analytics) que permite hacer una completa analítica de web ofreciendo: top keywords and search engines, websites, top page URLs, page titles, user countries, providers, operating system, browser marketshare, screen resolution, desktop VS mobile, engagement (time on site, pages per visit, repeated visits), top campaigns, custom variables, top entry/exit pages, downloaded files, …

La información se ofrece organizada en 4 categorías: Visitors, Actions, Referrers, Goals/e-Commerce:

Podéis acceder a su demo y ver todas sus capacidades.

Entre sus capacidades más interesantes:

Ofrece un API de Tracking en Javascript que nos permite informar desde una Web de lo que está pasando, además de SDKS en iOS y Android y librerías para PHP, Java, Python, Ruby,…,

Piwik es capaz de cargar logs de Apache, NGINX, IIS,…

Ofrece un conjunto amplio de Gadgets que permiten representar la información de diversas formas:

Exportarla a diversos formatos:

además de integraciones que permiten hacer analítica sobre:

Además permite generar y planificar el envío de informes:

Piwik incluye una aplicación móvil:

Piwik está construida en PHP

Piwik ofrece alojamiento en Cloud u On Premise y una versión Enterprise para instalar On Premise, con soporte,…

Ofrece APIs para ofrecer a los datos de Piwik y poder integrarlos.

Este tutorial explica de forma sencilla Get your top 10 keywords (probad a hacer esta invocación http://demo.piwik.org/?module=API&method=Referrers.getKeywords&idSite=3&date=yesterday&period=day&format=xml&filter_limit=10 )

Piwik está preparado para desarrollar plugins que permiten integrar Piwik con tu aplicación.

Además hay un completo MarketPlace de plugins como este: http://plugins.piwik.org/ClickHeat que genera mapas de calor sobre las zonas más clikadas:

Aquí se explican todos los pasos sobre como crear un plugin: http://developer.piwik.org/develop