Configurando liferay para que deje las trazas en colas de kafka

Siguiendo con las pruebas de los productos mencionados en anteriores post, una de las cosas más o menos sencillas que se puede hacer es, configurar los distintos productos que usan log4j para añadirles un nuevo appender de tipo cola de kafka. El propio proyecto de kafka trae un appender para log4j

Para hacer uso del mismo basta con hacer tres cosas

  1. Añadir los siguientes jars al ROOT/WEB-INF/lib de liferay
    1. kafka_2.10-0.8.1.1.jar
    2. metrics-core-2.2.0.jar
    3. scala-library.jar
  2. Crear una cola (tipo topic) con las particiones y replicas que se quiera
    1. ./kafka-topics.sh --create --zookeeper lug000.zylk.net:2181 --replication-factor 3 --partition 3 --topic test-3-3
  3. Añadir la logger de liferay el appender nuevo y añadirlo como referencia

[...]

<appender name="KAFKA" class="kafka.producer.KafkaLog4jAppender">
 <param name="BrokerList" value="lug000.zylk.net:9092,lug002.zylk.ne:9092,lug004.zylk.net:9092" />
 <param name="Topic" value="test-1-1" />
 <param name="ProducerType" value="async" />
 <layout class="org.apache.log4j.EnhancedPatternLayout">
  <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}:%L] %m%n" />

 </layout>
</appender>

[...]

<root>
 <priority value="DEBUG" />
 <appender-ref ref="CONSOLE" />
 <appender-ref ref="FILE" />
 <appender-ref ref="KAFKA" />
</root>

 

Siguiendo estos tres sencillos pasos tenemos las trazas en la consola, en un fichero y en una cola de kafka. Ahora solo quedaría consumirla con algun consumer.

Evidentemente para ponerlo en producción habría que hacer muchas más pruebas y estresar el sistema para ver si funciona como se espera. Por ejemplo hemos detectado un problemilla que habría que solucionar y está relacionado con los retornos de carro (creemos) porque los mensajes que log4j manda a las colas de kafka de alguna manera pierden parte de la información si el mensaje tiene retornos de carro, por ejemplo perdemos el stackTrace (no sabemos si lo hace el publicador o el consumidor que estamos usando para ver el topic creado para las pruebas)

A continuación un pantallazo del consumer que trae por defecto kafka (./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test-1-1 --from-beginning) para ver los topics

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Controlando la indexacion de contenido en Alfresco

La característica de indexado automático de los contenidos y metadatos de un documento, es normalmente bienvenida en un gestor documental. Sin embargo, en ciertos casos es deseable no indexar ese contenido, por ejemplo si una aplicación "no hace uso de ese contenido indexado".
 
En Alfresco 4.2 EE tenemos un par de opciones para gestionar el indexado de los documentos:
  • La primera es a través del aspecto cm:indexControl que tiene dos propiedades, cm:isIndexed y cm:isContentIndexed, que por defecto están a true. En este link, tenemos la matriz de combinaciones para controlar los índices de un determinado documento, y podemos indexar metadatos y contenido (por defecto), solo metadatos (cm:isContentIndexed=false) o nada (cm:isIndexed=false). Por supuesto, estas propiedad(es) deben ser seteadas en una carga masiva en donde se controlan estas propiedades via API, o via bulk con el indexador desactivado hasta aplicar la propiedad. También podrían gestionarse a través de una regla o un behaviour.
  • Un segundo método es más global y atiende a modificaciones de ciertas propiedades del servidor SOLR. En SOLR podemos desactivar la indexación del contenido de los documentos global en el archivo solrcore.properties mediante la propiedad (alfresco.index.transformContent=false). De esta manera se deshabilitan las indexaciones "full-text" de todos los documentos puesto que para la indexación Alfresco realiza una transformación previa a texto plano. Añadiendo (alfresco.ignore.datatype.1=d:content) se dejaría sin indexar ni documentos ni metadatos en Alfresco. Además existen propiedades en el solrcore.properties para ignorar tipos, aspectos o propiedades como:
alfresco.ignore.type=<type_name>
alfresco.ignore.aspect=<aspect_name> 
alfresco.ignore.field=<property_name> 
alfresco.ignore.store=<store_name> 
alfresco.ignore.tenant=<tenant_name> 
 
