Gobernabilidad como Solución a los Errores en SOA

En otra ocasión ya hablé de Gobernabilidad en Arquitecturas SOA y de la importancia de su adopción casi desde el inicio del proyecto; como un método muy recomendado (y casi necesario) para la consecución satisfactoria del mismo.

Normalmente, muchos de los errores más comunes en proyectos SOA, tienen como solución la aplicación de una buena ejecución de gobernabilidad en la arquitectura:

  • Centralización de la información de los servicios: A medida que nuestra arquitectura crece y crece, el número de servicios puede llegar a ser inmanejable. Es frustrante que una de las máximas en SOA sea la reutilización de los servicios que se van desarrollando; y una y otra vez vemos como se rehacen y duplican los mismos desarrollos por equipos y departamentos distintos que no tienen conocimiento del total de los servicios existentes en la empresa y por tanto de las funcionalidades disponibles.

    La solución a este problema pasa por la utilización de un registro y repositorio de servicios; tan importante como necesario para centralizar toda la información existente. Así, gracias a ello, podremos rápidamente ver toda la colección de servicios que nos son accesibles, cual es su funcionalidad, como se pueden utilizar, etc…

  • Buenas prácticas de diseño: A menudo se crean servicios y más servicios; y uno de los principales problemas que nos encontramos es que en el momento en que se diseñaron no se pensaron para ser reutilizados más allá del ambito para el que fueron creados. Eso a menudo provoca que la reutilización sea bastante compleja o que haya que rediseñarlos o modificarlos para hacerlos más reutilizables.

    El problema de la remodelación de servicios radica principalmente en que suele venir acompañado de un impacto a los clientes del mismo que ya los estén utilizando y por tanto la modificación de estos (como si de una cadena se tratara). Por ello; es importante aplicar buenas prácticas de reutilización a la hora de construir servicios de tal manera que sean totalmente susceptibles de ser utilizados por cualquier cliente potencial.
    Además; es sumamente importante que los desarrollos estén probados correctamente a todos los niveles (funcionalidad, seguridad, etc..) y que cumplan políticas de interoperabilidad (WS-I) para la aceptación de los mismos en el sistema de gobernabilidad de la arquitectura.

  • Explotación correcta de los servicios: Cuando los servicios llegan a sistemas de producción; a menudo no hay un control exhausto o correcto que indique el uso de los mismos.
    Es importante la utilización de herramientas de monitorización que nos permitan tener controlados en todo momento los servicios que están siendo utilizados; asi como los clientes que están teniendo, etc… a fin de poder dimensionarlos correctamente y permitir que puedan ejecutarse sin provocar cuellos de botella.
  • Despliegues controlados / mantenimientos de versiones: El número creciente de versiones, dependencias, etc… hace que a veces halla problemas a la hora de desplegar y redesplegar nuevos desarrollos o correcciones de los ya existentes.
    Por ello, es importante controlar las versiones y las dependencias que se van creando; para que si algo sale mal, cuestiones tan importantes como un rollback de la instalación, sea rápido, fácil y sencillo. Iniciativas como OSGi posiblemente serán muy importantes en el futuro ya que solucionarán bastantes de estos problemas.

La gobernabilidad en SOA es muy importante. Preguntas como

  • ¿Qué ocurre si se cambia un servicio?
  • ¿Cómo se puede asegurar la calidad de un servicio?
  • ¿Cómo podemos asegurar que un servicio (nuevo o existente) cumple con las políticas de calidad y de seguridad establecidas por la empresa?
  • ¿Cómo podemos asegurar el rendimiento y los SLA de los servicios?

deben ser cotestadas con un Plan de Gobernabilidad SOA.

Leave a Reply