Adsence

sábado, 10 de enero de 2015

Configuraciones Basicas en Apache ActiveMQ

http://activemq.apache.org/ 


Apache ActiveMQ es un bróker de mensajería de código abierto (bajo licencia Apache 2.0) que implementa la especificación de Java Message Service 1.1 (JMS).
Ofrece Características empresariales como:
  • Clustering
  • Múltiples almacenes para mensajes
  • Capacidad de emplear cualquier administrador de base de datos como proveedor de persistencia JMS, aparte de VM, caché y persistencia de colas por el KahaDB.
Otra caracteristica que me parece realmente interesante es que tambien soporta la especificacion NMS para .NET y tambien puede usarse en C, C++, Delphi,Perl, Python, PHP, Ruby.

Este broker de mensajeria tiene un conjunto de propiedades mediante las cuales se puede tener un mejor rendimiento, a continuacion las mas basicas

Multicast

Esta propiedad nos ayuda a que las peticiones sea distribuidas entre los brokers de mensajeria disponibles en la red, esta propiedad viene habilitada por omisiòn, en la mayoria de las veces es mejor deshabilitarlo.
Por amision en el archivo activemq.xml viene lo siguiente:
<transportConnector name="openwire" uri="tcp://localhost:61616"
 discoveryUri="multicast://default"/>

reemplazar con:
<transportConnector name="openwire" uri="tcp://localhost:61616" />


Memoria

Dentro de las configuraciones de memoria hay que tener en cuenta 2 cosas una es la memoria de arranque del broker de mensajeria y otra con la que opera el servicio de colas virtuales o persistentes, asi para configurar la memoria de arranque del broker como servicio se utiliza el archivo
Wrapper.conf
En este archivo hay que tener en cuenta dos cosas si nuestra instalacion es un servicio de 32 bits, la memoria maxima es de 2gb, por el contrario si es de 64 bits la memoria maxima es de 4 gb.
activemq.xml

Ampliar la memoria de uso del bróker en la sección memoryUsage:
<systemUsage>
 <systemUsage>
  <memoryUsage>
   <memoryUsage limit="64 mb"/>
  </memoryUsage>
 <storeUsage>
   <storeUsage limit="100 gb"/>
  </storeUsage>
 <tempUsage>
   <tempUsage limit="50 gb"/>
 </tempUsage>
 </systemUsage>
</systemUsage>

 Tipos de Transporte

En general se usa el tipo de transporte TCP, sin embargo es recomendable tomar en cuenta la implementacion de una mejora llamada NIO (network I/O), que es un trasporte similar al TCP pero optimizado para redes.

Espero les sirva esta pequeña guia sobre una optimizacion inicial de este broker de mensajeria, que me parece una buena opcion para este tipo de servicios. 

jueves, 8 de enero de 2015

Administracion del proceso de desarrollo




La administracion del proceso de desarrollo es una de las tareas muy importantes a la hora de desarrollar un proyecto de software, ya que permite realizar una de los procesos importantes  dentro del manejo de proyectos como es el Control y Monitoreo de Proyectos.
Existen varias herramientas  que permite soportar el desarrollo y nos ayudan a tener documentada las fases del proyecto.

Jira

Es una herramienta desarrollada por Atlassian que entre otras cosas y para mi gusto la mas interesante es la visualizacion del estado de proyecto a traves de cuadros de flujo acumulado, aunque el manejo de incidentes y tambien otras visualizacion para el dia a dia como tableros kamban.

VersionOne 

Es un producto similar a Jira, con la diferencia que es exclusivo para el manejo de proyectos que sigan metologias agiles, sin embargo es una gran herramienta.

Estas dos herramientas son pagadas pero agregan mucho valor al momento del manejo de proyectos, existen herramientas limitadas y de uso libre como el tablero kamban que ofrece el sitio kambaflow en el cual uno se registra y puede crear los tableros y usuarios para ayudarnos en el control diario de los proyectos.

Existen empresas que ayudan con el soporte en herramientas para proceso de desarrollo completo como parte de sus servicios en cloud, y una gran mayoria de empresas usan este tipo de servicios ya que se desliga la compra de muchas licencias para este soporte, un ejemplo de este tipo de servicios es el que ofrece Atlassian.

Existen muchas mas herramientas para poder hacer este proceso, sin embargo lo importante aca es poder realizar y poder obtener de un "vistazo" el estado actual de un proyecto asi como las actividades diarias del personal del cual como gerentes de proyecto esta a nuestro cargo, y es una de las tareas en las que normalmente se falla con la deteccion tardia de problemas y retrasos en los proyectos