Departamento de Sistemas Informáticos y Computación Tesis Doctoral depositada en cumplimiento parcial de los requisitos para el grado de Doctor en Informática Reconfiguración Dinámica e Incremental de Arquitecturas de Servicios Cloud Dirigida por Modelos Miguel Ángel Zúñiga Prieto Director: Dr. Emilio Insfrán Pelozo Valencia, julio de 2017 Tesis Doctoral © Miguel Ángel Zúñiga Prieto, Valencia, España MMXI-MMXVII. Todos los derechos reservados en favor de sus respectivos propietarios. Diseño de la Portada: Angel Humberto Guapisaca Vargas Reconfiguración Dinámica e Incremental de Arquitecturas de Título: Servicios Cloud Dirigida por Modelos Presentado por: Miguel Ángel Zúñiga Prieto Director: Dr. Emilio Insfrán Pelozo Institución: Universitat Politècnica de València (UPV) Departamento: Sistemas Informáticos y Computación (DSIC) Programa de Doctor en Informática doctorado: Fecha de envío: 28 de abril de 2017 Fecha de defensa: 25 de julio de 2017 Dr. Juan Manuel Murillo Rodríguez (Universidad de Extremadura) Revisores Dra. Jennifer Pérez Benedí (Universidad Politécnica de Madrid) externos: Dra. María José Escalona Cuaresma (Universidad de Sevilla) Presidente: Dr. Juan Manuel Murillo Rodríguez (Universidad de Extremadura) Secretario: Tribunal: Dr. Carlos Cuesta Quintero (Universidad Rey Juan Carlos) Vocal: Dr. Juan de Lara Jaramillo (Universidad Autónoma de Madrid) Agradecimientos Este es el final de un largo camino lleno de obstáculos, no siendo posible reco- rrerlo solo. A continuación, se citan a todas las personas que contribuyeron de alguna forma en este trabajo. A Emilio por su confianza, esfuerzo y apoyo durante todos estos años. A Silvia por sus siempre sabios consejos y colaboración en la validación de este trabajo. Al equipo de trabajo del proyecto Value@Cloud: Marta, Fernando, Silvia, Emi- lio, Ana, Joao, Eric, Javier2, Carlos, y Raphael, quienes han aportado sus puntos de vista para mejorar este trabajo. A Javier por sus contribuciones aportadas a esta tesis. A Carlos, Daniel y Juan por sus contribuciones en la construcción de la infraes- tructura software. A los compañeros del grupo ISSI, por todos los momentos que hicieron ameno todo este tiempo y por su inestimable colaboración en los experimentos (David, Fernando, Vicente, Julio, Kamil, Patricia, Abel). A todos los integrantes de los grupos de investigación que participaron en las sesiones experimentales. A mi esposa Priscila, a nuestras hijas Alejandrita y María Emilia, y a mis padres por todos sus sacrificios y por ser mi apoyo constante. A mi país, al Programa de becas de la Secretaría de Educación Superior, Ciencia, Tecnología e Innovación (SENESCYT) de Ecuador y a la Universidad de Cuenca-Ecuador. Y por último a todos aquellos que de un modo u otro han contribuido a hacer posible este proyecto. Resumen La computación cloud representa un cambio fundamental en la manera en la que las organizaciones adquieren recursos tecnológicos (p. ej., hardware, entornos de desarrollo y ejecución, aplicaciones); en donde, en lugar de comprarlos adquieren acceso remoto a ellos en forma de servicios cloud suministrados a través de In- ternet. Entre las principales características de la computación cloud está la asig- nación de recursos de manera ágil y elástica, reservados o liberados dependiendo de la demanda de los usuarios o aplicaciones, posibilitando el modelo de pago basado en métricas de consumo. Con respecto a las aplicaciones cloud, éstas se componen de servicios (generalmente Servicios Web) desplegados en uno o va- rios proveedores cloud, los cuales son seleccionados dependiendo de las necesi- dades específicas de cada servicio, haciendo uso de sus recursos. El desarrollo de aplicaciones cloud sigue mayoritariamente un enfoque incre- mental, en donde la entrega incremental de funcionalidades al cliente cambia – o reconfigura – sucesivamente la arquitectura actual de la aplicación. Los pro- veedores cloud tienen sus propios estándares tanto para las tecnologías de im- plementación como para los mecanismos de gestión de servicios, requiriéndose soluciones que faciliten: la construcción, integración y despliegue de servicios portables; la interoperabilidad entre servicios desplegados en diferentes provee- dores cloud; y la continuidad en la ejecución de la aplicación mientras su arqui- tectura es reconfigurada producto de la integración de los sucesivos incrementos. Los principios del enfoque de desarrollo dirigido por modelos, del estilo arqui- tectónico de arquitecturas orientadas a servicios y de la reconfiguración dinámica cumplen un papel importante en este contexto. Estos principios ofrecen meca- nismos que permiten afrontar los retos de integración, portabilidad, interopera- bilidad y continuidad de servicios desde un nivel de abstracción más elevado, permitiendo la sistematización y automatización del proceso de desarrollo. La hipótesis de esta tesis doctoral es que los métodos de desarrollo dirigido por modelos brindan a los desarrolladores de servicios cloud mecanismos de abs- tracción y automatización para la aplicación sistemática de los principios de la ingeniería de modelos durante el diseño, implementación y despliegue incremen- tal de servicios cloud, facilitando la reconfiguración dinámica de la arquitectura orientada a servicios de las aplicaciones cloud. El objetivo principal de esta tesis doctoral es por tanto definir y validar empíri- camente DIARy, un método de reconfiguración dinámica e incremental de ar- quitecturas orientadas a servicios. Este método permitirá especificar la integra- V ción arquitectónica del incremento con la aplicación cloud actual, y con esta in- formación automatizar la derivación de los artefactos de implementación que faciliten la integración y reconfiguración dinámica de la arquitectura de servicios de la aplicación cloud. Esta reconfiguración dinámica se consigue al ejecutar los artefactos de reconfiguración que no solo despliegan/repliegan los servicios del incremento y servicios de orquestación entre los servicios del incremento con los servicios de la aplicación cloud actual; sino también, cambian en tiempo de ejecución los enlaces entre servicios. También se ha diseñado e implementado una infraestructura software que so- porta las actividades del método propuesto e incluye los siguientes componentes: i) un conjunto de DSLs, con sus respectivos editores gráficos, que permiten des- cribir aspectos relacionados a la integración arquitectónica, implementación y aprovisionamiento de incrementos en entornos cloud; ii) transformaciones que generan modelos de implementación y aprovisionamiento específicos de la pla- taforma a partir de los modelos de integración de alto nivel; iii) transformaciones que generan artefactos que implementan la lógica de integración y orquestación de servicios, y scripts de aprovisionamiento, despliegue y reconfiguración diná- mica específicos para distintos proveedores cloud (Microsoft Azure©, Google Cloud Platform, y Cloudify), tanto en un modelo de servicio IaaS como PaaS. El método DIARy ha sido validado empíricamente mediante un experimento para evaluar la facilidad de uso, utilidad percibida, intensión de uso y rendimiento con resultados satisfactorios y prometedores. Esta tesis doctoral contribuye al campo de las arquitecturas orientadas a servicios y en particular a la reconfiguración dinámica de arquitecturas de servicios cloud en contextos de desarrollo iterativo e incremental. El principal aporte es un mé- todo bien definido, basado en los principios del desarrollo dirigido por modelos, que facilita elevar el nivel de abstracción y automatizar por medio de transfor- maciones la generación de artefactos que realizan la reconfiguración dinámica de aplicaciones cloud. VI
Description: