Una aplicación distribuida es una aplicación que se divide en varios objetos, por ejemplo, una base de datos, una consola de administración, la conexión de red… Estos objetos se pueden definir a través de los diferentes management packs, cuya función es permitir al operations manager la monitorización de aplicaciones y servicios. Sin ellos no reconocería los diferentes objetos que podamos tener en nuestro entorno.

Las aplicaciones distribuidas suelen dividirse en varios niveles:

– Tier 1: Frond-End que sería el nivel de aplicación de los datos al usuario.

– Tier 2: Servidor de aplicaciones donde se ejecutarían todas nuestras aplicaciones.

– Tier 3: BBDD, donde se almacenan todos los datos de las aplicaciones y de los usuarios.

En cada nivel podemos tener múltiples instancias de máquinas para conseguir alta disponibilidad mediante scale-out.

Esta configuración de aplicaciones hace que monitorizar su funcionamiento sea más complejo que símplemente comprobar si un puerto responde o no, o el estrés de una determinada máquina en un momento concreto.

A la disponibilidad del servicio también le puede afectar la conectividad entre diferentes niveles, por lo que las máquinas podrían estar funcionando de la forma correcta pero el servicio estaría caído ya que las maquinas entre los diferentes niveles no tendrían conexión.

Para monitorizar nuestra aplicación distribuida podemos utilizar los monitores que vienen por defecto o crear los nuestros personalizados.

Existen varios tipos de monitores que podemos crear:

  • Unit Monitor: Mide algún aspecto de la aplicación. Puede comprobar un contador de rendimiento para determinar el rendimiento de la aplicación, puede ejecutar un script para realizar una transacción sintética o puede controlar un evento que indica un error. Las clases normalmente tendrán varios monitores de unidad destinados a ellas para probar diferentes características de la aplicación y para supervisar problemas.
  • Dependency Rollup Monitor: Proporciona la acumulación de estado entre diferentes clases. Esto permite que el estado de un objeto dependa del estado de otro tipo de objeto en el que se basa para una operación correcta.
  • Aggregate Rollup Monitor: Proporciona un estado de mantenimiento combinado para los monitores similares. Los monitores de unidad y de dependencia normalmente se configurarán en un monitor agregado concreto. Además de proporcionar una mejor organización general de los distintos monitores destinados a una clase, los monitores agregados proporcionan un estado de mantenimiento único para varias categorías de la clase.

Monitorización de una aplicación distribuida.

1. En SCOM crear un grupo (no un management group, estos son los grupos de servidores que manejan el scom) para organizar y poder gestionar de una forma más sencilla los diferentes componentes de la aplicación distribuida. Usando estos grupos también nos facilita la tarea de aplicar monitores overrides a los objetos de ese grupo.

2. Utilizar monitores, pueden venir predefinidos en los Management Packs o los podemos crear nosotros. Puertos, servicios, transacciones sintéticas, aplicaciones .net, archivos log…

3. Definimos overrides si es necesario, y los aplicamos a grupos que hemos definido.

4. Aplicamos APM (Application Performance Monitoring) para monitorizar el rendimiento de las aplicaciones a nivel de código. Se suele denominar end-to-end-point. Tiene algunas limitaciones:

a. Aplicaciones .NET

b. Aplicaciones Java (solo a partir de server 2012 r2): Spring, Struts, HIbernate, … Se suelen desplegar sobre servidores Apache o JBoss                           (servidor aplicaciones).

 

Manuel Lozano Rivera

Alumno del curso Microsoft MCSA-MCSE

Centro: Tajamar

Año Académico: 2016-2017