En cualquier caso, es necesario siempre probar bien estos cambios, en el comportamiento por defecto de la indexación de Alfresco, con una herramienta como Luke.
 
Por último, desde el punto de vista del modelo de contenidos es posible siempre setear las propiedades de indexación de cada propiedad o metadato.
 
 
Enlaces:
Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Aplicaciones escalables de alto rendimiento

Hace un par de semanas acudí a la siguiente charla en la que la gente de linkedin presentaba su solución de alto rendimiento para procesar información. Fue toda una alegría ver que muchos de los conceptos explicados eran temas que en zylk.net llevamos ya algún tiempo aplicando.

  • Procesos desacoplados (Colas y Topics )
  • Websockets para poder desatender las peticiones
  • Base de datos, servicios de colas y de filesystem orientadas a un escalado horizontal (particionado y distribución de keys)
  • etc..

Así que voy a escribir una serie de artículos con las técnicas más básicas para conseguir un rendimiento alto en el desarrollo de nuevos servicios, basandonos en estos conceptos y productos. La idea de diseñar de esta manera las aplicaciones persigue los siguientes objetivos

  • Escalabilidad horizontal a bajo coste
  • Alto rendimiento
  • Tiempos de respuesta bajos

A continuación muestro una imagen de lo que podría ser un servicio de este estilo a nivel general

Donde podemos ver la estructura a tres capas de siempre pero en la que las siguientes técnicas nos permiten mejorar el rendimiento y la esclabildiad del sistema

  1. En la capa inicial de comunicación entre el cliente y el servidor usamos dos técnicas diferentes usando los estándares que java ha definido a tal efecto
    1. WebSockets basados en HTML5 (jsr-365 para las peticiones que llegan al servidor)
    2. Peticiones a servicios rest asíncronos (jax-rs)
  2. En la capa de middle situamos un tomcat8 que implementa sus conectores http y ajp con las liberías NIO de java en esta parte es donde se implementan los servicios asícronos usando dos técnicas
    1. jax-rs asícrono, atendido o desatendido
    2. Servlets asíncronos, atendidos o desatendidos
  3. En la tercera capa simplemente están los productos que hemos mencionado
    1. Colas JMS vs Colas Kafka
    2. Filesystem distribuido basado en HDFS
    3. Sistema de almacenamiento particionado basado en HBase para datos semi estructurados

En un sistema clasico la petición iría del cliente al frontal web, del frontal web al servidor de aplicaciones y del servidor de aplicaciones al backend...y la respuesta realizaría el camino inverso. Todo ello de manera síncrona. Por lo tanto la pendiente que define la recta que representa el numero de peticiones por segundo respecto al numero de usuarios concurrentes depende de la velocidad de una petición unitaria (cuanto más rápida la petición, más pendiente y más peticiones por segundo podrá resolver el sistema, si lo consideramos como un sistema ideal que no tiene límites).

En cambio en un sistema desacoplado y desatendido el número de peticiones que el sistema puede responder no depende de la velocidad de respuesta de una petición unitaria...

Por tanto lo que nos interesa es

  1. Desacoplar las peticiones para que los recursos del frontal web y del middle se devuelvan lo antes posible al pool de peticiones de ambos servidores.
  2. Desatender las peticiones asíncronas (simpre que sea posible) para delegarlas en un sistema de colas y que no se colapse en ningún caso la capa intermedia ni la de backend. Además con este sistema podemos conseguir una expriencias de usuario mejor. El feedback de estos procesos se debería dar por medio de un sistema de websockets precisamente para poder realizar solicitudes desatendidas.

La idea es escribir tres artículos explicando (desde el punto de vista de un desarrollador java) los siguientes puntos de la arquitecutra

  1. WebSockets
  2. JAX-RS asíncrono y Servlets asíncronos
  3. Colas en kafka

Y ahora un pequeño detalle técnico (dos pasos y dos lineas de configuración)  para el apache 2.4.7, necesario para que el frontal pueda hacer de proxy a las peticiones websocket

  • (codigo fuente del módulo proxy de apache) svn co http://svn.apache.org/repos/asf/httpd/httpd/tags/2.4.7/modules/proxy/
  • (compliado del conector para websockets) sudo apxs2 -aic -I /usr/include/libxml2 ./proxy/mod_proxy_wstunnel.c
  • (configuración de los slatos de apache para websockets) ProxyPass /Momo/websocket ws://hefesto.zylk.net:8080/Momo/websocket
  • (configuración de los slatos de apache para websockets) ProxyPassReverse /Momo/websocket ws://hefesto.zylk.net:8080/Momo/websocket
Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Linux para niños

