Guía básica para entender la estructura y el funcionamiento de la computación en la nube
Texto completo
(2) Página intensionalmente en blanco.
(3) GUÍA BÁSICA PARA ENTENDER LA ESTRUCTURA Y EL FUNCIONAMIENTO DE LA COMPUTACION EN LA NUBE. JULIÁN ANDRÉS TORO TORRES VICTOR HUGO BOTERO AMARILES. UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERIAS ELÉCTRICA, ELECTRÓNICA, FÍSICA Y CIENCIAS DE LA COMPUTACIÓN INGENIERÍA DE SISTEMAS Y COMPUTACIÓN PEREIRA 2011.
(4) GUÍA BÁSICA PARA ENTENDER LA ESTRUCTURA Y EL FUNCIONAMIENTO DE LA COMPUTACION EN LA NUBE. JULIÁN ANDRÉS TORO TORRES VICTOR HUGO BOTERO AMARILES. Proyecto de grado para optar al tı́tulo de Ingeniero de Sistemas y Computación. (Monografı́a). Director: Ph.D. JULIO CÉSAR CHAVARRO PORRAS. UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERIAS ELÉCTRICA, ELECTRÓNICA, FÍSICA Y CIENCIAS DE LA COMPUTACIÓN INGENIERÍA DE SISTEMAS Y COMPUTACIÓN PEREIRA 2011.
(5) Nota de aceptación:. Firma del Jurado. Firma del Jurado. Pereira, Julio 28 de 2011.
(6) Dedicatoria Julián Andrés Toro:. Dedicado a toda mi familia, en especial a mis hijos que han sido y seguirán siendo, mi razón para vivir y superar los obstáculos de la vida. A mis Padres y mi Esposa que estuvieron siempre a mi lado, apoyándome y dándome ánimos en los momentos que parecı́a no tenerlos..
(7) Dedicatoria Victor Hugo Botero:. Dedicado especialmente a mis padres que siempre estuvieron pendientes y colaboraron de muchas maneras para que este proceso culminara exitosamente. A mi hijo que sin querer, tuvo que sacrificar el tiempo que podı́amos estar juntos, para que yo pudiera dedicarlo a mi carrera. Y en general a todos los integrantes de mi familia, y a todos aquellos que de una u otra forma tuvieron que ver en este largo pero grato trayecto..
(8) Agradecimientos. A todos y cada uno de los Maestros, profesores, guı́as y directivos de la Universidad Tecnológica de Pereira, que con sus enseñanzas nos forjaron en el camino correcto y nos enseñaron no sólo a Integrar y Programar, sino también a ser mejores personas cada dı́a..
(9) RESUMEN Los nuevos sistemas de computación, la constante evolución de las tecnologı́as de información y los retos humanos para lograr reducción de costos en las empresas, son algunos de los principales motivos que han llevado al surgimiento de la Computación en la Nube, como una alternativa tecnológica para optimizar los recursos informáticos y generar una nueva visión de la Computación. En el desarrollo del presente trabajo monográfico, se ilustran los principales conceptos acerca de la estructura y funcionamiento de la Computación en la Nube, mostrando su evolución a través de la historia, los sistemas que llevaron al surgimiento, las capas que la componen y su tendencia.. PALABRAS CLAVES Computación en la Nube, Cloud Computing, Grid Computing, DataCenter, HaaS, IaaS, PaaS, SaaS, Computación, Internet.
(10) CONTENIDO 1. EL PROBLEMA Y SU DELIMITACIÓN. 1. 1.1. TÍTULO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.2. DEFINICIÓN DEL PROBLEMA . . . . . . . . . . . . . . . . . . . .. 1. 1.3. JUSTIFICACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.3.1. Académica . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.3.2. Tecnológica . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.4. OBJETIVO GENERAL . . . . . . . . . . . . . . . . . . . . . . . . .. 2. 1.5. OBJETIVOS ESPECÍFICOS . . . . . . . . . . . . . . . . . . . . . .. 2. 1.6. MARCO CONCEPTUAL . . . . . . . . . . . . . . . . . . . . . . . .. 2. 1.6.1. Definición de términos . . . . . . . . . . . . . . . . . . . . . .. 2. 2. COMPUTACIÓN EN LA NUBE. 6. 2.1. Computación en la Nube: ¿Nuevo Paradigma? . . . . . . . . . . . . .. 6. 2.1.1. Historia de la Computación en la Nube . . . . . . . . . . . . .. 6. 2.1.2. Definición de la Computación en la Nube . . . . . . . . . . . .. 7. 2.1.3. Principales Caracterı́sticas de la Computación en la Nube . . .. 9. 2.2. Tipos de nubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1. Nubes Privadas: . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2. Nubes Públicas:. . . . . . . . . . . . . . . . . . . . . . . . . . 10. 2.2.3. Nubes Hı́bridas: . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.4. Nubes Federadas o Comunitarias: . . . . . . . . . . . . . . . . 10 2.3. El modelo de capas de la Computación en la Nube . . . . . . . . . . . 11.
(11) 3. SERVICIOS INTEGRADOS EN LA COMPUTACIÓN EN LA NUBE 14 3.1. HaaS (Hardware as a Service) . . . . . . . . . . . . . . . . . . . . . . 14 3.1.1. Servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.2. Dispositivos de almacenamieno compartido (SAN) . . . . . . . 18 3.1.3. Virtualización . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2. IaaS (Infrastructure as a Service) . . . . . . . . . . . . . . . . . . . . 24 3.2.1. Data Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.2. Tier I - Básico . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2.3. Tier II - Componentes Redundantes . . . . . . . . . . . . . . 26 3.2.4. Tier III - Mantenimiento concurrente . . . . . . . . . . . . . . 27 3.2.5. Tier IV - Tolerancia a fallos . . . . . . . . . . . . . . . . . . . 28 3.3. PaaS (Platform as a Service) . . . . . . . . . . . . . . . . . . . . . . . 30 3.4. SaaS (Software as a Service) . . . . . . . . . . . . . . . . . . . . . . . 30 3.4.1. SOA (Service Oriented Architecture) . . . . . . . . . . . . . . 32 3.4.2. Servicios Web (Web Services) . . . . . . . . . . . . . . . . . . 35 4. RETOS: RIESGOS Y VULNERABILIDADES 4.1. Riesgos, Amenazas y Vulnerabilidades de la Computación en la Nube. 39 39. 4.1.1. Vulnerabilidades especı́ficas de la Computación en la Nube . . 43 5. CASOS DE ÉXITO DE COMPUTACIÓN EN LA NUBE. 45. 5.1. Herramientas para la Computación en la Nube . . . . . . . . . . . . . 45 5.2. Casos de Éxito de la Computación en la Nube . . . . . . . . . 46 5.3. Visión empresarial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.4. Oportunidades y amenazas en el mercado Colombiano . . . . . . . . . 50.
(12) 6. UNA MIRADA CRÍTICA. 51. 6.1. Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.2. Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.3. Tendencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.4. Valor agregado en la nube . . . . . . . . . . . . . . . . . . . . . . . . 52 7. CONCLUSIONES. 54.
(13) LISTA DE TABLAS 1.. Oportunidades y Amenazas para grandes empresas . . . . . . . . . . 50. 2.. Oportunidades y Amenazas para PYMES en Colombia . . . . . . . . 50.
(14) LISTA DE FIGURAS 1.. Las Capas de la Computación en la nube. . . . . . . . . . . . . . . . 11. 2.. Ejemplo de servidor: IBM System x3500 M3 . . . . . . . . . . . . . . 15. 3.. Representación del crecimiento horizontal y vertical de servidores . . 16. 4.. IBM System x3650 M3 . . . . . . . . . . . . . . . . . . . . . . . . . . 16. 5.. Chasis Blade Modular Dell PowerEdge M1000e . . . . . . . . . . . . 17. 6.. Chasis con Servidores Blade . . . . . . . . . . . . . . . . . . . . . . . 17. 7.. Estructura del concepto de Virtualización . . . . . . . . . . . . . . . . 21. 8.. Caracterı́sticas de la Virtualización . . . . . . . . . . . . . . . . . . . 23. 9.. Items principales de cada subsitema . . . . . . . . . . . . . . . . . . . 25. 10.. Comparación de disponibilidad de cada nivel . . . . . . . . . . . . . . 29. 11.. Resumen de la clasificación TIER’s . . . . . . . . . . . . . . . . . . . 29. 12.. Solicitud bloqueada de una Aplicación SaaS. . . . . . . . . . . . . . . 32. 13.. Encapsulamiento de procesos. . . . . . . . . . . . . . . . . . . . . . . 33. 14.. Interoperabilidad de un servicio . . . . . . . . . . . . . . . . . . . . . 35. 15.. Roles del Servicio Web, operaciones y artefáctos. . . . . . . . . . . . . 36. 16.. Riesgo = Vulnerabilidad x Amenaza x Impacto x Probabilidad . . . . 39. 17.. Riesgos, Amenazas y Vulnerabilidades de la Computación en la nube.. 41.
(15) INTRODUCCIÓN Con el paso de los años, los sistemas de información han buscado nuevos métodos para generar mejores resultados, con menos recursos. Hablamos de globalización en un mundo actual en el cual casi que podemos hacer cualquier cosa a través de Internet, pagos, transacciones bancarias, e-learning, conferencias y un sin número de servicios que dı́a tras dı́a se propagan e invaden nuestro entorno. Este concepto de globalización desplegado por la aparición y la masificación del servicio de Internet, de el avance en las telecomunicaciones y sumado al gran avance tecnológico logrado en las dos últimas décadas, ha llevado a grandes empresas a pensar en mecanismos basados en las tecnologı́as que les generen ventajas competitivas, reducción de costos, incremento de la productividad y aumento de la disponibilidad son algunos de los principales retos de la industria moderna. De este modo se hará un recuento a través de la historia para comprender como la Computación en la Nube (Cloud Computing) interviene en este proceso y se decribirá su estructura y funcionamiento..
(16) 1. 1.1.. EL PROBLEMA Y SU DELIMITACIÓN TÍTULO. GUÍA BÁSICA PARA ENTENDER LA ESTRUCTURA Y EL FUNCIONAMIENTO DE LA COMPUTACION EN LA NUBE. 1.2.. DEFINICIÓN DEL PROBLEMA. Resulta complejo reunir conceptos que permitan conocer la estructura y el funcionamiento de la Computación en la Nube, ya que es un tema relativamente nuevo y la mayor cantidad de la información, está enfocada hacia la comercialización y no hacia la estructura que la componen.. 1.3. 1.3.1.. JUSTIFICACIÓN Académica. En la actualidad, en la carrera de Ingenierı́a de Sistemas y Computación de la UTP, no se cuenta con información básica sobre el esquema y funcionamiento de la Computación en la Nube, siendo éste un tema de actualidad y una tendencia universal, del cual se deberı́a tener más información. Se requiere recopilar información básica sobre la estructura y funcionamiento de Computación en la Nube para que los futuros ingenieros se inicien en éste tema.. 1.3.2.. Tecnológica. La computación en la nube, permite un uso mucho más eficiente de recursos, como almacenamiento, memoria, procesamiento y ancho de banda, al proveer solamente los recursos necesarios en cada momento, lo que se traduce muchas veces, en reducción de costos operacionales. Actualmente la inversión en equipos y programas de computación tradicional, puede no ser el mecanismo más óptimo para las empresas, dado que genera una alta dependencia de recursos, además de la necesidad de un grupo de personas expertas para instalar, configurar, probar, ejecutar, asegurar y actualizar las aplicaciones y servicios. Este nuevo concepto, permite en la mayorı́a de. 1.
(17) casos, dar una ventaja competitiva a las empresas que la implementen, permitiendo reducir la brecha tecnológica y reducir los altos costos por rezagos tecnológicos.. 1.4.. OBJETIVO GENERAL. Realizar un trabajo monográfico que recopile la información técnica especializada sobre la estructura y funcionamiento de la Computación en la Nube.. 1.5.. OBJETIVOS ESPECÍFICOS. 1. Elaborar un glosario de términos básicos acerca la Computación en la Nube y las relaciones que hay entre ellos. Es decir, seleccionar y adoptar un marco conceptual sobre la Computación en la Nube 2. Describir la estructura y funcionamiento de la Computación en la Nube. 3. Describir algunos de los principales casos de éxito de prestación de servicios de la computación en la nube y mostrar las herramientas tecnológicas que le subyacen.. 1.6. 1.6.1.. MARCO CONCEPTUAL Definición de términos. Definición de Computación en la Nube (Cloud Computing). El modelo de Computación en la nube nace de los términos Cloud (nube), que hace referencia a Internet y de Computing (computación) que reúne los conceptos de informática, lógica de coordinación y almacenamiento. Es ası́ como la Computación en la Nube consiste básicamente en mover la computación del simple computador personal o centro de datos convencional hacia Internet. A continuación, se presenta la definición de Computación en la Nube, desarrollada por la NIST1 .[13], de acuerdo al borrador desarrollado en Enero de 2011, en el cual se afirma que la Computación en la Nube es aún un paradigma en evolución “Cloud computing is still an evolving paradigm”. 1. National Institute of Standards and Technology. 2.
(18) “Cloud Computing es un modelo para habilitar el acceso a un conjunto de servicios computacionales (e.g. Redes, servidores, almacenamiento, aplicaciones y servicios) de manera conveniente y por demanda, que pueden ser rápidamente aprovisionados y liberados con un esfuerzo administrativo y una interacción mı́nima con el proveedor del servicios.” El modelo de Computación en la Nube está compuesto por cinco caracterı́sticas esenciales (NIST, 2009): Auto-servicio por demanda (On-demand self-service). Un cliente puede unilateralmente disponer de las capacidades de computo, como procesamiento y almacenamiento compartido, automáticamente según sea necesario sin la necesidad de intervención humana de cada proveedor del servicio. Acceso ubicuo2 a la red (Broad network access.). Los servicios están disponibles en la red y accesibles a través mecanismos estandarizados que promuevan el uso heterogéneo de clientes delgados y gruesos. (ej. Teléfonos móviles, computadores portátiles, y PDA’s). Agrupación de Recursos Resource pooling. Los recursos computacionales de los proveedores son agrupados para ser usados por múltiples usuarios bajo un modelo multi-usuario (multi-tenant) con diferentes recursos fı́sicos y virtuales dinámicamente asignados y reasignados de acuerdo a la demanda del cliente. Hay un sentido de independencia de la ubicación en la que el cliente generalmente no tiene ningún control o conocimiento sobre la ubicación exacta de los recursos asignados, pero puede ser capaz de especificar la ubicación en un nivel más alto de abstracción. (ej. Paı́s, Estado, o de centros de procesamiento de datos “datacenter”). Ejemplos de recursos incluyen el almacenamiento, procesamiento, memoria, ancho de banda y máquinas virtuales. Rápida elasticidad (Rapid elasticity). Los servicios y recursos deben ser rápida y dinámicamente adquiridos, en algunos casos de manera automática, escalables rápidamente, y rápidamente liberados. Para el cliente, las capacidades disponibles para aprovisionamiento a menudo parecen ser limitadas y pueden ser compradas en cualquier cantidad a cualquier tiempo. Medición del Servicio (Measured Service). Los Sistemas de Computación en la Nube automáticamente controlan y optimizan los recursos utilizados, mediante 2. ubicuo, cua. (Del lat. ubique, en todas partes). RAE.. 3.
(19) el aprovechamiento de la capacidad de medición3 con un nivel de abstracción adecuado para el tipo de servicio (ej. almacenamiento, procesamineto, ancho de banda, y cuentas de usuario activo). El uso de los recursos puede ser monitoreado, controlado y reportado, proporcionando transparencia tanto para el proveedor como para el consumidor. Modelo de capas: Un modelo de capas es básicamente una estructura abstracta de descripción de un concepto, sobre la cual generalmente se crea un marco de referencia para la definición de las arquitecturas de interconexión del sistema. Un ejemplo puede ser el Modelo de Capas OSI (Open System Interconnection), la cual sobre un modelo de referencia, establece 7 capas básicas para la definición de protocolos para la interconexión entre ellas. Arquitectura: La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura fı́sica, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea. Pago por uso (pay-as-you-go): Es el método de pago por un servicio prestado, en el cual una persona no acumula ninguna deuda a largo plazo. Cualquier tipo de servicio que sea facturable mes a mes y que no se acumula puede ser considerado como pago por uso. En Computación en la Nube el término (pay-as-you-go) se utiliza para hacer referencia a que la facturación del servicio está de acuerdo a los recursos utilizados, como la energı́a, el agua o el gas. Multi tenencia (Multi-tenant): Se refiere a un principio de arquitectura de software, en la cual una única instancia de software se ejecuta en un servidor, proporcionando servicios a múltiples usuarios (tenants). Este concepto se contrasta con el de Multi Instancia, en el cual instancias de software separadas (o sistemas de hardware) son configuradas de manera diferente para cada cliente o usuario. Servicio Web (Web Service): Un servicio web (en inglés, Web service) es una pieza de software que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. 3. Tı́picamente a través de un modelo de Pago por Uso pay-per-use business model.. 4.
(20) Centro de datos o centro de procesamiento de datos (Data Center): Se denomina centro de procesamiento de datos (CPD) a aquella ubicación donde se concentran los recursos necesarios para el procesamiento de la información de una organización. También se conoce como centro de cómputo en Iberoamérica, o centro de cálculo en España o centro de datos por su equivalente en inglés data center. Dichos recursos consisten esencialmente en unas dependencias debidamente acondicionadas, computadoras y redes de comunicaciones. Virtualización: Virtualización se refiere a la abstracción de los recursos de una computadora, llamada Hypervisor o VMM (Virtual Machine Monitor) que crea una capa de abstracción entre el hardware de la máquina fı́sica (host) y el sistema operativo de la máquina virtual (virtual machine, guest), siendo un medio para crear una versión virtual de un dispositivo o recurso, como un servidor, un dispositivo de almacenamiento, una red o incluso un sistema operativo, donde se divide el recurso en uno o más entornos de ejecución.. 5.
(21) 2. 2.1. 2.1.1.. COMPUTACIÓN EN LA NUBE. Computación en la Nube: ¿Nuevo Paradigma? Historia de la Computación en la Nube. Hay varios tipos de computación que contribuyeron al desarrollo de la computación en la nube. En la década de 1990’s Grid Computing conocida también como redes de punto a punto (peer-to-peer networking), permitı́a a los cumputadores de escritorio y a los súper computadores, llevar a cabo grandes tareas formando redes distribuidas de computadores. Después de la computación distribuida, en la década de 1970’s la idea computación de utilidad comenzó a sonar. La idea murió por un un par de años y más tarde, hacia el año de 1998 reapareció de la mano de Hewlett Packard[2]. Utility Computing también se conoce como un servicio bajo demanda, donde los clientes acceden a computadores alojados en Centros de Datos a través de lı́neas, bien sean privadas o sobre la Internet. El término proviene de la forma como el servicio es medido y facturado al usuario final, que se asemeja a un servicio público tradicional, como la electricidad, el agua, el gas natural o el teléfono. Los usuarios pagan sobre la base de tiempo de uso de los recursos. El término “nube” se utiliza desde hace algún tiempo como una metáfora para referenciar la Internet, haciendo alusión a un contenido de información no tangible y que está disponible desde cualquier parte en cualquier momento. Inicialmente el sı́mbolo se utilizó para representar las redes de telefonı́a, hoy en dı́a se utiliza como abstracción de la arquitectura que soporta internet. Este sı́mbolo también se utiliza para demarcar la responsabilidad del proveedor(infraestructura) y la responsabilidad del cliente. Carl Joseph Licklider Robnett4 , fue uno de los hombres más influyentes en este aspecto cuando se convirtió en el jefe del grupo “Advanced Research Projects Agency Network” (ARPANet) en la década de 1960 y quien dijo que “La computación se convertirá en un servicio a disposición del público en el futuro”. Su visión era que todos en el mundo estuvieran conectados entre sı́ y acceder a los programas y datos en cualquier sitio, desde cualquier lugar, explicó Margaret Lewis, directora de Mercadeo y Ventas de AMD. “Es una visión que se parece mucho a lo que estamos 4. Joseph Carl Robnett Licklider(Marzo 11, 1915 Junio 26, 1990), conocido simplemente como J.C.R. o “Link” fue un cientı́fico informático estadounidense, considerado una de las más importantes figuras en las ciencias de la computación.. 6.
(22) llamando la computación en nube”. La “Cloud Computing” parte de la premisa de que la información debe estar en los centros de procesamiento de datos, que los programas que actualmente funcionan en el ordenador del cliente, funcionen a través de internet como instancias independientes en un servidor de aplicaciones y que la ejecución de estas “Cloud Applications” sea totalmente online, pudiendo acceder a la aplicación y a la información desde cualquier terminal con acceso a internet. Uno de los primeros hitos de la Computación en Nube es la llegada de Salesforce.com en 19995 , que fue pionera en el concepto de la entrega de aplicaciones empresariales a través de una sencilla página web. La firma de servicios allanó el camino para los especialistas y empresas de la corriente principal de software para entregar aplicaciones a través de Internet.. 2.1.2.. Definición de la Computación en la Nube. De acuerdo a lo expuesto en el documento “The business perspective of Cloud Computing: Actors, Roles, and Values Networking” en el marco de la 18a Conferencia Europea sobre Sistemas de información (ECIS 2010)[1], existe un sin número de versiones que definen la computación en la Nube, sus principios de funcionamiento y su perspectiva hacia el futuro. Pero no todas, o mejor, muy pocas de ellas son aportes cientı́ficos a la definición conceptual de la Computación en la Nube, sino más bien se trata de disfrazar la realidad para sacar alguna ventaja competitiva en productos no propiamente bajo este concepto. En la actualidad, el término de computación en la nube se utiliza a menudo con fines comerciales o publicitarios para renovar ofertas existentes bajo un nuevo abrigo. Hasta ahora son pocos los aportes cientı́ficos que se esfuerzan por desarrollar una descripción precisa del fenómeno de la Computación en la Nube. Youseff, et al, fue uno de los primeros que trataron de ofrecer una comprensión global de la Computación en la Nube y todos sus componentes relevantes. Consideran que la nube informática es como: “Un conjunto de muchos viejos y pocos nuevos conceptos en varios campos de la investigación como Service Oriented Architectures (SOA) Arquitectura Orientada a los servicios, computación distribuida y Grid Computing, ası́ como la virtualización”. (Youseff et al. 2008). De acuerdo con Youseff et al. “La computación 5. Salesforce.com, es una de las empresas pioneras en la prestación de servicios de Computación en la Nube.. 7.
(23) en la nube puede ser considerada como un nuevo paradigma informático que permite a los usuarios utilizar de manera temporal, la infraestructura informática con uno o más niveles de abstracción”. (Youseff et al. 2008). Cuando se habla acerca de niveles de abstracción, los autores se refieren a su ontologı́a propuesta de computación en la nube, que se describe en las secciones siguientes. De acuerdo con Armbrus et al. “Computación en la Nube se refiere tanto a las aplicaciones de prestación de servicios a través de Internet como al hardware y los sistemas de aplicaciones de los centros de datos que proporcionan los servicios. Los propios servicios son conocidos desde hace mucho tiempo como SaaS (Software as a Service). El Hardware y el Software del centro de datos Data Center es lo que llamamos una nube. Cuando una nube se pone a disposición para un sistema de pay-as-you-go (Pago por uso) accesible para el público en general; lo llamaremos una nube pública, el servicio que se vende es Utilidad Computacional Utility Computing. Empleamos el término de Nube Privada para referirnos a centros de datos internos de una empresa u organización, que no está disponible para el público en general. De este modo, la computación en la nube es la suma de SaaS y Utility Computing, pero no incluye las Nubes Privadas”. (Armbrus et al. 2009). De esta manera los autores también entienden la computación en la nube, como un término colectivo, que abarca conceptos informáticos existentes tales como SaaS y Utility Computing. Armbrust et al. especialmente percibe los siguientes aspectos como nuevos: 1. La ilusión de una infinita capacidad de cálculo disponible por demanda. 2. La eliminación del compromiso de recursos en el lado del usuario de nubes. 3. El uso con destino de pago para los recursos de computación en el corto plazo. Otros estudiosos de “Grid Computing” postulan un concepto más técnico y centrando, relecionando la Computación en la Nube como una especie de sistema paralelo y distribuido, que consiste en un conjunto de equipos virtuales. Este sistema proporciona los recursos de forma dinámica, mientras que Service Level Agreements (SLA) son negociados entre el prestador del servicio y el Cliente. (Buyya et al. 2008). Como una interpretación de los resultados presentados en la Tabla 1. del documento “The business perspective of Cloud Computing: Actors, Roles, and Values Networking”[1], en la cual se resumen las caracterı́sticas claves de Computación en la Nube como los autores la interpretan, podemos observar que su enfoque global está basado en cuatro aspectos fundamentales, en los que más del 80 % de los autores 8.
(24) coinciden, estos son: (Servicio, Software, Hardware, Escalabilidad). Basados en nuestra revisión a la literatura y en nuestra propia percepción de la Computación en la Nube, adoptaremos una definición que se refiera al concepto integral, tanto desde el punto de vista de la aplicación como de la infraestructura. “La Computación en la Nube es un modelo de Implementación de tecnologı́as de la Información, basado en la virtualización, donde los recursos, en términos de infraestructura, aplicaciones y datos, son desplegados a través de internet como un servicio distribuido por uno o más proveedores de servicios. Dichos servicios son escalables sobre demanda, y pueden ser costeables con un pago por uso (pay-per-use basis).”[1]. 2.1.3.. Principales Caracterı́sticas de la Computación en la Nube. Antes de mencionar y describir las principales caracterı́sticas de la computación en la nube, se debe tener en cuenta tres elementos importantes y esenciales: usuarios, datos y lógica. La informática y la computación en la nube, hacen que a los usuarios les sean de gran utilidad los datos transformados a través de una lógica. Las caracterı́sticas de la computación en la nube son independientes de su arquitectura y ellas son: 1. Autoservicio por demanda: El usuario debe tener disponibilidad de los recursos que necesita tales como potencia de la CPU, de la red, entre otros, sin que ninguna persona intervenga en ello, ya que la computación debe ser autónoma, donde el equipo debe ser capaz de auto administrarse. 2. Acceso a una red amplia: Internet es el medio de interacción entre los usuarios y los proveedores de servicios, por lo tanto se debe disponer de un acceso amplio a la red que permita la interacción entre los diferentes usuarios y las aplicaciones a través de las diferentes plataformas. 3. Recursos comunes y/o compartidos: Los recursos informáticos ya sean servidores, aplicaciones o red, deben estar disponibles para los diferentes usuarios, estos recursos deben soportar una tenencia múltiple para que puedan ser asignados y reasignados según la demanda los usuarios y ası́ maximizar la eficiencia de la infraestructura.. 9.
(25) 4. Elasticidad: Junto con el autoabastecimiento de los recursos, la computación en la nube tiene la capacidad de asignar y liberar recursos rápidamente para permitir a los usuarios aumentar recursos en los momentos en que los necesiten y de igual manera disminuirlos cuando hayan terminado sus labores para dejarlos disponibles para otros usuarios. 5. Pago por uso: La computación en la nube ofrece la utilidad de que los usuarios paguen solo por los servicios utilizados, permitiendo a los usuarios, no incurrir en gastos innecesarios.. 2.2.. Tipos de nubes. 2.2.1.. Nubes Privadas:. Este tipo de nubes son desplegadas detrás de las barreras de protección de una organización donde los usuarios que acceden son conocidos y manejados de acuerdo a las polı́ticas de la organización.. 2.2.2.. Nubes Públicas:. La polı́tica de admisión de este tipo de nubes es muy amplia. Generalmente se basan en la capacidad de pago de los usuarios, para acceder a los recursos de los que dispone el proveedor del servicio.. 2.2.3.. Nubes Hı́bridas:. Las nubes hı́bridas combinan, normalmente, aplicaciones locales con recursos de la nube pública, en muchas ocasiones se convierte en el paso anterior por el que atraviesan algunos usuarios antes de utilizar totalmente la pública.. 2.2.4.. Nubes Federadas o Comunitarias:. No son más que el conjunto de nubes privadas o nubes de comunidades, interactuando entre sı́, gracias a objetivos comunes.. 10.
(26) Figura 1: Las Capas de la Computación en la nube.. Fuente: (Youseff et al. 2008). 2.3.. El modelo de capas de la Computación en la Nube Infraestructura como servicio (IaaS): En esta capa los usuarios utilizan recursos de cómputo, almacenamiento y comunicaciones. En vez de adquirir servidores, espacio en un centro de datos o equipamiento de redes, los clientes compran todos estos recursos a un proveedor de servicios externo. El consumidor es el encargado de correr y desplegar software arbitrario, en otras palabras el usuario es el encargado de instalación, configuración y mantenimiento del software que éste utilizará para llevar a cabo sus propósitos. Plataforma como servicio (PaaS): La capa presenta todo lo necesario para que los desarrolladores puedan realizar su trabajo de construcción y puesta en marcha de aplicaciones y servicios web completamente disponibles en la Internet, además, no sólo resuelve el problema de la infraestructura hardware máquinas, ancho de banda, escalado, disponibilidad, sino también varias capas de infraestructura software: el cliente de este tipo de soluciones no necesita instalar, configurar y mantener sistemas operativos, sistemas de bases de datos y servidores de aplicaciones porque todos ellos vienen por defecto en la plataforma de servicio. Los beneficios de ésta plataforma son grandes, ya que las compañı́as pequeñas que apenas están iniciando pueden empezar a desa11.
(27) rrollar e implementar su propio software sin necesidad de adquirir servidores y equipos para manejarlos.[3] Software como servicio (SaaS): Es un modelo de distribución de software el cual se encuentra alojado y corre sobre la arquitectura de un proveedor de servicio. Los usuarios deben conectarse al proveedor de servicio para tener acceso al software o a las aplicaciones. Los consumidores no tienen control sobre las aplicaciones ni sobre la infraestructura. Por lo general se accede a través de portales web y aparece como un solo servicio para el cliente final. Uno de los principales valores agregados de esta arquitectura es: La actualización es centralizada, de manera que los usuarios no tienen que preocuparse por actualizaciones ni parches para las aplicaciones que utilizan.[3] Cloud computing también ofrece capas como Hardware como servicio (HaaS), Comunicaciones como servicio (CaaS) y Almacenamiento de datos como servicio (DaaS). Hardware como servicio (Haas): Los usuarios de esta capa de la nube son normalmente las grandes empresas con enormes necesidades de TI que necesitan subarrendamiento de hardware como servicio. Por eso, el proveedor de Haas, opera, gestiona actualiza el hardware en nombre de sus consumidores, por el tiempo de vida del subarriendo. Este modelo es ventajoso para el usuario ya que no es necesario invertir en construcción y gestión de centros de datos. Mientras tanto, los proveedores tienen la experiencia técnica, ası́ como la infraestructura para albergar los sistemas. Los proveedores de Haas tienen que abordar una serie de problemas técnicos en el funcionamiento y la gestión de sus servicios. La eficiencia, la facilidad y rapidez de aprovisionamiento de sistemas a gran escala, siempre será un gran desafı́o. Este modelo es muy similar a utilidad computacional (Utility Computing), donde los usuarios pagan por el consumo de espacio de disco, potencia de procesamiento, o ancho de banda que utilizan.[3] Comunicación como servicio (Caas): La comunicación se convierte en un componente importante en la infraestructura de la computación en la nube, por ello se debe proporcionar cierta capacidad de comunicación que sea configurable, programable y fiable. Además este servicio nace para apoyar la seguridad en la red, ancho de banda, cifrado de mensajes y evitar retardos en los mensajes. Almacenamiento como Servicio(DaaS): Los usuarios pueden almacenar sus datos en discos remotos y acceder a ellos en cualquier momento desde 12.
(28) cualquier lugar, obteniendo de ésta manera alta disponibilidad, fiabilidad, rendimiento, replicación y consistencia de los datos y facilitando también de gran manera el desarrollo de aplicaciones web.. 13.
(29) 3.. SERVICIOS INTEGRADOS EN LA COMPUTACIÓN EN LA NUBE. 3.1.. HaaS (Hardware as a Service). Para hablar de el Hardware como servicio, debemos partir de un concepto clave para el entendimiento de este modelo de la computación en la nube y son los servidores6. 3.1.1.. Servidores. La computación en la nube también ofrece la posibilidad de utilizar servidores según la demanda, los cuales se pueden utilizar para almacenamiento, procesamiento, y funciones de red. Esto permite a las empresas operar con software y almacenar información en Data Center a los que puede acceder a través de internet. Entre los tipos de servidores más comunes se encuentran: Servidor de archivo: Almacena diferentes tipos de archivo y los mantiene disponibles para los clientes de la red. Servidor de correo: Recibe, almacena, envı́a, enruta y realiza otras operaciones necesarias para la distribución de los e-mails entre los usuarios de la red. Servidor web: Almacena documentos HTML y demás material web (contenido) y lo distribuye a los clientes de la red que lo soliciten. Servidor de base de datos: Provee servicios de bases de datos a otras aplicaciones o a otros computadores. De acuerdo al rol que desempeñen dentro de una red los servidores se pueden dividir en: Servidores dedicados: Son los que dedican toda su potencia a administrar los recursos de la red, en otras palabras, atienden las solicitudes de procesamiento de los clientes de la red. 6. Computador que forma parte de una red y provee de servicios a otros computadores denominados clientes.. 14.
(30) Servidores no dedicados: Son aquellos que no dedican toda su potencia a atender a los clientes, sino que también pueden desempeñar el rol de estaciones de trabajo procesando solicitudes de un usuario local. Los servidores también se encuentran en diferentes gamas de acuerdo a su estructura fı́sica, algunos son: Servidores de torre: Por su diseño fı́sico son muy similares a los computadores de escritorio, disponen de uno o dos procesadores, también tiene la posibilidad de ampliar la memoria RAM7 y sus unidades de disco duro. Entre los usos ideales se pueden mencionar: aplicaciones empresariales personalizadas, aplicaciones distribuidas de sucursales, de intercambio de archivos, correo electrónico y colaboración, servicios Web, bases de datos departamentales, la virtualización de pequeña escala, la planificación de recursos empresariales (ERP) y gestión de relaciones con clientes (CRM). Figura 2: Ejemplo de servidor: IBM System x3500 M3. Servidores en Rack: Los rack, son gabinetes diseñados para alojar equipos electrónicos, de comunicaciones e informáticos. Los servidores montados en rack proporcionan espacio adicional para el crecimiento gracias a su diseño vertical. La mayorı́a de los negocios se están expandiendo y las necesidades de conexión en red y almacenamiento suelen aumentar y no disminuir, por lo que pasar a un entorno con montaje en rack contribuye a proporcionar espacio adicional para el crecimiento. En comparación con los chasis de los tradicionales servidores en torre, con el montaje de los servidores en racks, los administradores pueden gestionar los servidores 7. Random Access Memory: Memoria de acceso rápido.. 15.
(31) Figura 3: Representación del crecimiento horizontal y vertical de servidores. con mayor facilidad. Gracias a la densidad del chasis, los clientes pueden escalar sus equipos a lo alto en lugar de a lo ancho, lo que permite integrar muchos más servidores en un espacio más pequeño. Estos servidores están colocados muy cerca los unos de los otros, por lo que los administradores y el personal de servicio puede gestionarlos fácilmente desde un lugar más pequeño en vez de tener que desplazarse a varios lugares para poder mantenerlos. Estos servidores también contienen varios procesadores, posibilidad de ampliación de la memoria RAM y de varias unidades de disco. Las aplicaciones ideales incluyen: servidor de copia de seguridad, Web 2.0, imágenes, video / compartir fotos, juegos en lı́nea, comunicación y colaboración (incluyendo blogs y mensajerı́a), archivos e impresión, servidor de correo, datos transaccionales y de búsqueda web. Figura 4: IBM System x3650 M3. Servidores “Blade” (Hoja): Es una delgada “tarjeta” que contiene únicamente microprocesador, memoria y buses. Es decir, no son directamente utilizables ya que no disponen de fuente de alimentación ni tarjetas de comunicaciones. El chasis en el que se integran, permite compartir los elementos comunes como son la ventilación, los switches de red, la alimentación, reduciendo el consumo eléctrico, cables, sistemas de enfriamiento, etc. Una tarjeta Blade es un servidor completo. La memoria RAM, el disco duro, la CPU 8 , están contenidos en el “Blade”, éstas son instaladas mediante la simple 8. Central Processing Unit: Unidad central de procesamiento. 16.
(32) Figura 5: Chasis Blade Modular Dell PowerEdge M1000e. inserción. Las bandejas pueden ponerse cuando se quiera y quitarse de igual manera, no sufriendo el servidor modificación alguna y permaneciendo siempre a pleno rendimiento. Figura 6: Chasis con Servidores Blade. Cuando se requiere aumentar el rendimiento y la disponibilidad que provee un servidor debemos hablar de Clúster de Servidores. Este sistema es básicamente la unión de servidores que trabajan como si fuera uno solo y sirve de apoyo a aplicaciones de supercómputo, software de misiones crı́ticas, servidores web, comercio electrónico, bases de datos de alto rendimiento entre otros. Los clúster se pueden clasificar en: 17.
(33) Clúster de alto rendimiento: Son clúster en los cuales se pueden ejecutar procesos que requieran gran capacidad computacional, grandes cantidades de memoria o ambos. Clúster de alta disponibilidad: Su objetivo es brindar la máxima disponibilidad de los servicios que presta. Clúster de alta eficiencia: Lo que se busca con ellos, es ejecutar la mayor cantidad de procesos en el menor tiempo posible. Generalmente un clúster requiere de los siguientes elementos de hardware y software para funcionar: Nodos: Los nodos pueden ser ordenadores de escritorio o servidores, de hecho se puede establecer un clúster con cualquier tipo de máquina. Sistema Operativo: Es un programa o conjunto de programas, encargado de permitir una gestión eficaz de los recursos de un computador. Este debe de tener un entorno multiusuario, cuanto más fácil sea el manejo del sistema menores problemas tendremos. Conexiones de red: Las conexiones utilizadas en este tipo de sistema pueden ser muy variadas, se pueden utilizar desde simples conexiones Ethernet con placas de red comunes o sistemas de alta velocidad como Fast Ethernet, Gigabit Ethernet, Myrinet, Infiniband, SCI, etc. Middleware: El middleware es el software que actúa entre el sistema operativo y las aplicaciones y que brinda al usuario la experiencia de estar utilizando una única super máquina. Este software provee una única interfaz de acceso al sistema, denominada SSI (Single System Image). Optimiza el sistema y provee herramientas de mantenimiento para procesos pesados como podrı́an ser migraciones, balanceo de carga, tolerancia de fallos, etc. Este sistema también se encarga de la escalabilidad del cluster, detectando nuevas máquinas y añadiéndolas al grupo.. 3.1.2.. Dispositivos de almacenamieno compartido (SAN). El almacenamiento de la información también hace parte importante del Hadware como Servicio, se establece una red dedicada de alto rendimiento para conectar directamente los dispositivos de almacenamiento, lo que permite a los archivos y 18.
(34) datos ser directamente transferidos entre dispositivos de almacenamiento y maquinas cliente, saltándose el tradicional cuello de botella del servidor y el control de la red, en éste aspecto tendremos en cuenta las SAN9 . SAN (Storage Area Network): Red de área de almacenamiento. Su principal objetivo es conectar servidores, matrices de discos y librerı́as de soportes. Está basada principalmente en tecnologı́a Fibre Channel10 y iSCSI11 , pretende siempre conectar de manera rápida, fiable y segura los distintos elementos que componen la red. Caracterı́sticas principales de SAN: Latencia: Las SAN son construidas para minimizar el tiempo de respuesta del medio de transmisión. Conectividad: Permite conección de múltiples servidores al mismo grupo de discos. Distancia: Al ser construidas las SAN con fibra, tienen por consiguiente sus beneficios y pueden tener conectados dispositivos con separación hasta 10 Km sin repetidores. Disponibilidad: Al tener mayor conectividad, los servidores y dispositivos se pueden conectar a la SAN más de una vez, ası́ se pueden tener rutas redundantes que incrementarán la tolerancia a fallos. Seguridad: Desde sus inicios ha sido factor fundamental, ya que se notó la posibilidad de que un sistema accediera a un dispositivo que no le correspondiera o interfiriera con el flujo de información, es por ello que se ha implementado la tecnologı́a de zonificación, la cual consiste en que un grupo de elementos se aı́slen del resto para evitar estos problemas, la zonificación puede llevarse a cabo por hardware, software o ambas, siendo capaz de agrupar por puerto o por WWN (World Wide Name), una técnica adicional se implementa a nivel del dispositivo de almacenamiento que es la Presentación, consiste en hacer que una LUN (Logical Unit Number) sea accesible sólo por una lista predefinida de servidores o nodos (se implementa con los WWN). 9. (Storage Area Network): Red de área de almacenamiento. Fibre Channel: Canal de fibra: Tecnologia de red utilizada principalmente para redes de almacenamiento. 11 Internet SCSI: Estándar que permite el uso del protocolo SCSI sobre internet. Small Computers System Interface (Interfaz de sistemas para pequemas computadoras) 10. 19.
(35) 3.1.3.. Virtualización. Como se ha indicado anteriormente, con los diferentes tipos de servidores, se pude conseguir una alta capacidad de procesamiento y almacenamiento, uniendo varios servidores de tal forma que realicen labores como si fuera uno solo. Este proceso de unificación de servidores se realiza normalmente para que se puedan llevar a cabo procesos que en computadores normales o sencillos tardarı́an demasiado tiempo. Como bien se sabe, una de las principales caracterı́sticas de la computación en la nube, es la de proveer recursos de procesamiento y almacenamiento a los usuarios, dichos recursos deben ser administrados de tal manera que se puedan repartir las tareas entre varios servidores para agilizar el tiempo de respuesta. Para el aprovechamiento de los recursos de los servidores se utiliza la VIRTUALIZACIÓN. Virtualización es la técnica empleada sobre las caracterı́sticas fı́sicas de algunos recursos computacionales para ocultarlas de otros sistemas, aplicaciones o usuarios que interactúen con ellos, esto implica hacer que un recurso fı́sico como un servidor, un sistema operativo o un dispositivo de almacenamiento, aparezca como si fueran varios recursos lógicos a la vez, o que varios recursos fı́sicos como servidores o dispositivos de almacenamiento aparezcan como un único recurso lógico. La virtualización del sistema operativo es el uso de software para permitir que un mismo sistema maneje varias imágenes de los sistemas operativos a la misma vez. Esta tecnologı́a permite la separación del hardware y el software, lo cual posibilita a su vez que múltiples sistemas operativos se ejecuten simultáneamente en una sola computadora. La virtualización, desde un punto de vista muy simple es un programa que se instala en un sistema operativo (llamado anfitrión) que permite instalar y ejecutar otro sistema operativo como si fuera otro computador completamente diferente, llamado servidor virtual. La virtualización no es un tema nuevo, de hecho ronda desde hace 40 años. Los primeros usos de la virtualización incluyen el IBM 7044, el Sistema de Tiempo Compartido (CTSS - Compatible Time Sharing System) desarrollado en el Instituto Tecnológico de Massachusetts (MIT - Massachussets Institute of Technology) en el IBM 704. Y el proyecto Atlas de la Universidad de Manchester (uno de los primeros superordenadores del mundo), que fué pionero en el uso de memoria virtual con 20.
(36) paginación y llamadas de supervisor. Hoy en dı́a, la virtualización está a la vanguardia, ayudando a los negocios con la escalabilidad, seguridad y administración de sus infraestructuras globales de TI. Figura 7: Estructura del concepto de Virtualización. Como puede ser difı́cil determinar el grado de utilización de un servidor, las tecnologı́as de virtualización soportan la migración en directo, la cual permite que un sistema operativo y sus aplicaciones se muevan a un nuevo servidor para balancear la carga sobre el hardware disponible. CARACTERÍSTICAS DE LA VIRTUALIZACIÓN: Particionamiento: Se pueden ejecutar múltiples aplicaciones y sistemas operativos en un mismo sistema fı́sico. Los servidores se pueden consolidar en maquinas virtuales con una arquitectura de escalabilidad vertical (scale-up) u horizontal (scale-out). Los recursos computacionales se tratan como un conjunto uniforme que se distribuye entre las maquinas virtuales de manera controlada. Aislamiento: Las maquinas virtuales están completamente aislados entre sı́ y del host. Si existen fallas en una maquina virtual, las demás no se ven afectados. Los datos no se filtran a través de las maquinas virtuales y las aplicaciones sólo se pueden comunicar a través de conexiones de red configuradas. Al mismo tiempo que las máquinas virtuales comparten los recursos fı́sicos de una computadora, permanecen totalmente aisladas entre sı́ como si fueran máquinas fı́sicas separadas. Por ejemplo, si hay cuatro máquinas virtuales en un servidor y una de las máquinas virtuales colapsa, las otras tres siguen disponibles. El aislamiento es una de las grandes razones por las que la disponibilidad y la seguridad de las aplicaciones que se ejecutan en entornos virtualizados es tan 21.
(37) superior a las de las aplicaciones que se ejecutan en un sistema tradicional no virtualizado. Encapsulación: El entorno completo del servidor virtual se guarda en un solo archivo, fácil de mover, copiar y resguardar. La aplicación reconoce el hardware virtual estandarizado de manera que se garantiza su compatibilidad. Una máquina virtual es básicamente un contenedor de software que empaqueta o “encapsula” un conjunto entero de recursos de hardware virtual, ası́ como un sistema operativo y todas sus aplicaciones, dentro de un paquete de software. El encapsulamiento permite que las máquinas virtuales sean notablemente portátiles y fáciles de administrar. Por ejemplo, es posible mover y copiar una máquina virtual de una ubicación a otra como si fuera un archivo de software cualquiera, o guardar una máquina virtual en un medio de almacenamiento de datos estándar, desde una tarjeta de memoria USB hasta una red de área de almacenamiento (SAN) empresarial. Independencia del Hardware: Las máquinas virtuales son totalmente independientes del hardware fı́sico subyacente. Por ejemplo, se puede configurar una máquina virtual con componentes virtuales (CPU, tarjeta de red, controlador SCSI) que sean completamente diferentes a los componentes fı́sicos presentes en el hardware subyacente. Las máquinas virtuales ubicadas en el mismo servidor fı́sico incluso pueden ejecutar distintos tipos de sistemas operativos (Windows, Linux, etc.). Al combinarse con las propiedades de encapsulamiento, la independencia de hardware le permite mover una máquina virtual de un tipo de computadora x86 a otra sin modificar los controladores de dispositivos, el sistema operativo o las aplicaciones. La independencia de hardware también le permite ejecutar una combinación heterogénea de sistemas operativos y aplicaciones en una única computadora fı́sica.. Modelos de Virtualización Los entornos de virtualización se pueden aplicar para multitud de propósitos. Por ejemplo, la virtualización se puede utilizar para mantener entornos múltiples de software dentro de una misma máquina para realizar pruebas o simplemente para que un usuario de escritorio pueda ejecutar distintos sistemas operativos. La tecnologı́a de virtualización se aplica desde hace años en plataformas de servidores comerciales como VM/370 de IBM o el zOS. 22.
(38) Figura 8: Caracterı́sticas de la Virtualización. Modelo de máquina virtual: El modelo de máquina virtual está basado en la arquitectura cliente/servidor, donde cada cliente funciona como una imagen virtual de la capa hardware. Este modelo permite que el sistema operativo cliente funcione sin modificaciones. Además permite al administrador crear diferentes sistemas clientes con sistemas operativos independientes entre sı́. La ventaja principal de este modelo radica en el desconocimiento por parte de los sistemas huésped del sistema hardware real sobre el que está instalado. Sin embargo, realmente todos los sistemas virtuales hacen uso de recursos hardwares fı́sicos. Estos recursos son administrados por un sistema denominado hypervisor que coordina las instrucciones CPU. El hypervisor es denominado comúnmente monitor de máquina virtual (VMM) y es el encargado de validar todas las peticiones e instrucciones de los sistemas virtuales a la CPU, supervisando todas las ejecuciones que requieran cambios de privilegios. Dos sistemas tı́picos de servidores virtuales son VMware (Rosenbblum, 1999; VMware, 2007) y Microsoft Virtual Server (Purush et al 2004). Modelo de máquina paravirtual: El modelo de máquina paravirtual (PVM) se basa, como el modelo anterior, en la arquitectura cliente/servidor, incluyendo también la necesidad de contar con un sistema monitor. Sin embargo, en este caso, el VMM accede y modifica el código del sistema operativo del sistema huésped. Esta modificación se conoce como porting. El porting sirve de soporte al VMM para que pueda realizar llamadas al sistema directamente. Al igual que las máquinas virtuales, los sistemas paravirtuales son capaces de soportar diferentes sistemas operativos instalados en el hardware real. Modelo de virtualización a nivel del sistema operativo: La virtualiza23.
(39) ción a nivel de sistema operativo se diferencia de las anteriores en que, en este caso, no existe un sistema cliente/servidor propiamente dicho. En este modelo el sistema principal exporta la funcionalidad del sistema operativo desde su propio núcleo. Por esta razón, los sistemas virtuales usan el mismo sistema operativo que el nativo (aunque en la mayorı́a de los casos pueden instalar distintas distribuciones). Esta arquitectura elimina las llamadas del sistema entre capas, lo que favorece una reducción importante en el uso de CPU. Además, al compartir los ficheros binarios y librerı́as comunes del sistema en la misma máquina, la posibilidad de escalado es mucho mayor, permitiendo que un mismo servidor virtual sea capaz de dar servicio a un gran número de clientes al mismo tiempo.. 3.2.. IaaS (Infrastructure as a Service). Uno de los principales componentes de la infraestructura como servicio es el Centro de Datos (Data Center). 3.2.1.. Data Center. El Data Center, es un lugar acondicionado para albergar gran cantidad de servidores, con temperatura y humedad constantes, con altos niveles de seguridad fı́sica, con sistemas anti-incendio, suministro eléctrico regulado y conectado a Internet por medio de conexiones de alta velocidad. Un lugar especialmente diseñado para alojar equipos de computación y garantizar su permanente funcionamiento, cumpliendo con la Norma Internacional de TIA12 : TIA/EIA 942 “Telecommunications Infrastructure Standard for Data Centers”.13 Por la norma ANSI/TIA 942 existe una serie de reglas aplicables para clasificar un Data Center, llamados Tiers(Niveles), la clasificación considera 4 niveles independientes para los sistemas de: • Telecomunicaciones • Arquitectura • Eléctrica 12 13. Telecommunications Industry Association: TIA TIA on Line. 24.
(40) • Mecánica Dentro de cada subsistema el estándar desarrolla una serie de ı́tems como se muestra el la Figura 5. Figura 9: Items principales de cada subsitema. 3.2.2.. Tier I - Básico. La infraestructura de comunicaciones será distribuida de la sala de entrada (ER) para las áreas de distribución horizontal (HDA) a través de una única ruta. Un Data Center Tier I puede ser susceptible a interrupciones tanto planeadas como no planeadas. Cuenta con sistemas de aire acondicionado y distribución de energı́a; pero puede o no tener piso técnico, UPS o generador eléctrico; si los posee pueden no tener redundancia y existir varios puntos únicos de falla. Estima un nivel mı́nimo de distribución de energı́a eléctrica para atender exigencias de capacidad eléctrica, con pequeña o ninguna redundancia. En este caso, una falla eléctrica o una reparación podrá ocasionar la interrupción parcial o total de las operaciones. No es necesaria redundancia de alimentación de energı́a en la entrada de la empresa. Debe prever un sistema de acondicionamiento de aire simples/múltiples con 25.
(41) capacidad de enfriamiento combinada para mantener la temperatura y la humedad relativa de las áreas crı́ticas en las condiciones proyectadas, sin unidades redundantes. La carga máxima de los sistemas en situaciones crı́ticas es del 100 %. La infraestructura del Data Center deberá estar fuera de servicio al menos una vez al año por razones de mantenimiento y/o reparaciones. Situaciones de urgencia pueden motivar paradas más frecuentes y errores de operación o fallas en los componentes de su infraestructura causarán la detención del Data Center. La tasa de disponibilidad máxima del datacenter es 99.671 % del tiempo. Los potenciales puntos de falla son: • Falla de energı́a de la concesionaria en el Data Center o en la Central de la Operadora de Telecomunicaciones. • Falla de equipamientos de la Operadora. • Falla en los Routers o conmutadores no redundantes. 3.2.3.. Tier II - Componentes Redundantes. Los equipamientos de telecomunicaciones del Data Center y también los equipamientos de la operadora de telecomunicaciones, ası́ como los conmutadores LANSAN deben tener módulos redundantes (fuentes de energı́a, placas procesadoras, de supervisión, de acceso). Los datacenters con componentes redundantes son ligeramente menos susceptibles a interrupciones, tanto planeadas como las no planeadas. Estos datacenters cuentan con piso falso, UPS y generadores eléctricos, pero están conectados a una sola lı́nea de distribución eléctrica. Su diseño es “lo necesario más uno” (N+1), lo que significa que existe al menos un duplicado de cada componente de la infraestructura. Debe proveer módulos UPS redundantes para N+1. Es necesario un sistema de generador eléctrico dimensionado para controlar todas las cargas del Data Center, mientras no sea necesario conjunto de generadores redundantes. No es necesaria ninguna redundancia en la entrada de servicio de distribución de energı́a. Los sistemas de aire acondicionado deben ser proyectados para la operación 26.
(42) continua 7 dı́as/ 24 horas/ 365 dı́as/año e incorporan un mı́nimo de redundancia N+1. La carga máxima de los sistemas en situaciones crı́ticas es del 100 %. El mantenimiento en la lı́nea de distribución eléctrica o en otros componentes de la infraestructura pueden causar una interrupción del procesamiento. La tasa de disponibilidad máxima del datacenter es 99.749 % del tiempo. Posible punto de falla para esta instalación: • Fallas en los sistemas de aire acondicionado o de energı́a pueden ocasionar fallas en todos los demás componentes del Data Center. 3.2.4.. Tier III - Mantenimiento concurrente. Las capacidades de un Data Center de este tipo le permiten realizar cualquier actividad planeada sobre cualquier componente de la infraestructura sin interrupciones en la operación. Actividades planeadas incluyen mantenimiento preventivo y programado, reparaciones o reemplazo de componentes, agregar o eliminar elementos y realizar pruebas de componentes o sistemas, entre otros. Para infraestructuras que utilizan sistemas de enfriamiento por agua significa doble conjunto de tuberı́as. Debe existir suficiente capacidad y doble lı́nea de distribución de los componentes, de forma tal que sea posible realizar mantenimiento o pruebas en una lı́nea, mientras que la otra atiende la totalidad de la carga. La carga máxima en los sistemas en situaciones crı́ticas es de 90 %. En este tier, actividades no planeadas como errores de operación o fallas espontáneas en la infraestructura pueden todavı́a causar una interrupción del datacenter. Debe ser atendido por lo menos por dos operadores de telecomunicación. Observar que no es permitido que los cables de una misma operadora presten servicios a una segunda operadora, para evitar un punto único de falla. Muchos datacenters tier III son diseñados para poder actualizarse a tier IV, cuando los requerimientos del negocio justifiquen el costo. El sistema de HVAC (Calefacción, Ventilación y Condicionamiento de Aire) de una instalación de capa 3 debe incluir múltiples unidades de aire acondicionado con capacidad combinada de enfriamiento para mantener la temperatura y 27.
(43) la humedad relativa en las condiciones proyectadas, con unidades redundantes suficientes para permitir una falla o mantenimiento de un panel eléctrico. El punto de falla es: • Cualquier evento crı́tico “catástrofe” en el MDA(área principal de distribución de cableado estructurado) o HDA(Es un área utilizada para conexión con las áreas de equipos.) va a interrumpir los servicios. La tasa de disponibilidad máxima del datacenter es 99.982 % del tiempo. 3.2.5.. Tier IV - Tolerancia a fallos. Este Data Center provee capacidad para realizar cualquier actividad planeada sin interrupciones en las cargas crı́ticas, pero además la funcionalidad tolerante a fallas le permite a la infraestructura continuar operando aun ante un evento crı́tico no planeado. Esto requiere dos lı́neas de distribución simultáneamente activas, tı́picamente en una configuración system + system; eléctricamente esto significa dos sistemas de UPS independientes, cada sistema con un nivel de redundancia N+1. Todo el cableado del backbone14 debe ser redundante, además, él debe ser protegido a través de rutas/ductos cerrados. Los equipamientos activos (routers, MODEM de operadoras, switches LAN/SAN) deben ser redundantes y tener alimentación de energı́a redundante. El sistema debe proveer la conmutación automática para los equipos de backup. La carga máxima de los sistemas en situaciones crı́ticas es de 90 % y persiste un nivel de exposición a fallas, por el inicio una alarma de incendio o porque una persona inicie un procedimiento de apagado de emergencia o Emergency Power Off (EPO), los cuales deben existir para cumplir con los códigos de seguridad contra incendios o eléctricos. La tasa de disponibilidad máxima del datacenter es 99.995 % del tiempo. Para poner en perspectiva la tasa de disponibilidad que se pretende para los 14. Estructura de transmisión de datos de una red o conjunto de ellas en Internet. Literalmente: “columna vertebral”. 28.
(44) distintos tiers, en la imagen se expresa su significado expresado en el tiempo de parada anual del Data Center. Estos porcentajes deben considerarse como el promedio de cinco años. Figura 10: Comparación de disponibilidad de cada nivel. En un proyecto de Data Center la caracterı́stica primordial es eliminar los puntos de fallas y aumentar la redundancia y confiabilidad de las informaciones de la empresa. A continuación presentamos un resumen de cada una de los Tiers. Figura 11: Resumen de la clasificación TIER’s. 29.
(45) 3.3.. PaaS (Platform as a Service). Platform as a Service (PaaS) En español Plataforma como Servicio. Aunque suele identificarse como una evolución de SaaS, es más bien un modelo en el que se ofrece todo lo necesario para soportar el ciclo de vida completo de construcción y puesta en marcha de aplicaciones y servicios web completamente disponibles en la Internet. Otra caracterı́stica importante es que no hay descarga de software que instalar en los equipos de los desarrolladores. PasS ofrece mútliples servicios, pero todos provisionados como una solución integral en la web.. 3.4.. SaaS (Software as a Service). Software as a Service (SaaS) o Software como un servicio. Se define como un modelo de Software de gestión de aplicaciones[8], donde un proveedor de software implementa y ejecuta aplicaciones de software en una plataforma multiusuario (Nube) para que sus clientes utilicen estas aplicaciones a través de Internet, como un servicio. En los últimos años, SaaS se ha convertido en un nuevo paradigma para la entrega de software en la Computación en la Nube, atrayendo más y más tanto a la industria, como a la academia. En otros términos, SaaS es un modelo de distribución del software que proporciona a los clientes el acceso al mismo a través de la red (generalmente Internet), de manera que les libra del mantenimiento de las aplicaiones, de operaciones técnicas y de soporte. Las aplicaciones distribuidas en la modalidad SaaS pueden llegar a cualquier tipo de empresa sin importar su tamaño o su ubicación geográfica. Se trata de un modelo que une el producto (software) al servicio, para dotar a las empresas de una solución completa que permita optimizar sus costos y sus recursos. En comparación con el software convencional, SaaS tiene algunas caracterı́sticas únicas. En lugar de estar instalado en el local, las aplicaciones SaaS normalmente se hospedan en la red del proveedor de servicios, y es entregado como un servicio, y sirven de los servicios de modo multi-usuario. Este modelo de prestación de servicios On-demand (sobre demanda) y multi-tenant (multiusuario) se adapta bien a la nube de software, ya que no requiere el despliegue de una gran infraestructura en las instalaciones del cliente. Por otro lado, las aplicaciones SaaS se pueden desarrollar en un entorno de Computación en la. 30.
(46) Nube y se accede a través de Internet con navegadores convencionales. Por lo tanto, elimina o reduce drásticamente el compromiso inicial de recursos. Como consecuencia, las aplicaciones SaaS se pueden implementar con el mı́nimo esfuerzo y estará disponible en muy poco tiempo para un gran número de usuarios, y por lo tanto, hace que el modelo SaaS sea muy atractivo para las empresas. Además, SaaS emplea una sola instancia, la arquitectura multiusuario, permitiendo a muchos clientes compartir los recursos sin afectar la otra. Este servicio de enfoque centralizado de alojamiento, hace que el despliegue de parches y actualizaciones de la aplicación sean transparente para los usuarios. Otra caracterı́stica importante de SaaS es la adopción de los servicios Web (Web Services) y la arquitectura orientada a servicios (SOA) Service Oriented Architecture., una arquitectura plenamente aceptada por la industria. Muchas plataformas SaaS exponen los datos de las aplicaciones y sus funcionalidades a través de la interfaz de servicios web (Web Server Interface). Esto no sólo permite a los clientes consultar/actualizar los datos de las aplicaciones SaaS mediante programación, sino que también proporciona un mecanismo estándar para integrar las aplicaciones SaaS en la Nube con software de la empresa con la infraestructura empresarial SOA. Con la adopción de Web Services y SOA tanto por los proveedores de SaaS y las empresas, se ha simplificado significativamente el proceso de integración. Sin embargo, la integración de las aplicaciones de SaaS con las aplicaciones on-premise15 todavı́a enfrentan serios desafı́os a la hora de cruzar las redes de empresas y dominios. Esto se debe a que tı́picamente, las redes de ls empresa estan protegidas dispositivos (NAT)network address translation (NAT) y estrictos firewalls (cortafuegos). Por lo general, NAT/firewall se configuran para bloquear todos los paquetes entrantes iniciados por parte del público (externo) de la red y abrir sólo un número limitado de puertos para los salientes. Como resultado, todas las solicitudes enviadas a las aplicaciones on-premise, desde las aplicaciones SaaS en una Nube publica, serán bloqueadas por la empresa NAT/firewall. 15. Se denomina on-premise, a las aplicaciones que se encuentran en las instalaciones de la compañia.. 31.
(47) Figura 12: Solicitud bloqueada de una Aplicación SaaS.. 3.4.1.. SOA (Service Oriented Architecture). El concepto de Orientación a Servicios tiene sus raı́ces en una teorı́a de la Ingenierı́a de Software llamada Separación de Incumbencias (Separation of Concerns). Esta teorı́a se basa en la noción de que es beneficioso particionar un gran problema en una serie de incumbencias individuales. Esto permite que la lógica requerida para resolver el problema sea descompuesta en una colección de piezas relacionadas de menor tamaño. Cada pieza de lógica se va a encargar de una incumbencia especı́fica. La teorı́a de Separación de Incumbencias ha sido plenamente utilizada y probada en un amplio rango de problemáticas. Por ejemplo, el paradigma de programación orientada a objetos, intenta lograr esto mediante la abstracción y encapsulamiento de lógica y datos en objetos y clases. Asimismo, en la programación orientada a componentes, se utilizan los mismos como unidades de separación de incumbencias o funcionalidad. Un servicio o web service es una pieza de software que conforma una serie de estándares de intercambio de información. Estos estándares permiten el intercambio de operaciones entre diferentes tipos de computadoras, apartándose del problema del hardware que utilicen, como ası́ también de los sistemas operativos que estén corriendo en dichos equipos, o de los lenguajes de programación en los que estén escritos. Para mantener su independencia, los web services, encapsulan la lógica dentro de un contexto. Este contexto puede ser una tarea de negocio, una entidad de negocio o alguna otra agrupación lógica. Cuando se construye una solución con arquitectura orientada a servicios, cada servicio puede encapsular una tarea realizada por una rutina individual, o un subproceso compuesto de varias rutinas. Un servicio puede además encapsular la lógica completa del proceso, tal como indica la figura 6. La Arquitectura Orientada a Servicios (SOA) es un conjunto flexible de los principios de diseño utilizados durante las fases de desarrollo e integración. 32.
(48) Figura 13: Encapsulamiento de procesos.. de sistemas de computación. Un sistema basado en una arquitectura SOA se empaqueta funcionalmente como un conjunto de servicios interoperables que pueden ser utilizados en múltiples sistemas de diferentes unidades de negocios. SOA también proporciona una manera para que los consumidores de servicios, tales como aplicaciones basadas en web, puedan estar al tanto de los servicios basados en SOA. Por ejemplo, varios departamentos diferentes dentro de una empresa pueden desarrollar e implementar servicios de SOA en diferentes implementaciones de lenguajes, sus respectivos clientes se beneficiarán de una entendible interfase para acceder a ellos. XML16 es utilizado comúnmente para interactuar con los servicios de SOA, aunque esto no es estrictamente necesario. SOA define la forma de integrar diferentes aplicaciones para un entorno basado en Web y aplicaciones de múltiples plataformas de ejecución. En lugar de definir una API, SOA define la interfaz en términos de protocolos y funcionalidad. Un extremo es el punto de partida para una implementación de SOA. El Service-Oriented o Web Service, requiere el acoplamiento flexible de servicios con los sistemas operativos y otras tecnologı́as que subyacen en las aplicaciones. SOA separa las funciones en distintas unidades o servicios, [9], que los desarrolladores deben hacer accesibles a través de una red, a fin de permitir a los usuarios combinar y reutilizar en la producción de las aplicaciones. 16. Extensible Markup Language (XML): ’lenguaje de marcas extensible’. 33.
(49) Estos servicios y sus consumidores correspondientes se comunican entre sı́ pasando datos en un lugar bien definido, en modo común (shared format), o mediante la coordinación de una actividad entre dos o más servicios[10]. Las implementaciones SOA se basan en una malla de servicios de software. Los servicios incluyen unidades no asociadas, unidades con funcionalidades débilmente acoplados no deben ser llamadas desde otros contenidos en el. Cada servicio se refiere a una acción, como una solicitud en lı́nea para una cuenta, o ver un estado de cuenta bancaria en lı́nea, o la colocación de una reserva online o para tiquete de avión. En lugar de incrustar los servicios para ser llamados desde otro servicio, utilizan protocolos definidos que describen cómo pasan los servicios y se analizan y aprueban los mensajes a través de la descripción de los metadatos. Requerimientos Con el fin de utilizar eficientemente SOA, la arquitectura debe cumplir los siguientes requisitos: • La interoperabilidad entre diferentes sistemas y lenguajes de programación que proporciona la base para la integración entre aplicaciones en diferentes plataformas a través de un protocolo de comunicación. Un ejemplo de la comunicación depende del concepto de los mensajes. Por medio de mensajes cruzados a través de los canales de mensajes definidos, se disminuye la complejidad de la aplicación final, permitiendo ası́ que el desarrollador de la aplicación se centre en la funcionalidad real de la aplicación en lugar de las necesidades complejas de un protocolo de comunicación. • Deseo de crear una unión de recursos. Establecer y mantener el flujo de datos a un sistema de base de datos federada. Esto permite nuevas funcionalidades desarrolladas para hacer referencia a un formato de negocio común para cada elemento de datos. Principios. 34.
(50) Los siguientes principios rectores definen las reglas básicas para el desarrollo, mantenimiento y uso de la SOA[11]: • Reutilización, granularidad, modularidad, componibilidad, componentización y la interoperabilidad. • Normas de cumplimiento (tanto comunes como especı́ficas de la industria). • Servicios de identificación y categorización, el aprovisionamiento, la entrega y el monitoreo y el control. Figura 14: Interoperabilidad de un servicio. 3.4.2.. Servicios Web (Web Services). Un Servicio Web es una interfaz que describe un conjunto de operaciones que se puede acceder por la red, a través de mensajerı́a XML17 estandarizada. Los Servicios Web se describen usando la notación formal estándar XML, llamada descripción del servicio. Abarca todos los detalles necesarios para interactuar con otros Servicio Web, incluyendo los formatos de mensaje (El detalle de las operaciones), los protocolos de transporte y ubicación. La interfaz esconde los detalles de implementación del servicio, lo que le permite ser utilizado independientemente de la plataforma de hardware o software en el que se lleva a cabo y también de forma independiente del lenguaje de programación en el que está escrito. Esto permite y anima a las aplicaciones basadas en Servicios Web ser débilmente acopladas, orientadas a componentes a través de implementaciones cruzadas. El Servicios Web cumple una tarea especı́fica o un conjunto 17. Extensible Markup Language (XML). 35.
(51) de tareas. Se pueden usar solos o con otros Servicios Web para llevar a cabo una agregación compleja o una transacción comercial. El modelo de los Servicio Web The Web Services Model Figura 15: Roles del Servicio Web, operaciones y artefáctos.. Fuente: Web Services Conceptual Architecture (WSCA 1.0) UDDI (Universal Description, Discovery and Integration). Son las siglas del catálogo de negocios de Internet denominado Universal Description, Discovery and Integration. El registro en el catálogo se hace en XML. UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. www.wiki.org WSDL (Web Services Description Language). Define un lenguaje de descripción de servicios web utilizando XML. www.w3c.org. Roles en los Servicios Web • Proveedor de Servicio (Server provider): Desde la perspectiva empresarial, este es el dueño del servicio. Desde la perspectiva de la arquitectura, esta es la plataforma que aloja el acceso al servicio. • Solicitante del Servicio (Service requestor): Desde la perspectiva empresarial, este es el negocio que requiere o demanda de ciertas funciones que deben ser satisfechas. Desde la perspectiva de la arquitectura, esta es la aplicación que está buscando una invocación o una iniciación de interacción con un servicio. El papel del solicitante del servicio, puede ser 36.
Figure
Documento similar
Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in
Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in
This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)
Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)
que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el
En suma, la búsqueda de la máxima expansión de la libertad de enseñanza y la eliminación del monopolio estatal para convertir a la educación en una función de la
6 Para la pervivencia de la tradición clásica y la mitología en la poesía machadiana, véase: Lasso de la Vega, José, “El mito clásico en la literatura española
d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que