8.04.2013

Monitoreo del Middleware (Introducción) - Parte 1

Uno de los requisitos fundamentales para poder tener un middleware que funcione correctamente es la gobernabilidad. En internet podemos encontrar muchísimas definiciones de lo que es gobernabilidad, pero en este post lo vamos a resumir diciendo que es la capacidad que tengo para saber en que estado se encuentra mi middleware en un momento determinado.

Ahora bien, existen muchas dudas respecto a las herramientas que tengo para tener algún nivel de gobernabilidad. En las tecnologías Microsoft tenemos varias opciones, dependiendo de las herramientas que estemos utilizando y la capacidad de inversión que tengamos.

Herramientas disponibles en el “stack” de Microsoft

Como se indico anteriormente, la capacidad de gobernabilidad que podemos tener esta limitada por las tecnologías que estamos usando para monitoreo y gobernabilidad, sin embargo, podemos enumerarlas y describirlas de acuerdo a la combinación de las mismas que estemos utilizando; vamos a ir describiéndolas una a una. En la siguiente figura podemos ver las herramientas de monitoreo disponibles y en que tecnologías aplican.

image

A continuación se describe cada una de las herramientas disponibles en el grafico anterior. Esta descripción es breve ya que dedicare al menos un post posterior para mostrar el potencial de cada una de las herramientas expuestas.

Windows AppFabric

Inicialmente tenemos la herramienta del AppFabric, que nos da capacidades extras de hosting sobre IIS y nos permite monitorear el comportamiento de servicios WCF y workflows de Workflow Foundation que se hostean en el IIS. Esta herramienta nos permite ver información tal como:

  • Servicios Disponibles
  • Estado de los servicios
  • Estado de los workflows
  • Workflows y servicios ejecutados exitosamente
  • Workflows y servicios fallidos
  • Throtling de los servicios
  • Detalle de ejecución de un workflow
  • Seguimiento de variables

El AppFabric es extensible y se pueden agregar características extra asociadas con el contexto de negocio en donde se crean y ejecutan los flujos. También se puede destacar que el AppFabric guarda todos sus datos en SQL Server y por lo tanto toda la información esta disponible para poder desplegarla desde diferentes medios, por ejemplo SharePoint, dispositivos móviles, Excel, etc. Un punto importante es que el producto esta disponible en el Windows Server y no requiere comprar licencias adicionales.

System Center

El siguiente producto es el System Center. Este producto nos va a permitir darle seguimiento al AppFabric, a BizTalk Server y al Windows/Azure Service bus con el “Operational manager”. A diferencia del AppFabric y dle BAM de BizTalk server este nos permite conocer no solo aspectos relacionados con el negocio si no también desde el punto de vista de Infraestructura, tales como estado del BizTalk, estado del AppFabric, estado del cache del AppFabric, estado del BAM de BizTalk, estado del Windows Service Bus, etc. Además, debemos agregarle que el mismo nos permite hacer monitoreos de nuestras aplicaciones corriendo en Azure. La herramienta contiene una serie de características adicionales importantes como por ejemplo creación de alertas para poder notificar de situaciones excepcionales en nuestro middleware o en el caso de BizTalk Server el porcentaje de CPU que utiliza una orquestación en un momento determinado. En mi opinión esta es una de las herramientas mas útiles que posee Microsoft en su “stack” y al mismo tiempo una de las mas sub utilizadas, ya que la mayoría de las empresas solamente lo utiliza para temas de infraestructura y dejan de lado todo el potencial que nos puede proveer esta herramienta. Esta herramienta no es gratuita y debe de ser adquirida para poder ser utilizada.

BizTalk Server BAM

El BizTalk Server BAM – Business Activity Monitoring es una herramienta muy avanzada que esta especializada en seguimiento de ejecución de diversos componentes en el mundo .NET. Con el BAM de BizTalk puede monitorear:

  • Mensajes de BizTalk Server
  • Orquestaciones de BizTalk Server
  • Servicios de WCF
  • Workflows de Workflow Foundation
  • Aplicaciones .NET

El monitoreo que puedo hacer con el BAM de BizTalk es avanzado y orientado a los negocios; es decir, el tema de la infraestructura no esta incluido – tal como si lo hace el System Center. La herramienta es muy avanzada y funciona a través de Vistas creadas a partir de las actividades definidas en Excel, lo que permite que personal del negocio y que es experto en Excel pueda recibir una capacitación y establecer los modelos de monitoreo de los procesos de negocio dentro de la empresa a través del BAM. A nivel de gobernabilidad esta es la herramienta que personalmente mas recomiendo ya que permite a las empresas tener un control mas granular del estado de su middleware y las aplicaciones que lo sustentan. Para utilizarla hay que tener licenciado BizTalk Server lo cual inicialmente puede ser una limitante para una empresa, pero esta demostrado que el retorno de la inversión con el BAM se alcanza de forma rápida y sencilla por el inmenso valor agregado que le aporta a la organización en temas de inteligencia de negocios, seguimiento de procesos.

Otras Herramientas – BizTalk 360

Existen varias herramientas de terceros que son muy útiles a la hora de monitorear el estado de un middleware. Una de las mas conocidas es BizTalk 360, la cual nos permite ver el estado del middleware a través de una interface Web. La herramienta es de uso exclusivo con BizTalk server y tiene diversas características que la hacen interesante y casi necesaria en las empresas donde tienen BizTalk Server o piensan poner un middleware y están considerando BizTalk Server. La herramienta tiene un costo bastante accesible y se recomienda su uso para aumentar el nivel de gobernabilidad en la empresa.

A que tipo de monitoreo me refiero?

Cada vez que hablo de gobernabilidad y monitoreo, encuentro gente que se confunde en el termino y comparan las herramientas antes mencionadas con herramientas que permiten darle trazabilidad al código de las aplicaciones .NET y permiten cosas tales como ver en que línea sucedió un error, cual aplicación esta caída, cuales servicios se reportan como intermitentes, etc. Las herramientas antes mencionadas no solo dan seguimiento del estado de las aplicaciones sino que también pueden hacer cosas como mostrar la trazabilidad completa de un workflow para reconstruir una transacción, establecer el tiempo promedio de ejecución de un servicio especifico, el porcentaje de tiempo en que una orden dura entregándose desde la empresa hasta el proveedor, etc. Así que hay una clara diferencia entre productos que sirven para ver el estado de un recurso, y herramientas que monitorean la capa media como un todo.