Seguro que tienes un ordenador o portátil antiguo que ya no lo usas, ¿verdad? Pues ahora que se acerca la navidad te vamos a dar una idea para que puedas volver a revivirlo y de paso poder hacer un fabuloso regalo a tus hijos, sobrinos, amigos… sin gastar ni un euro.

Una de las ventajas de GNU-Linux es la posibilidad que tiene para poder ejecutarse en equipos antiguos. Esto unido a distribuciones especificas y gratuitas nos da la oportunidad de crear un centro educativo y de entretenimiento para los pequeños de la casa.

 

qimo

Qimo for kids

Sistema operativo basado en Xubuntu. Qimo trae pre-instalado software educativo para que los pequeños aprendan jugando e interactuando en diferentes actividades.
La interfaz de Qimo está diseñada para que sea fácil su uso, con iconos grandes, expresivos y llamativos.

Requerimientos de hardware:
– Procesador: 400MHz o superior.
– 200MB de RAM.
– 6GB de disco duro.

Página web: Qimo for kids

 

PicarOS

Esta distribución esta basada en Debian y está recomendada para niños a partir de los 3 años. Tiene un escritorio pensado para que sea cómodo y agradable para los mas pequeños. Está disponible en español, catalán e inglés.

Requerimientos de hardware:
– Procesador: 1.0GHz o superior.
– 256MB de RAM.
– 3,6GB de disco duro.

Página web: PicarOS

 

DoudouLinux

DoudouLinux

Un sistema con el fin de hacer que el uso del ordenador sea una tarea fácil y divertida para niños a partir de 2 años. Además contiene un sistema parental para prevenir que los niños puedan acceder a contenido inapropiado en Internet. Esta distribución está en formato auto-ejecutable, esto es, podrás ejecutarlo a través de un CD o pendrive sin que tengas que reinstalar tu sistema operativo actual y sin perder ningún dato.

Requerimientos de hardware:
– Procesador: 800MHz o superior.
– 256MB de RAM.
– 3,6GB de disco duro.

Página web: DoudouLinux

 

edubuntu_scr

Edubuntu

Es una distribución basada en Ubuntu, orientada para el uso en ambientes escolares. Su lista de paquetes está destinada a tal fin, incorporando aplicaciones educativas como Gcompris y The KDE Education Project. Edubuntu esta dirigido a niños y jóvenes de entre 6 y 18 años.

Requerimientos de hardware:
– Procesador: 1000MHz o superior.
– 512MB de RAM mínimo.

Página web: Edubuntu

El artículo Linux para niños fué publicado originalmente en Elurnet Informatika Zerbitzuak S.L..

Kategoriak: Software libre, distribución, educación, gnu-linux, linux, niños, noticias | Komentarioak desgaituta daude

aaaa

aaaaaaa

El artículo aaaa fué publicado originalmente en Elurnet Informatika Zerbitzuak S.L..

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Seguimos jugando con phoenix

Siguiendo con el anterior post relacionado con Phoenix, he estado probando más características que hay que evaluar para ver hasta donde nos puede llevar Phoenix + Hbase+ Pentaho + Saiku.

1) Herramientas de bulk

2) Rendimeinto de las queries

3) Creación de índices secundarios

4) Análisis de los planes de ejecución de las queries

En la imagen podemos ver los resultados de los juegos ... la verdad es que apunta maneras. La siguiente prueba consistirá en recoger los datos de un proyecto típico de BI con pentaho y mysql y pasarlo a Hbase + phoenix ... a ver que pasa, eso sí, tendré que mejorar mi zona de juegos porque el laboratorio se me está empezando a quedar pequeño

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Presentación de Sinadura y caso de éxito en la Librecon 2014

 

