Entradas

Desacoplamiento mediante colas de mensajes

Imagen
En esta entrada vamos a diseñar un sistema en el que algunos componentes interactúan de forma desacoplada mediante el uso de colas de mensajes, con el fin de mejorar el rendimiento, la tolerancia a fallos y la escalabilidad. La necesidad surgió a la hora de redactar una propuesta para sustituir a un sistema anterior que se estaba quedando obsoleto, en la que se incluiría el diseño a alto nivel de un nuevo sistema pensado para solventar las limitaciones del anterior, especialmente en lo relativo a escalabilidad. Realmente desconozco el estado actual del asunto, pues me llegó como una conversación de pasillo. Casi no había requisitos y tuve que inventármelos, pero básicamente el sistema debía consistir en lo siguiente: Se trata de una aplicación o funcionalidad web, a disposición de los ciudadanos en Internet, para la consulta de información agregada (expedientes, notificaciones...) procedente de diferentes organismos de la Administración integrados con el sistema. Es decir, una es

Arquitectura híbrida cloud / on-premise

Imagen
La capa gratuita de Amazon web services ofrece una instancia mínima de cómputo  EC2  en la nube sin coste durante 12 meses. Se trata de una instancia t2.micro (1 vCPU, 1 GB RAM) y hasta 30 GB de almacenamiento en volúmenes Amazon EBS (Elastic Block Store). Aun tratándose de una máquina con capacidades limitadas, nos ofrece una disponibilidad 24/7 y toda la flexibilidad de un IaaS , por lo que se le puede dar un uso de provecho, aunque sea para hacer pequeños experimentos. Así que he optado por rescatar una máquina virtual donde había hecho algunos experimentos con Elastic stack y la he complementado con la instancia AWS mencionada para montar una solución híbrida cloud / on-premise para la ingesta 24/7 de eventos online (en concreto, tweets) y su posterior explotación on-premise con ELK: En el lado del cloud corre un Logtash escuchando Twitter con ayuda del plugin correspondiente. Está configurado para capturar nuevos tweets de algunas cuentas concretas

Librerías comunes en Tomcat 8. Caso real: SoapUI mocks

Imagen
Bueno, ya era hora de actualizar un poco esto, y además con material que ya tenía generado de antes, pero entre unas cosas y otras lo fui dejando... En esta entrada analizaremos un problema relacionado con la inestabilidad de un servidor Tomcat 8, concretamente, indisponibilidades y caídas provocadas por falta de memoria ( OutOfMemoryError ). Este Tomcat se utiliza exclusivamente para desplegar ' mock services ' generados con la herramienta SoapUI , permitiendo simular el funcionamiento de diferentes sistemas de backend (que a su vez son invocados por servicios de integración que corren en un ESB). El número de servicios mock a desplegar es notablemente alto y los recursos de la máquina son limitados, por lo que asignar más memoria a la JVM no parece una solución sostenible. Como medida alternativa, inicialmente se opta por configurar el servidor para compartir las librerías comunes entre diferentes despliegues, ahorrando así memoria, aunque como consecuencia de esto se

Ampliando el disco de nuestras máquinas virtuales

Imagen
"Voy a instalarme el 'Augury BlauBlauveloper 14p' en esta máquina virtual Linux que tengo por ahí (muerta del asco), aunque creo que me quedé un poco corto al dimensionarla ..."   Fatal error: not enough disk space. Aborting installation  A tomar por saco bicicleta. ¿Os suena? Por suerte estamos trabajando con máquinas virtuales y no hace falta perder tres horas liberando espacio ni encargar un disco duro por envío urgente. A continuación recopilo los pasos a dar para aumentar fácilmente el espacio disponible, en este caso en un CentOS 7 1611 mini (sin entorno gráfico) sobre VirtualBox, que inicialmente tiene un disco virtual de 8 GB. No es muy diferente a lo que habría que hacer en una máquina física o en un sistema Windows. Paso 1) Aprovisionar un disco En lugar de comprar un disco duro y conectarlo al puerto correspondiente (SATA o IDE... qué tiempos aquellos del master/slave 😢) hay que crear un nuevo disco virtual en VirtualBox