A proposal for model-based automation of enterprise service change management processes

In a globalized world enterprises have to face greatly increased competition, demanding agility to release new products and update to customer demands. From a technological perspective, these factors have lead to the adoption of the service oriented paradigm, which must be supported by a robust IT infrastructure. One of the main competitive factors is the quality of service provided, ensuring the elements of the services portfolio have high availability, and unnoticeable response times. These non functional requirements are partially supported by the execution infrastructure, composed by multiple, heterogeneous servers with specialized roles, distributed over a network. However, the combination of these factors greatly complicate technical management processes of the infrastructure such as diagnosing the environment status, planning the required changes or applying corrections to improve its performance. Frequently those tasks are manually executed by an IT administrator, but this approach is very costly and hampers the desired agility. An increased degree of automation in service change management operations is a must for obtaining the potential advantages of the service oriented approach. This dissertation proposes an enterprise service management architecture with automated operation capabilities. One of the cornerstones of this proposal is an information model of all the relevant management information. The proposed model builds upon the common ground of the main information model standards to characterize both the logical artifacts, originated from the service development process, and the managed runtime elements, ranging from hardware nodes to the provisioned services. The model not only allows to represent different environment configurations but also provides well defined expressions for validating the correctness of any system state, and automatically obtain the required configuration values for some of the managed resources. In addition to the information model, the business objectives, desired functionality, and changes to the domain have been defined using the same concepts. This way, the effect of external changes to the environment configuration, as well as its impact on the stability and functionality of the environment can be automatically analyzed. After defining all the relevant management information through a cohesive model that covers both technical and business aspects, this dissertation proposes an algorithm for automating the execution of service configuration change management activities, based on pseudo-boolean SAT techniques. The proposed algorithm analyzes the current state of a managed domain and, in case the situation is not stable or desirable obtains the set of required changes to restore the system to its intended functionality. Instead of defining separate processes for installation, reconfiguration, or removal of selected elements, the same reasoning steps produce a change plan with the necessary operations. Finally, after taking into account the requirements of enterprise applications, an architecture for a service change management system has been proposed, based on the described models and reasoning techniques. A prototype of the proposed architecture and algorithms has been developed and validated through a set of case studies taken from the context of a real banking organization. The results of the validation show how different situations such as initial provisioning or reaction to hardware malfunctions are correctly addressed by the architecture, as well as how the proposal scales with increasingly larger environments and defined services. La globalizacion ha incrementado el nivel de competencia entre las empresas, obligando a una mejor adaptacion a las necesidades de los clientes, y a recortar los ciclos de desarrollo de nuevos productos. Estos factores pueden ser soportados a nivel tecnico por una infraestructura orientada a servicios, que tenga suficiente robustez para apoyar las necesidades del negocio. En este contexto, mejorar la calidad de servicio es un posible factor para diferenciarse de la competencia, ofreciendo servicios con alta disponibilidad y un tiempo de respuesta imperceptible. Con el objetivo de poder soportar estos requisitos no funcionales la infraestructura base de ejecucion esta formada por un conjunto de servidores heterogeneos, distribuidos sobre la red de la compania. La combinacion de estos factores complica enormemente las actividades gestion de los servicios, como el diagnostico de la situacion del entorno, o la identificacion de los cambios necesarios para corregir una incidencia o mejorar el rendimiento de los servicios en ejecucion. Estas actividades son frecuentemente realizadas manualmente por un administrador de sistemas, aunque el esfuerzo que conlleva este tipo de cambios imposibilita aplicarlos con la agilidad necesaria. Para aprovecharse de las ventajas de la orientacion a servicios resulta necesario incrementar el nivel de automatizacion de estos procesos. Esta tesis propone un conjunto de modelos y tecnicas para automatizar las operaciones de cambios de configuracion a los servicios empresariales. Como base de la propuesta se propone un modelo generico que captura toda la informacion del entorno relevante para su gestion, con el objetivo de ser automaticamente interpretable por los sistemas de control de los cambios. El modelo se basa en las principales abstracciones definidas en los estandares de gestion, y sobre ellas modela tanto los elementos logicos, que provienen directamente del proceso de desarrollo, como los elementos del entorno de ejecucion, caracterizando desde los nodos hardware hasta los servicios en operacion. El modelo no solo permite representar la configuracion del entorno, ya que tambien define como validar la estabilidad del mismo, asi como obtener el valor correcto de configuracion de algunos elementos. Sobre estos mismos conceptos tambien se ha formalizado la definicion de los objetivos de negocio que debe cumplir el sistema, o los cambios que puede experimentar. Esto permite un analisis automatico del efecto de un cambio externo en la configuracion actual, asi como estimar el impacto del cambio en la estabilidad o funcionalidad del sistema. Tras capturar toda la informacion relevante de gestion con los modelos propuestos, esta tesis propone un algoritmo para gestionar las actividades de gestion de cambios, basada en un sistema resolutor SAT pseudo booleano. El algoritmo analiza el estado actual del dominio gestionado y, en caso de que la situacion actual no sea estable o deseable, obtiene un conjunto de cambios que restauraran la funcionalidad deseada del sistema. En lugar de definir procesos independientes para instalar, reconfigurar, o eliminar componentes del sistema, la solucion propuesta es capaz de generar un plan de cambios con las operaciones necesarias mediante el mismo procedimiento. Por ultimo, teniendo en cuenta los requisitos propios de las aplicaciones empresariales, se ha propuesto una arquitectura de un sistema de gestion de cambios de servicios empresariales, basada en los modelos y tecnicas de razonamiento descritas anteriormente. Tambien se ha desarrollado un prototipo de esta arquitectura, que se ha validado mediante un conjunto de casos de estudio extraidos del contexto de una organizacion bancaria. Los resultados de este trabajo de validacion muestran como la arquitectura propuesta es capaz de tratar correctamente distintas situaciones, desde el aprovisionamiento inicial de un nuevo servicio hasta el diagnostico y reparacion de una averia en uno de los dispositivos hardware del entorno. Finalmente, la escalabilidad de la propuesta se ha evaluado mediante una serie de experimentos con modelos del entorno gestionado y la lista de servicios disponibles progresivamente de mayor tamano.