Finalizada ya la LibreCon 2014 toca hacer repaso de lo vivido estos últimos dos días a lo largo de las numerosas ponencias a las que hemos tenido la suerte de poder asistir. En unos días publicaremos un resumen de los mejores momentos, pero antes queremos dejaros aquí la presentación del caso de uso de Sinadura en Parlamento Vasco junto con las nuevas funcionalidades de la última versión entre las que destacan las siguientes:

  • Posibilidad de firmar documentos PDF con campos de firma predefinidos

  • Posibilidad de crear y gestionar varios perfiles de firma con distintas preferencias de firma de documentos PDF.

  • Durante la acción de firma permite previsualizar el documento a firmar y elegir la posición de la firma pudiendo ubicar esta en cualquiera de las hojas del documento.

  • Asociar un perfil de firma a su correspondiente campo de firma predefinido

 

 

Para descargarte la actual versión de Sinadura Desktop puedes hacerlo fácilmente desde la zona de descargas aquí, y tienes el manual de usuario aquí.

 

Así que ya sabes, permanece atento a este blog y a la página de sinadura (www.sinadura.net) y no te pierdas las novedades que tenemos preparadas. También puedes seguir nuestras actualizaciones  a través de twitter o Linkedin

 

 

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

LIBRECON 2014

KERNET acude a la LibreCon, los días 11 y 12 de noviembre en el Palacio Euskalduna de Bilbao.

Será un punto de encuentro importante a nivel mundial dónde se darán cita los principales agentes vinculados al software libre y a las tecnologías “open”.

La apuesta de Kernet por el software libre en sus desarrollos es firme y se incrementará durante el 2015 con nuevos trabajos y proyectos.

¿Qué es la LIBRECON 2014?

El mayor encuentro para los agentes del Software Libre y Open Technologies

LibreCon 2014 se celebrará el próximo 11 y 12 de noviembre en Bilbao y recoge el testigo de las tres ediciones anteriores de la Libre Software World Conference, LSWC. Este año se plantea un gran evento cuyo principal objetivo será la creación de negocio y empleo en todos los sectores de la sociedad a través de las tecnologías libres, la innovación y el emprendimiento.
Las tecnologías abiertas en general y el Software Libre en particular constituyen una alternativa real que ofrece a empresas y administraciones públicas de todo el mundo una mayor competitividad, grandes ahorros y desarrollo de economías locales. Con este sentido claramente empresarial y de negocio se concibe un evento que quiere situar las tecnologías abiertas en la vanguardia de la recuperación económica.

Librecon 2014

http://www.librecon.io

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Streaming Evento Alumni de La Comercial

Kernet se encarga de la difusión por streaming del encuentro Alumni de La Comercial de la Universidad de Deusto con Juan Ignacio Vidarte, Director General del Museo Guggenheim Bilbao.

El evento tendrá lugar el día 13 de noviembre en el Hotel Dómine de Bilbao desde las 9.00 h. hasta las 10.30 horas.

Juan Ignacio Vidarte desarrollará la ponencia bajo el título "El papel del Museo Guggenheim Bilbao en un singular proceso de transformación".

¿Qué es Deusto Business Alumni La Comercial?

La Asociación Alumni La Comercial es un lugar de encuentro tanto para antiguos alumnos de La Comercial como para aquellas empresas que quieran colaborar con nuestros estudiantes y antiguos alumnos a través de la bolsa de empleo, programa de prácticas, presentaciones corporativas a los estudiantes de último curso, anuario de currícula etc. 

A través de la Asociación Alumni La Comercial se pueden establecer vínculos de unión con otros compañeros de promoción y relaciones con el sector, promoviendo redes de contactos y de desarrollo profesional.

Alumni La Comercial

http://lacomercialalumni.es

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Hablamos sobre Owncloud en la Librecon 2014

Mañana, 12 de noviembre, hablamos sobre Owncloud en el espacio Tech Space de la Librecon 2014.

Los servicios de ficheros en la nube como Dropbox, Google Drive o One Drive son ampliamente utilizados por consumidores y empresas, ya que los ficheros son uno de los métodos más eficaces para intercambiar información.

Sin embargo, este tipo de servicios presentan una serie de desventajas en términos de riesgos de dependencia tecnológica y cumplimiento normativo que no son aceptables para muchos. Owncloud es la solución perfecta para quienes quieran disponer de una nube bajo su control.

Owncloud

En el marco de la Librecon 2014, daremos una visión general de Owncloud y de las ventajas que aporta.

Pondremos a disposición de los asistentes un servidor en la nube para que puedan probar Owncloud durante toda la jornada.


Solid Rock IT, especialistas en nube y software libre para la empresa

Kategoriak: General | Komentarioak desgaituta daude