Unacloud - infraestructura como servicio para cloud computing oportunista
Texto completo
(2) UNACLOUD: INFRAESTRUCTURA COMO SERVICIO PARA CLOUD COMPUTING OPORTUNISTA. EDGAR EDUARDO ROSALES ROSERO. Tesis de grado presentada como requisito para optar al título de Magister en Ingeniería – Sistemas y Computación. Director: Ph. D. Harold Enrique Castro Barrera Profesor Asociado. UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN BOGOTÁ D.C. JULIO 2010.
(3) TABLA DE CONTENIDO 1. INTRODUCCIÓN .............................................................................................. 9 1.1. CONTEXTO................................................................................................. 13 1.2. OBJETIVO PRINCIPAL ............................................................................... 15 1.3. OBJETIVOS ESPECÍFICOS ....................................................................... 15 2. CLOUD COMPUTING .................................................................................... 16 2.1. ASPECTOS CONCEPTUALES ................................................................... 16 2.1.1. Contexto histórico..................................................................................... 16 2.1.2. Definiciones en construcción .................................................................... 17 2.1.3. Características principales ....................................................................... 19 2.1.4. Definición propuesta................................................................................. 21 2.1.5. Modelos de servicio.................................................................................. 21 2.1.6. Virtualización ............................................................................................ 24 2.1.7. Modelos de despliegue ............................................................................ 25 2.1.8. Ventajas de cloud computing ................................................................... 26 2.1.9. Desventajas de cloud computing ............................................................. 28 2.2. IMPLEMENTACIONES DEL MODELO IAAS .............................................. 29 2.2.1. Amazon Elastic Compute Cloud ............................................................... 29 2.2.2. Nimbus ..................................................................................................... 32 2.2.3. OpenNebula ............................................................................................. 34 2.2.4. Eucalyptus................................................................................................ 36 2.2.5. VMware View y VMware Sphere .............................................................. 38 2.3. EVALUACIÓN DE LAS IMPLEMENTACIONES DEL MODELO IAAS ........ 41 3. COMPUTACIÓN OPORTUNISTA .................................................................. 46 3.1. ASPECTOS CONCEPTUALES ................................................................... 46 3.1.1. Definición ................................................................................................. 46 3.1.2. Contexto de aplicación ............................................................................. 47 3.2. IMPLEMENTACIONES DE LA COMPUTACIÓN OPORTUNISTA .............. 48 3.2.1. Taxonomía de las implementaciones de la computación oportunista ...... 48 3.2.2. UnaGrid .................................................................................................... 50 3.3. IDENTIFICACIÓN DE ASPECTOS DE DISEÑO E IMPLEMENTACIÓN ÚTILES PARA EL DESARROLLO DE UNACLOUD ............................................. 52 4. EVALUACIÓN DEL ESTADO DEL ARTE CON RESPECTO A LOS OBJETIVOS .......................................................................................................... 57 4.1. EVALUACIÓN DEL ESTADO DEL ARTE DE CLOUD COMPUTING ......... 58 4.2. EVALUACIÓN DEL ESTADO DEL ARTE DE LA COMPUTACIÓN OPORTUNISTA .................................................................................................... 62 5. ESTRATEGIA DE SOLUCIÓN ....................................................................... 69 5.1. ESTRATEGIAS DE DISEÑO E IMPLEMENTACIÓN .................................. 69 5.1.1. Estrategia de virtualización ...................................................................... 70 5.1.2. Estrategia oportunista .............................................................................. 71 5.2. ALCANCE DE LA SOLUCIÓN..................................................................... 72.
(4) 5.2.1. Alcance funcional ..................................................................................... 72 5.2.2. Alcance no funcional ................................................................................ 74 6. UNACLOUD.................................................................................................... 77 6.1. VISIÓN GENERAL DE LA ARQUITECTURA .............................................. 77 6.2. ARQUITECTURA ........................................................................................ 79 6.2.1. UnaCloud Server ...................................................................................... 80 6.2.1.1. Interface Layer ...................................................................................... 82 6.2.1.2. Core Layer ............................................................................................ 83 6.2.1.3. External Layer ....................................................................................... 86 6.2.1.4. Diagrama de clases de UnaCloud Server ............................................. 87 6.2.2. UnaCloud Client ....................................................................................... 87 6.2.2.1. External Layer ....................................................................................... 87 6.2.2.2. Core Layer ............................................................................................ 89 6.2.2.3. Diagrama de clases de UnaCloud Client .............................................. 91 6.3. MODELO DE PROCESOS DE UNACLOUD ............................................... 91 6.3.1. Personalización del modelo IaaS ............................................................. 91 6.3.2. Despliegue del modelo IaaS .................................................................... 92 6.3.3. Administración del modelo IaaS ............................................................... 93 6.3.4. Administración de la infraestructura base ................................................ 94 6.4. MECANISMOS DE COMUNICACIONES .................................................... 96 6.4.1. Mecanismos de seguridad en las comunicaciones .................................. 97 7. IMPLEMENTACIÓN, PRUEBAS Y RESULTADOS ...................................... 100 7.1. FASES DE IMPLEMENTACIÓN................................................................ 100 7.2. HERRAMIENTAS UTILIZADAS EN EL DESARROLLO DE UNACLOUD . 102 7.2.1. Herramientas utilizadas para el desarrollo de UnaCloud Server ............ 102 7.2.2. Herramientas utilizadas para el desarrollo de UnaCloud Client ............. 103 7.3. IMPLEMENTACIÓN DE UNACLOUD ....................................................... 103 7.3.1. Procedimiento de autenticación para el acceso a los servicios de UnaCloud ............................................................................................................ 103 7.3.2. Procedimiento de administración de usuarios UnaCloud ....................... 104 7.3.3. Proceso de personalización del modelo IaaS ........................................ 105 7.3.4. Proceso de despliegue del modelo IaaS ................................................ 109 7.3.5. Proceso de administración del modelo IaaS .......................................... 110 7.3.6. Procedimiento de consulta de la trazabilidad del modelo IaaS .............. 111 7.3.7. Procedimiento de administración de los laboratorios ............................. 112 7.3.8. Procedimiento de administración de las máquinas físicas ..................... 112 7.3.9. Proceso de administración de la infraestructura base ............................ 113 7.3.10. Procedimientos adicionales ................................................................ 114 7.4. PRUEBAS Y RESULTADOS DE UNACLOUD .......................................... 115 7.4.1. Características de la infraestructura de despliegue................................ 115 7.4.2. Pruebas para la validación de las estrategias de virtualización y oportunista........................................................................................................... 117.
(5) 7.4.3. Pruebas de tiempos de respuesta de UnaCloud .................................... 121 7.4.4. Pruebas en el contexto grid computing .................................................. 122 7.4.5. Pruebas en el contexto cloud computing................................................ 124 8. CONCLUSIONES Y TRABAJO FUTURO .................................................... 128 9. BIBLIOGRAFÍA ............................................................................................. 132 ANEXOS ............................................................................................................. 140 ANEXO A - IMPLEMENTACIONES DE LA COMPUTACIÓN OPORTUNISTA .. 140 ANEXO A1 - WORM ........................................................................................... 140 ANEXO A2 - CONDOR ....................................................................................... 141 ANEXO A3 - GIMPS ............................................................................................ 143 ANEXO A4 - SETI@HOME ................................................................................. 144 ANEXO A5 - DISTRIBUTED.NET ....................................................................... 146 ANEXO A6 - BOINC ............................................................................................ 147 ANEXO A7 - BAYANIHAN COMPUTING .NET................................................... 149 ANEXO A8 - OURGRID ...................................................................................... 150 ANEXO A9 - INTEGRADE .................................................................................. 152 ANEXO B - DIAGRAMAS DE CLASES .............................................................. 155 ANEXO B1 - DIAGRAMA DE CLASES DE UNACLOUD SERVER ................... 155 ANEXO B2 - DIAGRAMA DE CLASES DE UNACLOUD CLIENT ..................... 157 ANEXO C - HERRAMIENTAS UTILIZADAS EN EL DESARROLLO DE UNACLOUD ........................................................................................................ 160 ANEXO C1 HERRAMIENTAS UTILIZADAS EN EL DESARROLLO DE UNACLOUD SERVER ........................................................................................ 160 ANEXO C2 - HERRAMIENTAS UTILIZADAS EN EL DESARROLLO DE UNACLOUD CLIENT .......................................................................................... 161.
(6) ÍNDICE DE FIGURAS Figura 1. Modelos de servicio cloud computing ..................................................... 21 Figura 2. Diagrama de despliegue de un hypervisor ............................................. 24 Figura 3. Modelos de despliegue cloud computing ............................................... 26 Figura 4. Diagrama de despliegue de Amazon EC2 ............................................. 30 Figura 5. Arquitectura de Nimbus .......................................................................... 33 Figura 6. Arquitectura de OpenNebula .................................................................. 35 Figura 7. Diagrama de despliegue de Eucalyptus ................................................. 37 Figura 8. Diagrama de despliegue de VMware View ............................................. 39 Figura 9. Arquitectura de VMware vSphere........................................................... 40 Figura 10. Arquitectura de UnaGrid ....................................................................... 51 Figura 11. Estrategia de virtualización de UnaCloud ............................................. 71 Figura 12. Estrategia oportunista de UnaCloud..................................................... 72 Figura 13. Visión general de la arquitectura de UnaCloud .................................... 77 Figura 14. Diagrama de componentes de la arquitectura de UnaCloud ................ 80 Figura 15. Diagrama de componentes de la arquitectura de UnaCloud Server .... 81 Figura 16. Diagrama de componentes de la arquitectura de UnaCloud Client ...... 88 Figura 17. Proceso de personalización del modelo IaaS en UnaCloud ................. 92 Figura 18. Proceso de despliegue del modelo IaaS en UnaCloud ........................ 93 Figura 19. Proceso de administración del modelo IaaS en UnaCloud .................. 94 Figura 20. Proceso de administración de la infraestructura base en UnaCloud .... 95 Figura 21. Protocolo de seguridad entre UnaCloud Server y UnaCloud Client ..... 97 Figura 22. Protocolo de seguridad entre UnaCloud Client y UnaCloud Server ..... 98 Figura 23. Proceso de despliegue de un CVC en GUMA. ................................... 101 Figura 24. Autenticación de usuarios UnaCloud. ................................................ 104 Figura 25. Administración de usuarios UnaCloud. .............................................. 104 Figura 26. Personalización del tipo de sistema operativo. .................................. 105 Figura 27. Personalización de la versión del sistema operativo. ......................... 106 Figura 28. Personalización del conjunto de aplicaciones. ................................... 106 Figura 29. Consulta del listado de aplicaciones. ................................................. 106 Figura 30. Personalización del tamaño del disco duro. ....................................... 107 Figura 31. Personalización del número de núcleos de procesamiento. .............. 107 Figura 32. Personalización del tamaño de la memoria RAM. .............................. 108 Figura 33. Personalización del número de instancias y el tiempo de ejecución. . 108 Figura 34. Personalización del modelo IaaS con localización de ejecuciones. ... 109 Figura 35. Consola de administración del despliegue del modelo IaaS. ............. 110 Figura 36. Monitoreo del modelo IaaS. ............................................................... 110 Figura 37. Administración del tiempo de ejecución del modelo IaaS. ................. 111 Figura 38. Reporte de la trazabilidad de uso del modelo IaaS. ........................... 111 Figura 39. Administración de los laboratorios que soportan a UnaCloud. ........... 112.
(7) Figura 40. Administración de las máquinas físicas que soportan a UnaCloud. ... 113 Figura 41. Administración de la infraestructura física que soporta a UnaCloud. . 113 Figura 42. Monitorización de la infraestructura física que soporta a UnaCloud. . 114 Figura 43. Administración de las máquinas virtuales. ......................................... 115 Figura 44. Infraestructura de despliegue de UnaCloud. ...................................... 117 Figura 45. Uso simultáneo del procesador por parte del usuario y la máquina virtual. .................................................................................................................. 119 Figura 46. Diagrama de despliegue de varios segmentos worm ......................... 140 Figura 47. Arquitectura de Condor ...................................................................... 142 Figura 48. Diagrama de despliegue de GIMPS ................................................... 144 Figura 49. Diagrama de despliegue de SETI@home .......................................... 145 Figura 50. Diagrama de despliegue de Distributed.net ....................................... 147 Figura 51. Arquitectura de BOINC....................................................................... 148 Figura 52. Diagrama de despliegue de Bayanihan Computing .NET .................. 149 Figura 53. Diagrama de despliegue de OurGrid .................................................. 151 Figura 54. Arquitectura de InteGrade .................................................................. 153 Figura 55. Diagrama de clases de UnaCloud Server .......................................... 156 Figura 56. Diagrama de clases de UnaCloud Client ............................................ 158 Figura 57. Estructura de implementación de UnaCloud Server........................... 160 Figura 58. Estructura de implementación de UnaCloud Client. ........................... 162.
(8) ÍNDICE DE TABLAS Tabla 1. Definiciones de cloud computing en construcción. .................................. 18 Tabla 2. Características de cloud computing......................................................... 19 Tabla 3. Clasificación de proveedores IaaS .......................................................... 22 Tabla 4. Clasificación de proveedores PaaS ......................................................... 23 Tabla 5. Clasificación de proveedores SaaS ......................................................... 23 Tabla 6. Comparación y evaluación de las implementaciones del modelo IaaS frente a las características de cloud computing..................................................... 42 Tabla 7. Identificación de aspectos útiles para el desarrollo de UnaCloud ........... 53 Tabla 8. Evaluación de aspectos útiles para el desarrollo de UnaCloud ............... 54 Tabla 9. Requerimientos asociados a la infraestructura base ............................... 58 Tabla 10. Comparación y evaluación de las implementaciones del modelo IaaS frente a los requerimientos asociados a la infraestructura oportunista .................. 59 Tabla 11. Comparación y evaluación del estado de la computación oportunista frente a cloud computing ....................................................................................... 62 Tabla 12. Implementación del componente Web interface. ................................... 82 Tabla 13. Implementación del componente Customized Environment Manager. .. 83 Tabla 14. Implementación del componente Virtual Machine Manager. ................. 84 Tabla 15. Implementación del componente Persistence Manager. ....................... 85 Tabla 16. Implementación del componente Physical Infrastructure Manager. ...... 85 Tabla 17. Implementación del componente Server Communication Manager. ..... 86 Tabla 18. Implementación del componente Server Security Manager. ................. 87 Tabla 19. Implementación del componente Client Communication Manager. ....... 89 Tabla 20. Implementación del componente Client Security Manager. ................... 89 Tabla 21. Implementación del componente Context Manager. ............................. 89 Tabla 22. Implementación del componente Hypervisor Manager. ......................... 90 Tabla 23. Implementación del componente Local Executor Manager. .................. 90 Tabla 24. Implementación del componente Monitoring Manager. ......................... 91 Tabla 25. Comparación entre los prototipos implementados .............................. 102 Tabla 26. Características de la infraestructura de despliegue ............................. 116 Tabla 27. Impacto de las tareas intensivas en procesamiento ............................ 118 Tabla 28. Impacto de las tareas intensivas en entrada y salida (I/O) .................. 118 Tabla 29. Validación de UnaCloud contra las características de la computación oportunista........................................................................................................... 120 Tabla 30. Prueba de tiempos de respuesta de UnaCloud ................................... 121 Tabla 31. Características del CVC de bioinformática .......................................... 123 Tabla 32. Principales contribuciones al proyecto Campus Grid Uniandes .......... 123 Tabla 33. Características de las máquinas virtuales de prueba .......................... 125 Tabla 34. Validación de UnaCloud contra las características generales de cloud computing ............................................................................................................ 126.
(9) 1. INTRODUCCIÓN Entre los más recientes paradigmas de la computación, grid computing1 (1) y cloud computing (2) parecen ser los de mayor prospectiva (3). Grid computing es considerado un paradigma en producción que ha adquirido una enorme relevancia al satisfacer las necesidades de grandes capacidades computacionales para el desarrollo de la e-Ciencia. La investigación académica y científica alrededor de grid computing ha contribuido notablemente a su madurez, conllevando al desarrollo de estándares, arquitecturas, tecnologías, herramientas y aplicaciones que en la mayoría de los casos son abiertas y de propósito general (4). En contraposición, cloud computing es considerado un paradigma en desarrollo (5), cuya madurez puede considerarse en etapa de infancia (6). Al tratarse del más reciente paradigma de la computación (2), aun no existen acuerdos generales para su definición (7) y hay discrepancia en cuanto a sus posibles arquitecturas, modelos y estándares. Sin embargo, cloud computing es considerado el paradigma sucesor de grid computing (8), especialmente porque supone una evolución disruptiva del mismo al tener como objetivo la personalización y entrega de infraestructuras computacionales, software y aplicaciones como servicios de alta usabilidad. Estos servicios ocultan al usuario la mayoría de las complejidades asociadas a la administración de la infraestructura base, pueden ser desplegados bajo demanda, son facturados en un modelo de pago por uso y generalmente son accedidos remotamente a través de Internet (9). Aunque se considera que las mayores expectativas acerca del paradigma cloud computing estarán en fase de producción dentro de 1 a 5 años (10). Cloud computing está captando una gran atención alrededor del mundo (11), (12), no únicamente la de expertos en tecnologías de información y comunicaciones (TICs), sino también académicos, científicos, investigadores, empresarios y personas del común, que se ven atraídos por la entrega de infraestructuras y servicios computacionales bajo demanda (13). Este novedoso paradigma está adquiriendo una fortaleza inesperada en el mercado mundial de las tecnologías de información (TI), pronosticándose una participación del orden de billones de dólares para los próximos años, según estudios publicados por firmas de consultoría e investigación internacionales, como es el caso de Gartner (14), Merrill Lynch (15), IDC (16), entre otras.. 1. El autor usa terminología técnica en idioma inglés al considerarla de común uso en el medio académico e ingenieril, esta incluye palabras como: cluster computing, grid computing, cloud computing, Infrastructure as a Service – IaaS, Platform as a Service – PaaS, Software as a Service – SaaS, middleware, Web, framework, broadcast, open source, entre otras. Adicionalmente, el nombramiento de los componentes de la arquitectura de UnaCloud y todas las figuras del documento fueron elaboradas en idioma inglés para facilitar su divulgación.. 9.
(10) El desarrollo actual de cloud computing tiene dos actores fundamentales. El primero lo constituyen más de 600 empresas del sector TI, incluyendo a gigantes informáticos como es el caso de: Google, IBM, Microsoft, Oracle, Amazon, entre otros. Ellos han desarrollado implementaciones propietarias a gran escala enfocadas en la tercerización de centros de cómputo, el soporte a aplicaciones de negocio, redes sociales, portales de videojuegos y redes de distribución de contenido, estas incluyen a: Google App Engine (17), IBM BlueHouse (18), Microsoft Windows Azure (19), Sun Network.com (Sun Grid) (20), Amazon Web Services (21), Salesforce.com (22), entre muchas otras. El segundo actor lo representa la comunidad académica y científica, responsable del desarrollo de implementaciones abiertas y de propósito experimental, incluyendo proyectos como Eucalyptus (23), Nimbus (24), OpenNebula (25), Reservoir (26), entre otros. Su objetivo se ha enfocado en la necesidad de investigar las potencialidades de cloud computing para suplir la falencias y complejidades innecesarias que el paradigma grid computing ha supuesto tradicionalmente en su esfuerzo por soportar el desarrollo de la e-Ciencia, particularmente en áreas como la medicina, la biología, la física, la optimización de modelos ingenieriles y la educación. Si bien existen muchas diferencias entre las implementaciones propietarias y abiertas, la diferencia más relevante la constituye el presupuesto otorgado para la investigación y la experimentación cloud computing por parte del sector comercial. Presupuesto visible en colosales inversiones en centros de cómputo y tecnologías de vanguardia con capacidad para soportar modelos de servicio y despliegue cloud computing a escala mundial. Sin embargo, las actuales implementaciones abiertas no distan totalmente de este enfoque. Su instalación requiere de grandes inversiones en recursos computacionales dedicados, incluyendo servidores de administración, nodos dedicados a la ejecución y provisión de recursos para máquinas virtuales, sistemas de almacenamiento especializados e infraestructuras de redes de alta velocidad, motivo por el cual son una opción prácticamente inviable en organizaciones y países con recursos económicos escasos. En forma adicional, el proceso de implementación de un ambiente cloud computing es complejo y extenso. Cloud computing tiene tres modelos de servicio que incluyen la provisión de infraestructuras computacionales (procesamiento, memoria, almacenamiento y redes) como servicio (Infrastructure as a Service – IaaS), plataformas de desarrollo como servicio (Platform as a Service – PaaS) y software como servicio (Software as a Service – SaaS). Estos tres modelos son naturalmente dependientes de una infraestructura computacional base, por lo cual no es sorprendente que la mayoría de las iniciativas comerciales, académicas y científicas se hayan fundado en implementaciones parciales del modelo de servicio IaaS (modelo IaaS para abreviar), algunas de las cuales planean integrar modelos PaaS y SaaS en versiones futuras de mayor madurez. 10.
(11) Teniendo en cuenta la relevancia emergente del paradigma cloud computing, la necesidad de su investigación y experimentación en independencia de proveedores comerciales, las dificultades económicas asociadas a los recursos dedicados para el soporte de su infraestructura base (incluso mediante el uso de implementaciones abiertas) y la jerarquía en la implementación de sus modelos de servicio y despliegue. En este trabajo de investigación se presenta a UnaCloud, una implementación a medida del modelo IaaS, que tiene como objetivo la entrega de servicios computacionales fundamentales, haciendo uso oportunista de los recursos de cómputo actualmente disponibles en la Universidad de los Andes, para proveer una plataforma de investigación y experimentación cloud computing escalable y a bajo costo. UnaCloud aprovecha las capacidades computacionales dispersas en computadores y servidores (prevalentemente económicos), que soportan las labores informáticas de estudiantes, docentes y personal administrativo de la Universidad de los Andes. Estos computadores y servidores conforman una infraestructura de crecimiento horizontal que tiende a estar subutilizada por periodos de tiempo significativos, lo cual redunda en la abundancia de recursos computacionales ociosos. Dado el número de computadores y servidores disponibles en la universidad, esta solución es económicamente atractiva para la construcción de infraestructuras computacionales a gran escala, como aquellas requeridas para la implementación de tecnologías y modelos de servicio cloud computing. UnaCloud es una solución oportunista que supera las problemáticas asociadas al aprovechamiento de recursos computacionales preexistentes, caracterizados por su distribución, alta heterogeneidad, independencia de dominio administrativo y disponibilidad parcial. Estas problemáticas han sido objeto de estudio del paradigma de la computación oportunista (27), por lo cual UnaCloud representa una convergencia entre los paradigmas cloud computing y la computación oportunista. El primero de ellos analizado como una finalidad, particularmente en lo relacionado al modelo IaaS y el segundo analizado como un medio, particularmente en lo relacionado a estrategias oportunistas de abastecimiento de infraestructuras computacionales de crecimiento horizontal, se define esto como infraestructuras basadas en la agregación escalable de laboratorios de cómputo y recursos computacionales individuales, no dedicados, distribuidos, heterogéneos y prevalentemente subutilizados. UnaCloud utiliza una estrategia de virtualización que además de optimizar y agilizar el aprovisionamiento, la reutilización y asignación de recursos computacionales bajo demanda, facilita la ejecución de aplicaciones e-Ciencia en sus ambientes nativos, mayoritariamente Linux, con todas las configuraciones de middlewares, frameworks, librerías, etc. sobre recursos computacionales del campus de la Universidad de los Andes, cuyo sistema operativo predominante es 11.
(12) Windows. Adicionalmente UnaCloud utiliza una estrategia de control de impacto que le permite aprovechar recursos compartidos simultáneamente con otros usuarios sin afectar la calidad de servicio percibida por los mismos. UnaCloud provisiona una plataforma de experimentación multipropósito del modelo IaaS, totalmente extensible a otros modelos de servicio cloud computing como PaaS y SaaS. Esta plataforma es capaz de desplegar ambientes personalizados de ejecución bajo demanda, cuya versatilidad implícita, facilita su adaptación dinámica a las necesidades emergentes no solo en el desarrollo de la e-Ciencia, sino también en el soporte o mejoramiento de actividades de naturaleza académica o incluso comercial. Por otra parte, UnaCloud representa un mejoramiento a las iniciativas actuales grid computing de la Universidad de los Andes. Esto incluye al proyecto Campus Grid Uniandes2 (28) y su sub proyecto UnaGrid (29), los cuales a través del estudio, integración y aprovechamiento de las características, oportunidades y ventajas de modelo IaaS, han sido extendidos a través del legado de UnaCloud para superar los logros en investigación y desarrollo en e-Ciencia hasta ahora alcanzados. Este documento se desarrolla de la siguiente forma: en el segundo capítulo se revisan aspectos conceptuales e introductorios al paradigma cloud computing, esto incluye una revisión y evaluación al estado del arte del modelo IaaS. En el tercer capítulo se revisan aspectos conceptuales de la computación oportunista, esto incluye una revisión al estado del arte de las implementaciones que han aportado el conjunto más representativo de estrategias y aspectos de diseño e implementación oportunistas. En el cuarto capítulo se evalúan las implementaciones del modelo IaaS y de la computación oportunista en términos de los objetivos del presente trabajo de investigación. En el quinto capítulo se elabora una descripción general de la estrategia de solución implementada a través de UnaCloud, esto incluye la definición de sus principales estrategias y el alcance del proyecto. En el sexto capítulo se presenta a UnaCloud en términos de su arquitectura y servicios, esto incluye la descripción de las arquitecturas de alto y bajo nivel, los modelos de procesos y los mecanismos de comunicaciones incorporados en UnaCloud. En el séptimo capítulo se describe y analiza la implementación, pruebas y resultados obtenidos con UnaCloud, incluyendo la validación de todos los objetivos y requerimientos planteados en el alcance funcional y no funcional del proyecto. Finalmente, en el octavo capítulo se presentan las conclusiones y se plantea un trabajo futuro orientado a dar continuidad al presente trabajo de investigación.. 2. Proyecto fundado parcialmente por ECOS-NORD action C06M02.. 12.
(13) 1.1. CONTEXTO El trabajo de investigación descrito en este documento se enmarca en el contexto del proyecto Campus Grid Uniandes, una iniciativa de la Universidad de los Andes, cuyo propósito primordial es la construcción y despliegue de una infraestructura a gran escala, capaz de satisfacer las demandas de capacidades computacionales que exige el desarrollo de la e-Ciencia. Este proyecto se ha dividido en dos grandes áreas de trabajo: las infraestructuras basadas en recursos computacionales dedicados, formalmente conocidas como grid de servicios y las infraestructuras basadas en el aprovechamiento de recursos computacionales parcialmente disponibles, formalmente conocidas como grid oportunistas. En el área de trabajo de los grid oportunistas, múltiples esfuerzos de investigación han conllevado al diseño e implementación de UnaGrid, una infraestructura grid virtual oportunista capaz de aprovechar los ciclos computacionales ociosos de los computadores disponibles en los laboratorios de informática del Departamento de Ingeniería de Sistemas y Computación. Esta infraestructura garantiza a los usuarios de los recursos compartidos, tener prioridad para el acceso a los recursos físicos, mientras en forma paralela se aprovechan los recursos ociosos o sub utilizados por los mismos, para suplir a bajo costo los requerimientos computacionales exigidos para el desarrollo de proyectos grid computing académicos e investigativos. UnaGrid se basa en dos estrategias base. La primera estrategia es el uso de la tecnología de virtualización VMware (30) para facilitar el encapsulamiento de ambientes de ejecución personalizados. Esto se logra al fabricar máquinas virtuales con todas las instalaciones y configuraciones de sistemas operativos, middlewares, frameworks, herramientas y librerías, necesarias para la ejecución apropiada de aplicaciones grid computing. La segunda estrategia se basa en la ejecución de máquinas virtuales (que componen un ambiente de ejecución personalizado), como procesos en background de prioridad baja. Esto permite el despliegue de infraestructuras grid virtuales oportunistas en forma paralela a la ejecución de los procesos de un usuario de un recurso compartido, sin afectar la calidad de servicio percibida por el mismo durante el ejercicio de sus labores cotidianas. UnaGrid ha permitido la creación y despliegue de infraestructuras computacionales que han suplido los requerimientos de aplicaciones y proyectos grid computing en diferentes áreas del conocimiento, incluyendo la bioinformática, química computacional e ingeniería industrial. UnaGrid ha mejorado notablemente el tiempo que toma la generación de resultados, producto de la ejecución eficiente de aplicaciones multipropósito que requieren grandes capacidades de 13.
(14) procesamiento. Adicionalmente, UnaGrid ha promovido el trabajo multidisciplinario entre diferentes grupos de investigación, los cuales pueden desplegar sus propias infraestructuras grid, compartiendo y reutilizando una misma infraestructura física. A pesar de los resultados obtenidos a través de UnaGrid, su implementación dista de un estado maduro y actualmente existen problemáticas asociadas a su personalización de servicios bajo demanda, usabilidad, escalabilidad, seguridad, trazabilidad de uso de recursos, monitorización y administración delegada. Estas problemáticas son trasversales a su naturaleza grid computing, fundamentalmente en los procesos asociados al abastecimiento y provisión de infraestructuras computacionales oportunistas a gran escala. En este contexto, el trabajo descrito en este documento retoma los avances3 y aborda las problemáticas actualmente existentes en UnaGrid. Estas problemáticas incluyen la necesidad de una infraestructura computacional de crecimiento horizontal, capaz de satisfacer grandes demandas computacionales a bajo costo. Por este motivo, uno de los objetivos de este trabajo consiste en contribuir al proyecto Campus Grid Uniandes y su sub proyecto UnaGrid, extendiendo sus funcionalidades a través del estudio e integración de las características, oportunidades y ventajas del paradigma cloud computing, particularmente del modelo IaaS implementado a través de UnaCloud. Sin embargo, el alcance de este trabajo de investigación no se limita al contexto de extensión de UnaGrid y aborda un contexto adicional, completamente acorde con la necesidad de investigación y experimentación con el paradigma cloud computing. En este contexto, el presente trabajo de investigación tiene como objetivo el despliegue, la administración y entrega de una plataforma de experimentación del modelo IaaS, extensible a modelos de servicio cloud computing PaaS y SaaS. Esta plataforma de naturaleza versátil puede ser utilizada no solamente para el desarrollo de la e-Ciencia, sino también para mejorar o soportar el desarrollo de actividades académicas e incluso comerciales, que tengan grandes demandas de recursos computacionales.. 3. El autor es parte de un equipo de trabajo que ha aportado activamente al desarrollo de UnaGrid. Este equipo de trabajo ha publicado varios artículos de investigación entre los cuales se encuentran (165), (174) y (175).. 14.
(15) 1.2. OBJETIVO PRINCIPAL Desarrollar un modelo IaaS de cloud computing, que entregue recursos y servicios computacionales fundamentales, soportándose en una infraestructura computacional oportunista de crecimiento horizontal. 1.3. OBJETIVOS ESPECÍFICOS . Validar y extender el estado de la computación oportunista, en relación al modelo IaaS de cloud computing.. . Definir la arquitectura de un modelo IaaS soportado en infraestructuras computacionales oportunistas de crecimiento horizontal.. . Desarrollar un prototipo capaz de desplegar, administrar y entregar una plataforma de experimentación del modelo IaaS, mediante el aprovechamiento oportunista de la infraestructura computacional disponible en los laboratorios de informática del Departamento de Ingeniería de Sistemas y Computación de la Universidad de los Andes.. . Contribuir a los objetivos del proyecto Campus Grid Uniandes.. 15.
(16) 2. CLOUD COMPUTING Este capítulo tiene como objetivo revisar, integrar y complementar aspectos conceptuales e introductorios al paradigma cloud computing. Adicionalmente se tiene como objetivo revisar el estado del arte de las principales implementaciones del modelo IaaS de cloud computing, para identificar aspectos críticos para el diseño e implementación de UnaCloud. Este capítulo se organiza de la siguiente forma: en la primera sección se abordan aspectos conceptuales del paradigma cloud computing, en la segunda sección se revisan implementaciones académicas y comerciales del modelo IaaS, finalmente en la tercera sección se realiza una evaluación a las implementaciones estudiadas. 2.1. ASPECTOS CONCEPTUALES En esta sección se abordan aspectos conceptuales de cloud computing, esto incluye un breve contexto histórico, el estudio de definiciones en construcción, la identificación y selección de características relevantes, la propuesta de una definición propia, la definición de la virtualización como una tecnología de apoyo y la identificación de modelos de servicio, modelos de despliegue, ventajas y desventajas de cloud computing. 2.1.1. Contexto histórico En el año de 1961, John McCarthy inventor del lenguaje de programación LISP visionó: ―un día la computación estará organizada como un servicio público‖ (31), posteriormente el 3 de julio del año de 1969, Leonard Kleinrock uno de los científicos a cargo del proyecto ARPANET (Advanced Research Projects Agency Network), el cual sentó las bases de Internet, dijo: ―actualmente las redes de computadoras están en su infancia, pero en la medida en que crezcan y se vuelvan sofisticadas, probablemente veremos el nacimiento de ‗servicios de computación‘ los cuales, al igual que los servicios de electricidad y teléfono, llegarán a cada casa y oficina alrededor de todo el país‖ (32). Estas visiones se anticipaban a la aparición de nuevos paradigmas de computación fortalecidos por el desarrollo de tecnologías de vanguardia capaces de proveer medidas de desempeño, eficiencia, escalabilidad, distribución, autonomía y ubicuidad, nunca antes vistas. Estos novedosos paradigmas de la computación incluyen: cluster computing (33), grid computing, global computing (34), Internet computing (35), peer-to-peer computing (P2P) (36), ubiquitous computing (37), utility computing (38) y más recientemente cloud computing, derivada del término cloud, usado como metáfora de infraestructuras tecnológicas complejas y cuyo origen se remite a la década de los 90, en referencia a las ya enormes redes ATM (Asynchronous Transfer Mode) (39). 16.
(17) En el año de 1999, Marc Benioff, Parker Harris y otros socios, fundaron la compañía Salesforce.com (22), aplicando tecnologías desarrolladas por compañías como Google y Yahoo! a diversas aplicaciones de negocio. Ellos fortalecieron la entrega de servicios bajo demanda, particularmente SaaS, viéndose respaldados por miles de clientes y negocios exitosos (40). A inicios del año 2000, Yahoo! y Google anunciaron la prestación de servicios cloud a cuatro de las más grandes universidades de Estados Unidos: la Universidad de Carnegie Mellon, la Universidad de Washington, la Universidad de Stanford y el Massachusetts Institute of Technology (MIT). Poco tiempo después IBM Corp. anunció el ofrecimiento de servicios cloud, seguido por gigantes informáticos como Microsoft, Oracle, Intel, SUN, SAS y Adobe, cuyos enfoques abarcaron la provisión de modelos IaaS, PaaS y SaaS. Sin embargo, se considera que el inicio de cloud computing, puede ser atribuido a la aparición de los servicios Web de Amazon (Amazon Web Services) (21), que iniciaron su producción en el año 2006 ofreciendo el modelo IaaS con capacidades básicas de procesamiento y almacenamiento a través de Internet (39). Amazon Web Services popularizó el modelo IaaS, convirtiéndolo en una de las nociones principales de cloud computing (41). Su novedosa estrategia permitió la ejecución personalizada y bajo demanda de máquinas virtuales Linux en infraestructuras computacionales con una complejidad totalmente oculta a los usuarios finales. Esta estrategia minimizó e incluso eliminó los costos capitales para los consumidores de servicios cloud, otorgándoles la posibilidad de aumentar o disminuir las capacidades de su infraestructura computacional para satisfacer los picos o las fluctuaciones en la demanda de servicios TI, pagando únicamente por la capacidad consumida bajo un modelo de facturación basado en tarifas horarias. 2.1.2. Definiciones en construcción Cloud computing es aún un paradigma en evolución, sus definiciones, arquitecturas, modelos, casos de uso, tecnologías base, problemas, riesgos y beneficios, serán continuamente redefinidos en debates promocionados por el sector público y privado (42). Al tratarse del más reciente paradigma de la computación (2), aun no existen acuerdos generales para su definición (39), (43), (44) y su madurez aún puede considerarse en etapa de infancia (6), (45), (46). En general, cloud computing hace referencia a un novedoso aprovisionamiento de infraestructuras, plataformas de desarrollo y software que son entregados como un servicio (47). Este aprovisionamiento está basado principalmente en paradigmas y tecnologías como utility computing, grid computing y la virtualización. Paradigmas y tecnologías que no pueden considerarse nuevas (48), (49), pero que han madurado para permitir a cloud computing, diferenciarse del escenario de 17.
(18) centralización de recursos, propuesto hace más de 50 años con la aparición de servidores robustos compartidos por tiempo. Cloud computing ha brindando nuevas posibilidades para construir y desplegar infraestructuras computacionales y servicios complejos (49), que pueden ser accedidos bajo demanda, ser utilizados desde cualquier lugar, a cualquier hora, ocultando las complejidades de la infraestructura base a los usuarios finales (50). En esta revisión se estudiaron más de veinte definiciones de cloud computing en construcción (3), (7), (39), (42), (44), (50), (51), (52), (53), (54), (55), (56), (57), (58), (59), (60), (61), (62), (63), (64), (65), (66), las cuales plantean acercamientos orientados desde el punto de vista histórico, tecnológico, científico y comercial. La Tabla 1, resume algunas de ellas por considerarlas de mayor relevancia dada la trayectoria y prestigio de la fuente, así como el nivel de aceptación y referencias a las mismas por parte de la industria y la comunidad académica y científica. Tabla 1. Definiciones de cloud computing en construcción.. DEFINICIONES DE CLOUD COMPUTING. Instituto Nacional de Estándares y Tecnología (National Institute of Standards and Technology NIST) de Estados Unidos. ―Un modelo conveniente para permitir el acceso por red y bajo demanda, a un conjunto de recursos computacionales compartidos y configurables (por ejemplo, servidores, almacenamiento, redes, aplicaciones y servicios) que pueden ser abastecidos rápidamente y desplegados con un mínimo esfuerzo de gestión o interacción con el proveedor de servicios‖ (42).. ―Un conjunto de infraestructuras computacionales Research, abstraídas, altamente escalables y administrables, capaces de albergar aplicaciones del consumidor final y facturar por su consumo‖ (64). ―Un estilo de computación donde se provee ‗como un servicio‘, capacidades TI, masivamente escalables, a Gartner, Inc. múltiples clientes externos, usando tecnologías de Internet‖ (65). ―Un tipo de sistema paralelo y distribuido compuesto por un conjunto de computadores virtualizados e interconectados que son abastecidos dinámicamente y Rajkumar Buyya y presentados como uno o más recursos computacionales unificados, soportados por acuerdos otros de nivel de servicios, establecidos mediante la negociación entre el consumidor y el proveedor de servicios‖ (3). Forrester Inc.. 18.
(19) 2.1.3. Características principales A partir de todas las definiciones estudiadas, se hizo un análisis comparativo para extraer las características de cloud computing comúnmente referenciadas. Como se puede apreciar en la Tabla 2, se determinaron 3 categorías generales con 13 características consideradas de mayor relevancia por la cantidad de referencias efectuadas, así como por representar puntos de encuentro conceptuales entre las diferentes fuentes o autores. Características como la usabilidad, el modelo de autoservicio, la personalización de servicios bajo demanda, el uso de tecnologías de virtualización, la administración delegada, la escalabilidad, el acceso a través de red y los modelos de trazabilidad son las características más referenciadas. Por otra parte, características como la centralización de la infraestructura base y la auto regulación en el gasto de energía eléctrica fueron exceptuadas al ser referenciadas en contextos no genéricos. Tabla 2. Características de cloud computing. CON RESPECTO A LOS USUARIOS FINALES. Usabilidad. Modelo de autoservicio. Acceso a través de red. El proveedor de servicios debe ofrecer mecanismos de acceso con interfaces de usuario de alta usabilidad, cuya operación casi intuitiva, requiera conocimientos básicos de TI. El usuario final debe poder consumir servicios computacionales con una mínima o nula interacción humana con el proveedor de servicios, incentivando un modelo de consumo basado en el autoservicio. El proveedor de servicios debe garantizar un nivel de ubicuidad para el acceso a las infraestructuras computacionales, software o aplicaciones desplegadas, ofreciendo servicios que pueden ser invocados por el usuario final desde redes internas, externas y principalmente Internet.. CON RESPECTO AL DESPLIEGUE DE LOS SERVICIOS COMPUTACIONALES Personalización de servicios bajo demanda. Dependiendo del modelo de servicio (IaaS, PaaS y SaaS), el usuario debe poder seleccionar bajo demanda el tipo de infraestructura, software o aplicación que desea consumir como un servicio, así como aplicar configuraciones personalizadas para el 19.
(20) Modelo multiusuario. Virtualización. Escalabilidad. Interoperabilidad y bajo acoplamiento. Extensibilidad. despliegue del mismo. Esto debe facilitar la creación de ambientes personalizados de desarrollo, pruebas y producción que son desplegados, asignados y accedidos bajo la demanda del usuario final. El proveedor de servicios debe poseer infraestructuras computacionales, software o aplicaciones aprovechables mediante un modelo de uso multiusuario que optimice el uso de la infraestructura base. El proveedor de servicios debe poseer infraestructuras computacionales virtuales con la finalidad de asignar recursos y proveer servicios en forma eficiente, dinámica y elástica (conforme a la demanda). El proveedor de servicios debe poseer infraestructuras computacionales, software y aplicaciones capaces de operar eficientemente bajo modelos de consumo, crecimiento y abastecimiento escalables. El proveedor debe desarrollar servicios de alta interoperabilidad y bajo acoplamiento capaces de operar en ambientes distribuidos y de alta heterogeneidad, facilitando su integración con componentes, aplicaciones o infraestructuras pertenecientes al usuario final o incluso a otros proveedores. El proveedor debe desarrollar servicios de alta extensibilidad que faciliten la agregación, especialización o modificación de funciones generales con la finalidad de adaptarse a requerimientos específicos.. CON RESPECTO A LA ADMINISTRACIÓN DE LA INFRAESTRUCTURA BASE. Administración delegada Acuerdos de nivel de servicio y calidad de servicio. Seguridad. El proveedor de servicios debe ocultar al usuario final, la mayoría de complejidades asociadas a la infraestructura computacional base, incluyendo tareas pertinentes a su administración, mantenimiento y actualización. El proveedor de servicios está en capacidad de cumplir acuerdos de nivel de servicio pactados con el usuario final, con el fin de proveer calidad sobre los servicios ofrecidos. El proveedor de servicios debe poseer múltiples mecanismos de seguridad para proteger la infraestructura computacional y los datos de los usuarios finales. Esto incluye mecanismos de autorización, autenticación, confidencialidad, integridad 20.
(21) Modelo de trazabilidad. y no repudio, así como mecanismos de protección y aislamiento de la infraestructura física, entre otros. El proveedor de servicios debe poseer mecanismos para registrar y monitorizar el uso de su infraestructura computacional, software o aplicaciones, permitiendo llevar trazabilidad de uso a nivel de usuario y la aplicación opcional de modelos de facturación de pago por uso.. 2.1.4. Definición propuesta Como parte del análisis comparativo efectuado y teniendo como finalidad hacer un aporte al estado del arte de cloud computing, se propone la siguiente definición: Cloud computing es un paradigma de la computación caracterizado por permitir el acceso por red y bajo demanda a infraestructuras computacionales multiusuario, escalables, virtualizadas y configurables que son entregadas a usuarios finales en forma de servicios de alta usabilidad. Estos servicios pueden estar soportados por acuerdos de nivel de servicio y/o modelos de trazabilidad o pago por uso. 2.1.5. Modelos de servicio La mayoría de las propuestas estudiadas, contemplan una arquitectura a partir de la definición de tres modelos de servicio (ver la Figura 1). Es importante destacar que para cada uno de ellos, se propone una clasificación de proveedores de servicios que integra y complementa los trabajos publicados en (3), (10) y (66). Los resultados de este proceso fueron publicados por el autor en (67). SaaS PaaS IaaS HARDWARE LAYER. Figura 1. Modelos de servicio cloud computing.. Modelo IaaS: contempla la entrega de servicios de infraestructura, también denominados servicios computacionales fundamentales, entre los cuales se encuentran: almacenamiento, procesamiento y memoria. Dicha infraestructura es desplegada bajo demanda, permitiendo a los usuarios el despliegue de aplicaciones sobre un sistema operativo principal. En este modelo de servicio, el usuario final no administra ni controla la infraestructura base cloud computing, pero puede controlar dispositivos de almacenamiento, sistemas operativos, aplicaciones desplegadas y opcionalmente controlar componentes de red, tales 21.
(22) como un firewall o un enrutador. La Tabla 3, resume algunos ejemplos de proveedores o tecnologías IaaS. Tabla 3. Clasificación de proveedores IaaS TIPO DE SERVICIO. EJEMPLO Amazon Elastic Compute Cloud (Amazon EC2) (21), Sun Network.com (Sun Grid) (20), ElasticHosts (68), Procesamiento Eucalyptus (23), Nimbus (24), OpenNebula (25), Enomaly (69). Distribución de Akamai (70), Amazon CloudFront Beta (71). contenido a través de servidores virtuales Amazon Simple Storage Service (Amazon S3) (72), Amazon SimpleDB (73), Amazon Elastic Block Store Almacenamiento (74), Microsoft SkyDrive (75), Youtube (76), Nirvanix Storage Delivery Network (77), Microsoft Live Mesh Beta (78), Flickr (79). Administración de Elastra (80), Engine Yard (81), FlexiScalable (82), Grid Layer (83), Joyent (84), Mosso (85), Savvis Virtual sistemas Intelligent Hosting (86). Administración de Digital Realty Trust (87), GoDaddy.com (88), Layered Technology (89). alojamiento Rackspace (85), Savvis Virtual Intelligent Hosting (86), Alojamiento Terremark Worldwide (90), FlexiScalable (82), 1&1 autónomo Internet (91). VLAN (Virtual Local CohesiveFT (92). Area Network) Modelo PaaS: consiste en la provisión de plataformas de ejecución como un servicio. Estas permiten la ejecución de aplicaciones creadas o adquiridas por el usuario final con la restricción de que su despliegue debe ajustarse a la infraestructura cloud computing disponible en el proveedor (lenguajes de programación, middlewares, frameworks, herramientas soportadas, etc.). Al igual que en el modelo IaaS se oculta al usuario final todos los detalles de la infraestructura base cloud computing, pero este ocultamiento también incluye sistemas operativos, servidores, redes de telecomunicaciones, dispositivos de almacenamiento, entre otros. Sin embargo, se busca que el usuario tenga un alto grado de control sobre su plataforma de desarrollo y aplicaciones desplegadas, mediante un mecanismo estándar para su acceso y uso. La Tabla 4, resume algunos ejemplos de proveedores o tecnologías PaaS.. 22.
(23) Tabla 4. Clasificación de proveedores PaaS TIPO DE SERVICIO Plataformas desarrollo Base de datos Cola de mensajes Servidores aplicaciones. EJEMPLO de Amazon Simple Queue Service (Amazon SQS) (93), Amazon Simple Storage Service (Amazon S3) (72), Google App Engine (17), GRIDS Lab Aneka (46). Amazon SimpleDB (73), Big Table (94), Microsoft SQL Azure Database (95). Amazon Simple Queue Service (Amazon SQS) (93). de NetSuite Business Operating System (NS-BOS) (96).. Modelo SaaS: consiste en la entrega exclusiva de software perteneciente al proveedor de servicios, a través de la ejecución de una instancia servidora dentro de la infraestructura cloud computing, que es invocada como un servicio por múltiples usuarios o aplicaciones cliente bajo un mecanismo de acceso por red. Este modelo de servicio se caracteriza por ocultar totalmente aspectos de administración y control de la infraestructura base cloud computing, así como por permitir limitadas configuraciones al software por parte del usuario final. SaaS se diferencia del modelo de servicio PaaS por otorgar un menor grado de administración, control y propiedad al usuario final con respecto al software que va a ser desplegado, incluyendo las configuraciones posibles sobre el mismo. Esto se debe a que su objetivo es la entrega de software como un servicio listo para ser consumido bajo demanda. La Tabla 5, resume algunos ejemplos de proveedores o tecnologías SaaS. Tabla 5. Clasificación de proveedores SaaS TIPO DE SERVICIO Aplicaciones sitios Web. como. Colaboración aplicaciones oficina. y de. Servicios de pago Software basado en Web integrable a otras aplicaciones. EJEMPLO Box.net (97), Microsoft Office Live (98), Facebook (99), LinkedIn (100), Twitter (101), MySpace (102), Zillow (103), Google Maps (104). Cisco WebEx Weboffice (105), Google Docs (106), Google Talk (107), IBM BlueHouse (18), Microsoft Exchange Online (108), RightNow (109), Gmail (110), Microsoft Hotmail (111), Yahoo! Mail (112). Amazon Flexible Payments Service (Amazon FPS) (113), Amazon DevPay (114). Flickr Application Programming Interface (API) (79), Google Calendar API (115), Saleforce.com AppExchange (116), Yahoo! Maps API (117), Zembly (118). 23.
(24) 2.1.6. Virtualización La virtualización es una tecnología de apoyo utilizada en todos los modelos de servicio en cloud computing para asignar recursos y proveer servicios en forma eficiente, dinámica y elástica. La virtualización es una tecnología basada en software, capaz de ejecutar múltiples sistemas operativos y aplicaciones sobre una arquitectura de hardware compartida (119). Estas ejecuciones se llevan a cabo mediante instancias de archivos, formalmente denominados máquinas virtuales. Una máquina virtual es el encapsulamiento de un sistema operativo y un conjunto de aplicaciones en un archivo que es ejecutado por un hypervisor. Un hypervisor es un software encargado de instanciar las máquinas virtuales sobre una infraestructura de hardware que puede ser compartida con un sistema operativo principal u otras máquinas virtuales (120). Existen dos tipos de hypervisors (121). Los hypervisors tipo I son aquellos que se instalan y ejecutan directamente sobre el hardware de la infraestructura computacional base. Estos hypervisors abstraen la capa de hardware facilitando la asignación de cuotas de recursos computacionales para la ejecución de múltiples máquinas virtuales. Los hypervisors tipo II son aquellos que se instalan y ejecutan sobre un sistema operativo principal que a su vez está instalado directamente sobre el hardware de la infraestructura computacional base. Estos hypervisors utilizan los servicios del sistema operativo para acceder al hardware disponible y son capaces de ejecutar múltiples máquinas virtuales compartiendo los recursos físicos con el sistema operativo principal. La Figura 2 muestra el diagrama de despliegue de los hypervisors tipo I y II.. Guest Operating System 1... Guest Operating System 1. Guest Operating System 2 .... Type II Hypervisor. Type I Hypervisor. CPU. MEMORY STORAGE. Main Operating System. NETWORK. CPU. HARDWARE. MEMORY STORAGE. NETWORK. HARDWARE. Figura 2. Diagrama de despliegue de un hypervisor.. Las principales ventajas de los hypervisors tipo I son las facilidades operativas y administrativas sobre las máquinas virtuales bajo su cargo, incluyendo la posibilidad de clonación de máquinas virtuales y el cambio de configuraciones de hardware (procesador, memoria, almacenamiento y red) en tiempo de ejecución (los cuales pueden o no reflejarse inmediatamente dependiendo del sistema 24.
(25) operativo instalado en la máquina virtual). Sin embargo, su principal desventaja es la necesidad de una infraestructura física robusta y dedicada a la provisión de máquinas virtuales. Por su parte, los hypervisors tipo II tienen la ventaja de operar sobre recursos computacionales no dedicados y de medianas prestaciones, ofreciendo las facilidades para ser instalados y ejecutados sobre un sistema operativo principal (Windows, Linux, Mac, Solaris, etc.). Sin embargo, su principal desventaja es la necesidad de usar los servicios de un sistema operativo principal para acceder a la capa de hardware, consideración a la cual debe ajustarse la ejecución de múltiples máquinas virtuales, para evitar posibles problemas de desempeño. 2.1.7. Modelos de despliegue La mayoría de las propuestas estudiadas contemplan la definición de tres modelos de despliegue, como se verá en su definición, las palabras: público, comunitario, privado e híbrido no necesariamente hacen referencia a un contexto de localización. La Figura 3 ilustra algunos modelos de despliegue cloud computing. Modelo de cloud privado: la infraestructura base cloud computing es operada en forma exclusiva por una organización. Sin embargo, esta misma puede ser administrada por la misma organización o por un tercero especializado. La infraestructura puede pertenecer y ubicarse en la organización usuaria o estar a cargo de un tercero especializado que actúa como proveedor. En cualquier caso, la organización usuaria debe tener control sobre la infraestructura, software y aplicaciones que conforman su cloud privado. Este modelo tiene una variante que contempla la operación, administración, pertenencia y/o ubicación de la infraestructura base cloud computing en varias organizaciones que conforman una comunidad de intereses mutuos. Este modelo es comúnmente denominado cloud comunitario. Modelo de cloud público: los servicios provistos por la infraestructura cloud computing están disponibles al público en general, incluyendo usuarios y organizaciones académicas, científicas o comerciales. El proveedor de los servicios cloud generalmente es propietario de los mismos y suele facturar o adquirir ganancias indirectas por su uso externo. Modelo de cloud híbrido: la infraestructura cloud computing está compuesta por varios modelos de despliegue (privado, comunitario o público).. 25.
(26) . Figura 3. Modelos de despliegue cloud computing.. 2.1.8. Ventajas de cloud computing A continuación se resumen las ventajas de cloud computing desde el punto de vista del usuario final, algunas de estas ventajas están basadas y complementan el trabajo publicado en (57). . Disminución de complejidades y costos capitales y operacionales asociados a la adquisición, instalación, configuración, actualización y mantenimiento de infraestructuras computacionales propias.. . Disminución en los costos capitales y operacionales asociados a la instalación, prueba, configuración, mantenimiento, actualización y licenciamiento para el despliegue de software sobre una infraestructura computacional propia. Esto puede incluir los beneficios económicos asociados al aprovisionamiento rápido de nuevas versiones de software que pueden otorgar una rápida adaptación a cambios tecnológicos, lo cual generalmente se traduce en ventajas competitivas.. . Disminución de los presupuestos y esfuerzos dirigidos al área de TI, permitiendo la re distribución de los mismos en áreas de mayor interés para el negocio. Esto adicionalmente promueve la competencia basada en líneas de negocio, en lugar de una competencia basada en fortalezas tecnológicas.. . Disminución de los riesgos asociados a proyectos TI en dependencia de la adquisición o actualización de software o infraestructuras computacionales propias.. . Disminución en los tiempos estimados para la obtención de beneficios directamente asociados al uso de software o de infraestructuras computacionales. Esto puede incluir una disminución el tiempo de desarrollo de proyectos TI, la disminución de los tiempos esperados para la obtención de 26.
(27) beneficios económicos medibles mediante el retorno de la inversión (ROI) y una disminución en los tiempos necesarios para el aprovisionamiento de tecnologías necesarias para el soporte de nuevos procesos o líneas de negocio. . Elasticidad para el crecimiento o disminución en el uso de recursos computacionales fundamentales. Esto incluye la posibilidad de aumentar las capacidades de la infraestructura computacional para satisfacer requerimientos críticos, así como reducir su demanda para disminuir costos innecesarios en periodos de bajo consumo.. . La ubicuidad, alta disponibilidad y usabilidad de los servicios cloud, permitiendo su acceso por red y bajo demanda.. . Trazabilidad del uso efectivo de la infraestructura computacional o software desplegado y la posibilidad de facturación bajo un modelo de pago por uso.. . La ubicuidad, persistencia y accesibilidad de la información al estar ubicada en infraestructuras computacionales de alta disponibilidad, generalmente administradas por terceros. Esto incluye las facilidades para compartir y manipular información en un esquema multiusuario o multi organizacional.. A continuación se resumen las ventajas de cloud computing desde el punto de vista del proveedor de servicios, algunas de estas ventajas están basadas y complementan los trabajos publicados en (57), (122) y (123). . Disminución de los costos asociados al software o a la infraestructura computacional provista a través de la maximización de ingresos obtenidos mediante esquemas de entrega de servicios multiusuario y la generación de beneficios económicos obtenidos mediante mecanismos indirectos como la publicidad o venta de información.. . Una solución rentable y ecológica a los costos asociados al consumo de electricidad, reserva de espacio físico y mantenimiento de ambientes de temperatura controlada para infraestructuras computacionales sobredimensionadas o subutilizadas.. . Expansión y diversificación de las líneas de negocio TI, incluyendo los beneficios asociados a la rápida provisión de infraestructuras tecnológicas y software para proyectos internos o de participación conjunta con proveedores, socios o terceros.. 27.
(28) . Aumento de los ingresos económicos, captación, retención y mejoramiento de clientes por medio de esquemas de facturación basados en modelos de pago por uso.. . Mejoramiento de franquicias preexistentes mediante la provisión de servicios cloud complementarios a los servicios TI tradicionalmente ofrecidos.. . Desarrollo y mejoramiento de servicios cloud con base en el aprovechamiento de inversiones en investigación preexistente, orientada al fortalecimiento de líneas de negocio internas. 2.1.9. Desventajas de cloud computing. Desde el punto de vista del usuario final, algunas posibles desventajas de cloud computing incluyen: . La entrega de información y datos a terceros con las implicaciones de seguridad concernientes. Esto puede implicar la interceptación de los datos en su viaje por la red, la posibilidad de acceso y manipulación de la información por parte de personal ajeno, no autorizado, entre otras.. . Implicaciones de privacidad dada la posibilidad de uso de la información y datos entregados por los usuarios finales, con propósitos de marketing, campañas de publicidad segmentadas o venta de los mismos a empresas especializadas.. . Una alta dependencia con el proveedor de servicios, dada la inexistencia de estándares para el ofrecimiento y consumo de servicios cloud. Esto se puede ver agravado dada la baja oferta o incluso exclusividad en la oferta de servicios, conllevando a la generación de monopolios informáticos.. . Implicaciones sobre la información, datos y calidad en la prestación de servicios cloud, dada la venta de la empresa proveedora, su cierre o transformaciones en sus líneas de negocio.. . La falta de acuerdos de nivel de servicio, que aseguren calidad de servicio a los usuarios finales y adicionalmente se encuentren amparados por figuras legales vigentes en los países donde se ubican los usuarios finales de los servicios cloud.. 28.
(29) . La imposibilidad de delegar totalmente la administración de servicios TI o almacenar información sensible en infraestructuras cloud computing, dada la existencia de restricciones legales para su tratamiento, localización y auditoría.. . La reducción de la brecha existente entre organizaciones cuya principal estrategia implica la diferenciación por servicios TI basados en recursos e inversiones privadas. 2.2. IMPLEMENTACIONES DEL MODELO IAAS. En esta sección se revisan algunas implementaciones académicas y comerciales del modelo IaaS de cloud computing. Estas implementaciones fueron seleccionadas teniendo en cuenta su nivel de uso por parte de múltiples iniciativas, programas y proyectos cloud computing, la trayectoria y prestigio del desarrollador, el nivel de aceptación y referencias por parte de la industria y la comunidad académica y científica, así como por su aporte al estado del arte del paradigma cloud computing. La revisión incluye una definición general de la implementación, los objetivos propuestos, la identificación de sus características distintivas, así como aspectos fundamentales de su implementación, arquitectura y despliegue. 2.2.1. Amazon Elastic Compute Cloud Amazon Elastic Compute Cloud (Amazon EC2) (124) es un servicio Web que provee capacidades de cómputo elásticas, disponibles a través de una infraestructura cloud computing diseñada con la finalidad de proveer computación escalable a entornos Web, bajo demanda, siguiendo un modelo comercial de pago por uso. Amazon EC2 hace parte de los Amazon Web Services, que iniciaron su producción en el año 2006, ofreciendo comercialmente capacidades básicas de procesamiento y almacenamiento a usuarios y empresas en todo el mundo. Amazon EC2 provee el modelo IaaS mediante una enorme infraestructura computacional física que abarca miles de servidores dedicados de altas prestaciones. Dicha infraestructura está distribuida en varias localidades de Estados Unidos y Europa, con el propósito de aumentar la disponibilidad de los servicios (regiones de disponibilidad) y proveer mecanismos de seguridad y tolerancia a fallas más robustos (125). Amazon EC2 está basado en la tecnología de virtualización Xen (126), esto permite que toda su infraestructura física sea compartida a través de la ejecución bajo demanda de múltiples máquinas virtuales, cada una de las cuales tiene asignadas fracciones de recursos computacionales de la infraestructura física, posee un sistema operativo independiente y se entrega al usuario final como una unidad computacional con 29.
(30) una cuenta de administrador asociada. Amazon EC2 provee máquinas virtuales basadas en los sistemas operativos Linux, OpenSolaris y Windows, incluyendo un amplio rango de kernels basados en arquitecturas de 32 y 64 bits, como es el caso de Ubuntu, Fedora Core, Red Hat Enterprise, Debian, Gentoo, openSUSE, OpenSolaris y Windows Server 2003. Amazon EC2 provee imágenes de varias máquinas virtuales pre configuradas conocidas como Amazon Machine Images (AMIs), las cuales pueden ser seleccionadas para su despliegue dentro de la infraestructura y ser accedidas directamente por los usuarios finales a través de Internet. Los usuarios finales de Amazon EC2 pueden instalar sus propias aplicaciones, así como desinstalar paquetes o servicios incluidos por defecto en una AMI. Estas imágenes modificadas pueden ser expuestas en una visibilidad privada o pública a través de configuraciones de seguridad y de acceso por red (125). A nivel de configuración, las AMIs provistas por Amazon EC2 varían en el número de núcleos de procesamiento, la cantidad de memoria RAM, la arquitectura de 32 ó 64 bits, el espacio disponible en disco, el desempeño de entrada y salida (I/O) y el precio, el cual es facturado por hora de uso (una fracción de tiempo es equivalente a una hora).. RD Remote Management Station. P EC2 Windows Instances EC2 Management Instance. INTERNET. SS H. EC2 Management Instance. Remote Management Station. EC2 Linux Instances. Figura 4. Diagrama de despliegue de Amazon EC2 (Adaptado de (127)).. Amazon EC2 basa su modelo de contabilidad de instancias, basándose en la noción de una unidad de cómputo EC2, la cual equivale a la capacidad de una CPU de 1.0 - 1.2 GHz con un procesador Opteron o Xeon modelo 2007 (128). En consecuencia, Amazon EC2 puede ocultar totalmente la infraestructura física base, haciendo que cada requerimiento efectuado por un usuario pueda ser respondido por una misma o diferentes máquinas físicas que pueden o no, estar compartidas con otros usuarios a través de la ejecución de AMIs. Una vez el usuario ha desplegado una AMI recibe una dirección DNS (Domain Name System) que puede ser accedida mediante SSH (Secure SHell) para el caso de OpenSolaris y Linux o escritorio remoto para el caso Windows, usando una cuenta. 30.
Documento similar
a) Implement a new architecture, making efficient use of new technological developments, information sources, and analytical methods. b) Establish an institutional and
En este cap´ıtulo se ha desarrollado una propuesta de Broker para servicios de miner´ıa de datos en Cloud Computing llamada BrokerMD. BrokerMD es una propuesta formada por un
que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el
Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),
En su estado actual la medicina ha logrado alargar la vida, pero no la calidad de vida: muchas veces, como dije otra vez, más que alar- gar la vida, la medicina solo retar- da
Vistas así las cosas, la crítica formulada por los profesores de Alicante supondría un serio revés para la concepción alexiana de los principios co- mo mandatos de optimización,
La crítica más importante que me dirige Vernengo es que mi tesis de que la Jurisprudencia no es una ciencia, sino una técnica, presupone obvia- mente una distinción entre ciencia
En la parte central de la línea, entre los planes de gobierno o dirección política, en el extremo izquierdo, y los planes reguladores del uso del suelo (urbanísticos y