¿Qué es osquery? (detalles del OS como tablas)

osquery es un framework que instrumenta nuestro sistema operativo (Windows, macOS, Linux y FreeBDS) permitiendo luego hacer consultas en formato SQL sobre la infraestructura de nuestro Sistema operative (Linux, Windows, Mac OS):

Osquery permite por ejemplo hacer consultas sobre los procesos en ejecución, usuarios, cambios en passwords, dispositivos USB, puerto abiertos,…

Osquery exporta esta información como un conjunto de tablas SQLite:

Ofrece instaladores para Linux (apt, rpm, deb,..), Windows, Mac,

(en Windows lo recomendable es usarlo chocolatey (ver post) e instalarlo con >choco install osquery)

una vez instalado puedo usarlo con el comando osqueryi

Si queremos exportar los datos en JSON puedo usar el parámetro –json

¿Qué es AWS Greengrass?

AWS Greengrass es la apuesta de la plataforma de Amazon, AWS IoT para delegar parte del procesamiento IoT en el edge, antes de ser enviado a plataforma. Proporciona un framework software para construir aplicaciones en los dispositivos.

En palabras de Amazon, AWS Greengrass extiende AWS a nuestros dispositivos, para que de forma local puedan actuar con los datos que generan.

Los beneficios de Greengrass son:

  • Respuesta a eventos en local de forma rápida
  • Capacidad de operar en modo offline
  • Modelo de programación simplificado en base a funciones Lambda de AWS

Con AWS Greengrass los dispositivos no funcionan de forma aislada entre sí, sino que es posible definir en campo una arquitectura de Gateway concentrador de dispositivos, para gestionar conjuntos de ellos en una red local, de manera que aunque estén desconectados de la plataforma AWS IoT, Greengrass proporcione la capacidad de mensajería MQTT (estándar de facto de la plataforma AWS IoT) y el gateway concentrador de todos los dispositivos, así como el API cliente del broker al resto:

AWS Greengrass se basa en dos componentes, para proprociar la arquitectura de Gateway concentrador de dispositivos:

  • Greengrass Core (GSC): Proporciona la funcionalidad de concentrador dando las siguientes capacidades:
  • Ejecución de funciones Lambda, incluyendo Interacción directa con otros servicios en AWS.
  • Seguridad integrada con modelo definido en la plataforma cloud AWS IoT.
  • Gestión de sombras de dispositivo. En AWS IoT, la sombra del dispositivo es el estado virtual que tiene un dispositivo en la plataforma en función del ultimo estado reportado y las modificaciones que se hayan hecho sobre él y no estén confirmadas con el dispositivo físico, de manera que cuando se realice la sincronización con el dispositivo físico, su estado tiene que ser consolidado con su sombra en la plataforma.
  • Capacidades de broker de mensajería MQTT en red local
  • SDK de AWS IoT: API que permite tanto conectar directamente con el broker MQTT de AWS IoT, como con el del nodo que hace las veces de Greengrass Core de su grupo en la red local.

En un poco más de detalle, las capacidades de AWS Greengrass para el dispositivo que hace las veces de Core (Gateway del grupo) son:

  • Local Lambda:

Son Funciones de código asociadas a eventos (de mensajería MQTT o de cambios en la sombra de un dispositivos). Pueden desarrollarse en la plataforma AWS IoT y desplegarse en desde remoto a los dispositivos en campo.

Se escriben en lenguaje Python 2.7 y permiten ejecutar lógica de negocio en local para realizar cualquier operación (lógica de control, filtrado y agregado de datos…) tanto en modo conectado como desconectado de la plataforma AWS IoT.

  • Gestión de sombras:

Ya introducido anteriormente. Se trata del mantenimiento por cada dispositivo de un documento JSON que representa el estado lógico de un dispositivo. Pueden mantenerse en local o sincronizarse con el cloud. Manteniendo el ultimo estado real conocido, el deseado en base a los cambios no confirmados por el dispositivo y el listado de cambios no confirmados

  • Mensajería MQTT

Broker de mensajería MQTT entre los dispositivos del grupo con capacidad de funcionamiento offline en la red local, sin necesidad de utilizar la mensajería del servicio AWS IoT.

  • Seguridad

Autenticación mutua entre dispositivos, tanto en modo local contra el cloud. Los certificados en los dispositivos se pueden asociar con las credenciales del proceso Signature V4 de AWS en servidor para autenticar peticiones.

 

Como funciona AWS Greengrass: Este video es bastante clarificador (https://www.youtube.com/watch?v=1rLxPOxVJoQ&feature=youtu.be). En resumen:

La gestión integral se hace mediante la plataforma cloud AWS IoT, donde se tienen que dar de alta los dispositivos y conjuntos de dispositivos que conforman un grupo Greengrass.

Un grupo tiene que tener en el cloud de AWS IoT una configuración (definición de grupo):

  • El primer paso para crear un grupo Greengrass es definir el dispositivo que hace las veces de Greengrass core del grupo en su configuración en el cloud de AWS IoT. Todos los grupos necesitan tener un Greengrass core, siendo este, el dispositivo físico donde se instala el software de Greengrass.
  • Una vez instalado el software de Greengrass core en el dispositivo, este ya se puede conectar al cloud de AWS IoT.
  • A continuación se continua definiendo el grupo en cloud en AWS IoT dando de alta el resto de dispositivos y/o las funciones Lambda a ejecutar en el dispositivo que tiene el Greengrass core, que se despliegan de forma remota en el dispositivo core

Así que a grandes rasgos Greengass nos proporciona un nodo concentrador, cuyo software (funciones Lambda) y configuración se ha hecho en servidor, que proporciona un broker MQTT para centraliza el tráfico del resto de dispositivos del grupo, y hace de pasarela a AWS IoT:

image021

 

 

image022

 

¿Es posible utilizar Greengrass core como solución Edge para otras plataformas?

No hemos encontrado nada al respecto en la documentación, pero parece difícil, ya que todos los conceptos, como grupo de dispositivos, sombra, funciones lambda, políticas de seguridad… están muy ligados al cloud de AWS IoT y al resto de productos de AWS. Pej: Desde las funciones Lambda ejecutadas en edge se pueden invocar servicios del resto de la suite de AWS sin pasar por las reglas del broker de AWS IoT.

Ademas, los dispositivos y grupos de dispositivos son conceptos gestionados en el cloud ee AWS IoT:

Para crear un grupo

aws greengrass create-group –name “GreengrassGroupName”

Para registrar un device:

aws iot describe-thing –thing name pump1

No obstante, el modelo de precios para Greengrass es por dispositivos y no por mensajes procesados, por lo que tal vez podría plantearse un modelo hibrido que solo contemplase en AWS la gestión de dispositivos:

¿Qué es Spring for Apache Kafka?

El proyecto Spring for Apache Kafka (spring-kafka) permite seguir el modelo Spring para el desarrollo de soluciones de mensajería basadas en Kafka, proveindo un template como abstracción para enviar mensajes y soporte Message-driven POJOs con @KafkaListener.

Para usarlo en una aplicación Spring basta con importar:

Sender:

Listener:

En este link podéis leer como usarlo en una aplicación Spring Boot.

¿Qué es OpenTracing?

OpenTracing es un estándar abierto y neutro para traceo distribuido.

En la actualidad con el paso de los sistemas monolíticos a las arquitecturas de microservicios un sistema en producción está compuesto de un buen número de servicios, lo que hace que tareas que antes eran sencillas como análisis de errores en backend se complican.

Por suerte existen un buen número de sistemas de traceo distribuido (Zipkin, Dapper, HTrace,…) que resuelven esto, aunque cada una usa su propia API. OpenTracing ofrece un API consistente y expresiva para que los desarrolladores puedan añadir trazas (o cambiar la implementación) a través de configuración.

OpenTracing ofrece librerías en 8 lenguajes: Go, JavaScript, Java, Python, Ruby, Objective-C, C++, C#

Existen bastantes librerías que soportan el estándar OpenTracing, como

· Zipkin que soporta OpenTracing en varios lenguajes

· Jaeger ˈyā-gər (el Sistema de trazas distribuido de Uber)

· LightStep en varios lenguajes

· Hawkular APM en Java

· Instana lo soporta en Java, Node y Go.

· sky-walking para aplicaciones Java

· inspectIT para aplicaciones Java

· Stagemonitor para aplicaciones Java

¿Qué es OpenStack Sahara?

OpenStack Sahara es un proyecto integrado en OpenStack cuyo objetivo es hacer elástico Hadoop bajo demanda.

Hadoop es prácticamente el estándar cuando hablamos de Big Data, las organizaciones típicamente comienzan montando un cluster . Incluso con las distribuciones comerciales este proceso es complejo.

Sahara está preparado para configurar, autodesplegar y escalar clusters Hadoop sobre OpenStack. Sahara ofrece por tanto capacidades Elastic Data Processing (EDP) sobre Hadoop al estilo de Amazon Elastic MapReduce.

Sahara permite:

· Crear clusters desde UI o bien integrar Sahara con tu aplicación vía el API

· Elegir entre diversas distribuciones, incluidas Hortonworks Data Platform (HDP) y Cloudera Hadoop Distribution (CHD).

· Soporte jobs Apache Spark.

· Configurar HDFS de forma sencilla

Sahara está integrado con los servicios core OpenStack como Keystone, Glance, Horizon y Nova, además soporta las APIS nativa OpenStack lo que permite a los usuarios provisionar entornos Hadoop desde el Horizon GUI.

Leer más

¿Qué es OpenStack4j?

OpenStack4j es una librería Java open-source que permite controlar y provisionar un Sistema OpenStack desde Java.

Ofrece abstracciones de estos servicios:

Seguir leyendo “¿Qué es OpenStack4j?”

¿Qué es mattermost?

Mattermost se define como la alternativa a open-source y desplegable en cloud privada a Slack.

Mattermost tiene licencia MIT, está disponible en 11 lenguajes y es personalizable.

Se ofrece en versión Team Edition, que es gratuita y en 2 versiones Enterprise con coste mensual por usuario. Ver Versiones.

En este link podéis encontrar la comparativa de la versión Enterprise con Slack Plus.