Vous êtes sur la page 1sur 46
Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura Licenciatura en Sistemas

Universidad Nacional del Nordeste

Facultad de Ciencias Exactas y Naturales y Agrimensura

Licenciatura en Sistemas de Información

Comunicaciones de Datos

Monografía Adscripción

Computación en Nube

Adscripto: PUA. Carlos R. Primorac Director: Dr. David Luis La Red Martínez

Año 2014

Contenido

1. Introducción

4

2. Definición y paradigma de la Computación en Nube

5

2.1.

Definición

5

3. Modelo de Computación en Nube del NIST

7

3.1.

Características Esenciales

7

3.1.1. Autoservicio bajo demanda

7

3.1.2. Amplio acceso a la red

7

3.1.3. Agrupamiento de recursos

8

3.1.4. Elasticidad rápida

8

3.1.5. Servicio medido

8

3.2.

Modelos de Servicios

9

3.2.1. Software como Servicio (SaaS)

10

3.2.2. Plataforma como Servicio (PaaS)

11

3.2.3. Infraestructura como Servicio (IaaS)

12

3.3.

Modelos de despliegue

13

3.3.1. Nube Privada

13

3.3.2. Nube Pública

13

3.3.3. Nube Comunitaria

14

3.3.4. Nube Híbrida

14

4. Virtualización

14

4.1. Tecnología Clave

15

4.2. Ventaja

15

4.3. Hipervisores

16

4.4. Elementos característicos de Virtualización

17

5. Beneficios y Retos de la Computación en Nube

18

5.1. Beneficios

18

5.2. Retos

19

6. Arquitectura de Referencia de Computación en Nube del NIST

19

6.1.

Actores

20

6.1.1. Consumidor de la Nube

21

6.1.2. Proveedor de la Nube

22

6.1.3. Auditor de la Nube

24

6.1.4. Intermediario de la Nube

24

6.1.5. Operador de la Nube

25

6.2.

Alcance de control entre el proveedor y el consumidor

25

2

6.3.

Componentes Arquitectónicos

27

6.4. Orquestación de Servicios

29

6.5. Administración de Servicios en Nube

31

7. Estándares y Organizaciones

32

8. Conclusiones

35

9. Referencias

37

10. Anexos

40

10.1. Taxonomía de Tecnologías

40

10.2. Proveedores de Computación en Nube

45

3

1. Introducción

La computación en nube (cloud computing) puede verse como un nuevo estilo de computación en el cual los recursos, dinámicamente escalables y frecuentemente virtualizados, son provistos como servicios sobre Internet. La computación en nube se ha convertido en una tendencia tecnológica significativa y muchos expertos esperan que cambie los procesos y el mercado de las Tecnologías de la Información (IT).

Con la tecnología de la computación en nube, los usuarios utilizan una variedad de dispositivos, incluyendo computadoras personales (PCs), computadoras portátiles (Notebooks), teléfonos inteligentes (Smartphones) y asistentes personales digitales (PDAs), para acceder a programas, almacenamiento y plataformas para el desarrollo de aplicaciones sobre Internet, a través de servicios ofrecidos mediante los proveedores de la nube. Entre las ventajas de la tecnología de la computación en nube se encuentran el salvar costos, la alta disponibilidad y la facilidad de escalabilidad.

Este trabajo se organiza en ocho secciones y dos anexos. En la primera se comenta brevemente la visión de la computación en nube. En segundo lugar, se aborda el paradigma y se define el término computación en nube, proporcionando una vista no exhaustiva sobre los principales aspectos que forman un sistema en nube. A continuación, en la sección tercera, se describen las características esenciales, los modelos de servicios y los modelos de despliegue de la computación en nube según el modelo de computación en nube del Instituto Nacional de Normas y Tecnología (NIST:

National Institute of Standards and Technology). La cuarta sección trata una de las tecnologías claves que permite la computación en nube, la virtualización. Seguidamente, en la quinta sección, se exponen brevemente las principales ventajas y retos del paradigma de la computación en nube. En la sexta sección se presenta la Arquitectura de Referencia de Computación en Nube del NIST, con la intención de facilitar la comprensión de los requerimientos, usos, características y estándares de la computación en nube. En la séptima sección se comentan las diferentes áreas de estudio de la computación en nube y los principales organismos de normalización relacionados con ellos. Finalmente, se exponen las conclusiones.

El Anexo A contiene una taxonomía de tecnologías de la computación en nube y el Anexo B resume los modelos de servicio y modelos de despliegue de los diez proveedores de computación en nube más importantes en la actualidad.

4

2. Definición y paradigma de la Computación en Nube

El término computación en nube, más allá de un concepto monolítico, representa una arquitectura donde se integran el conjunto de tecnologías i) software como servicio (SaaS: Software as a Service), ii) plataforma como servicio (PaaS:

Plataform as a Service) y iii) infraestructura como servicio (IaaS: Infraestructure as a service). De igual manera, con el mismo término se denomina la evolución de las tecnologías grid o tecnologías en malla, donde se ofrecen capacidades de supercomputación en modo servicio, correspondientes a un pasado cercano y, que aún coexisten en determinados ámbitos [1].

Según Foster y colaboradores [2], la computación en nube no es un concepto completamente nuevo, sino que tiene una conexión con el concepto de computación en malla y con el de otras tecnologías tales como los clústeres de computadoras y los sistemas distribuidos en general. Estos autores postularon que estandarizando los protocolos utilizados para requerir los recursos de computación se podrían crear tecnologías que permitirían a los consumidores obtener la potencia de computación bajo demanda análoga, en forma y utilidades, a una red de energía eléctrica

En la computación en nube la visión es la misma, reducir el costo de computación incrementando la confiabilidad y la flexibilidad pasando de algo que se compra y opera por cuenta propia a algo que es comprado y operado por una tercera parte.

Hay una necesidad común de gestionar grandes instalaciones y para definir los métodos por los cuales los consumidores descubren y utilizan los recursos proporcionadas por estas grandes instalaciones. Los detalles difieren, pero los dos las comunidades están luchando con muchas de las mismas cuestiones.

2.1. Definición

Existen varias definiciones para el término computación en nube [3]. Según el Instituto Nacional de Normas y Tecnología (NIST: National Institute of Standards and Technology), la computación en nube es un modelo que permite, convenientemente, el acceso bajo demanda a redes ubicuas para compartir un conjunto configurable de recursos de computación (por ejemplo, redes, servidores, almacenamiento,

5

aplicaciones y servicios) que se pueden proveer y liberar rápidamente con un mínimo esfuerzo de administración o interacción del proveedor del servicio. Este modelo de nube está compuesto por cinco características esenciales, tres modelos de servicios y cuatro modelos de despliegue (Figura 1).

de servicios y cuatro modelos de despliegue (Figura 1). Figura 1. Modelo de Computación en Nube

Figura 1. Modelo de Computación en Nube del NIST (Elaboración propia en base a la definición de computación en nube del NIST [3]).

La Figura 2, proporciona una vista no exhaustiva sobre los principales aspectos que forman un sistema en nube.

los principales aspectos que forman un sistema en nube. Figura 2. Principales aspectos que forman un

Figura 2. Principales aspectos que forman un sistema en nube [4].

6

3. Modelo de Computación en Nube del NIST

Según la definición del NIST [3], la computación en nube es un paradigma en evolución. El modelo de computación en nube del NIST destaca las cinco características esenciales de la misma proporcionando una línea base para discutir lo que es la computación en nube y un medio para comparar los servicios en la nube y sus estrategias de implementación. Por otro lado los modelos de servicios y de despliegue forman una taxonomía simple, la cual no está destinada a prescribir o limitar cualquier método particular de despliegue, prestación de servicios, o de operación del negocio.

3.1. Características Esenciales

En comparación con otros paradigmas de computación [2], el paradigma de la computación en nube ofrece una serie de nuevas características.

Según

la

definición

del

NIST

[3],

características esenciales:

1. Autoservicio bajo demanda.

2. Acceso amplio a la red.

3. Agrupamiento de recursos.

4. Elasticidad rápida.

5. Servicio medido.

3.1.1. Autoservicio bajo demanda

este

modelo

debe

contar

con

cinco

Un consumidor puede proveerse unilateralmente recursos de computación, tales como tiempo de servidor y almacenamiento en red, a medida que lo necesite, sin requerir interacción humana con el proveedor del servicio.

3.1.2. Amplio acceso a la red

Las capacidades están disponibles en la red y se acceden a través de mecanismos estándares que promueven el uso heterogéneo de plataformas de cliente

7

ligeras o pesadas (por ejemplo, teléfonos móviles, tabletas, PDAs, computadoras portátiles y estaciones de trabajo).

3.1.3. Agrupamiento de recursos

Los recursos de computación del proveedor están agrupados (pooling) para servir a múltiples consumidores utilizando un modelo multidistribuido (multitenant), con diferentes recursos físicos y virtuales asignados y reasignados dinámicamente de acuerdo a la demanda del consumidor. Existe una sensación de independencia de la posición, de manera que el cliente, generalmente no tiene el control o el conocimiento sobre la ubicación exacta de los recursos proporcionados, pero podría especificar una ubicación en un nivel más alto de abstracción (por ejemplo, país, estado o centro de datos). Ejemplos de recursos incluyen almacenamiento, procesadores, memoria y ancho de banda.

3.1.4. Elasticidad rápida

Las funcionalidades se pueden proporcionar de manera rápida y elástica y, en algunos casos, automáticamente. Sus características de aprovisionamiento dan la sensación y pueden adquirirse en cualquier cantidad o momento.

3.1.5. Servicio medido

Los sistemas en nube controlan y optimizan automáticamente el uso de recursos, potenciando la capacidad de medición en un nivel de abstracción apropiado al tipo de servicio (almacenamiento, procesamiento, ancho de banda y cuentas activas de usuario). El uso de recursos puede ser monitorizado, controlado e informado, proporcionando transparencia para el proveedor y para el consumidor.

El autoservicio bajo demanda aporta un gran beneficio al usuario dado que reduce en gran medida las complicaciones que normalmente conllevan a la adquisición de recursos IT propios.

El amplio de acceso a la red, es una característica especialmente importante en organizaciones distribuidas, permitiendo el acceso a los recursos con independencia de aspectos tales como la ubicación geográfica.

8

El agrupamiento de recursos permite a los distintos proveedores compartir sus recursos entre los distintos usuarios, disminuyendo los costes y maximizando la disponibilidad de los mismos.

La rápida elasticidad es una característica que permite un notable ahorro en los

costes, ya que la escalabilidad y adaptabilidad en los sistemas en nube es más

económica.

Otra de las características comunes de la computación en nube es que el servicio prestado finalmente al usuario es medible, de manera que tanto el proveedor como el usuario tienen acceso transparente al consumo real de los recursos, lo que posibilita el pago por el uso o la disponibilidad real de los servicios. Este modelo de consumo de servicios, puede llevar asociada la necesidad de modificar los Acuerdos de Nivel de Servicio (SLAs). En este contexto las principales modalidades de pago utilizadas por los proveedores de la nube son:

Pago por disponibilidad del servicio.

Pago por uso.

Pago por paquetes escalables.

A partir

de

estas

características

esenciales,

se

definen

cinco

pasos

tecnológicos necesarios para evolucionar hacia una infraestructura en la nube [5]:

Virtualización de servidores.

Provisión automática.

Desprovisión automática.

Asignación dinámica de recursos.

Medición que posibilite la facturación basada en el uso.

3.2. Modelos de Servicios

En la computación en nube el término servicio es el concepto de ser capaz de

utilizar componentes de grano fino y reutilizables a través de la red del proveedor. Esto es ampliamente “as a service[6]. Las ofertas con “as a service” como sufijo incluyen características como:

Barreras de entrada económicas, poniéndolas a disposición de las pequeñas empresas.

9

Escalabilidad grande.

Servicios distribuidos (multitenancy), lo que permite compartir los recursos por varios usuarios.

Independencia de dispositivos, lo que permite a los usuarios acceder a los sistemas en diferentes hardware.

La computación en nube puede verse como un conjunto de servicios, los cuales se presentan como una Arquitectura de Computación en Nube en Capas [7], como ilustra la Figura 3. Los servicios ofrecidos a través de la computación en nube incluyen a los servicios referidos como:

1. Software como Servicio (SaaS: Software as a Service).

2. Plataforma como Servicio (PaaS: Plataform as a Service).

3. Infraestructura como Servicio (IaaS: Infraestructure as a Service).

Se refieren a los servicios específicos a los que se puede acceder en una plataforma de computación en la nube (software, plataforma e infraestructura como servicios) [8].

(software, plataforma e infraestructura como servicios) [8]. Figura 3. Arquitectura de Computación en Nube en Capas

Figura 3. Arquitectura de Computación en Nube en Capas [1].

3.2.1. Software como Servicio (SaaS)

Al consumidor se ofrece la capacidad de utilizar las aplicaciones del proveedor que se ejecutan en una infraestructura en nube. Estas aplicaciones son accesibles desde varios dispositivos del cliente a través de interfaces de cliente ligeras, tales como un navegador web (por ejemplo, el correo electrónico basado en web). El consumidor no administra o controla la infraestructura en nube subyacente, la cual incluye la red, servidores, sistemas operativos, almacenamiento o incluso

10

capacidades individuales de la aplicación, con la posible excepción de limitados ajustes para la configuración de usuario de la aplicación [3].

SaaS (Figura 4)

es el modelo en el cual una aplicación es alojada como un

servicio para los consumidores quienes acceden a él a través de Internet [6].

quienes acceden a él a través de Internet [6]. Figura 4. Modelo SaaS [6]. Algunas de

Figura 4. Modelo SaaS [6].

Algunas de estas aplicaciones incluyen

CRM.

Video conferencia.

Administración de servicios IT.

Contabilidad.

Análisis Web.

Administración de contenido Web.

3.2.2. Plataforma como Servicio (PaaS)

Al consumidor se le proporciona la capacidad de desplegar aplicaciones en la infraestructura en nube, desarrollas por él o adquiridas, creadas utilizando lenguajes de programación, librerías, servicios y herramientas soportadas por el proveedor. El consumidor no administra o controla la infraestructura en nube subyacente que incluye

la red, servidores, sistemas operativos o almacenamiento, pero tiene control sobre las aplicaciones desplegadas y posiblemente sobre los ajustes de configuración del entorno donde se aloja la aplicación [3].

PaaS, también conocido como cloudware (Figura 5), suministra todos los recursos necesarios para desarrollar completamente aplicaciones y servicios desde Internet, sin tener que descargar o instalar software [6]. Incluye diseño de aplicaciones, desarrollo, pruebas, instalación, alojamiento y otros servicios como

11

equipos de colaboración, integración con servicios web y bases de datos, seguridad, escalabilidad, almacenamiento y versionado. Una de las desventajas de PaaS, es la falta de interoperabilidad y la portabilidad entre proveedores

de interoperabilidad y la portabilidad entre proveedores Figura 5. Modelo PaaS [6]. 3.2.3. Infraestructura como

Figura 5. Modelo PaaS [6].

3.2.3. Infraestructura como Servicio (IaaS)

Al consumidor se le suministran los recursos informáticos fundamentales, tales como procesamiento, almacenamiento y redes entre otros, en los cuales el consumidor puede instalar y ejecutar software arbitrario, incluyendo sistemas operativos y aplicaciones. El consumidor no administra o controla la infraestructura en nube subyacente, pero tiene control sobre sistemas operativos, almacenamiento y las aplicaciones instaladas y, posiblemente, un limitado control para seleccionar componentes de red (por ejemplo, cortafuegos) [3].

IaaS, también conocido como Hardware como Servicio (HaaS: Hardware as a Service) (Figura 6), permite alquilar los recursos tales como servidores, software, redes, memoria, capacidad de procesamiento y almacenamiento, del proveedor en lugar de tener que comprarlos [6]. Adicionalmente, la infraestructura necesaria puede ser escalable dinámicamente en base a los recursos necesarios para la aplicación.

puede ser escalable dinámicamente en base a los recursos necesarios para la aplicación. Figura 6. Modelo

Figura 6. Modelo IaaS [6].

12

3.3. Modelos de despliegue

Los

modelos

de

despliegue

se

refieren

a

la

posición

(localización)

y

administración (gestión) de la infraestructura de la nube.

El NIST [3], clasifica los modelos de despliegue de las infraestructuras y servicios en nube en cuatro categorías (Figura 6):

1. Nube Privada.

2. Nube Pública.

3. Nube Comunitaria.

4. Nube Hibrida.

2. Nube Pública. 3. Nube Comunitaria. 4. Nube Hibrida. Figura 6. Modelos de despliegue (Elaboración propia).

Figura 6. Modelos de despliegue (Elaboración propia).

3.3.1. Nube Privada

La infraestructura en nube está preparada para el uso exclusivo de una única organización que comprende varios consumidores (por ejemplo, unidades de negocio). Puede ser de propiedad, administrada y operada por la organización, un tercero o una combinación de ellos y puede existir dentro o fuera de las instalaciones.

3.3.2. Nube Pública

La infraestructura en nube está preparada para el uso abierto por el público en general. Puede ser de propiedad, administrada y operada por una organización de negocios, académica o del gobierno, o una combinación de los tres. Existe dentro de las instalaciones del proveedor de la nube.

13

3.3.3.

Nube Comunitaria

La infraestructura en nube está preparada para el uso de una comunidad específica de consumidores de organizaciones que tienen intereses compartidos (por ejemplo, misión, requerimientos de seguridad y políticas). Puede ser de propiedad, administrada y operada por una o más de las organizaciones en la comunidad, por un tercero o una combinación de ambos y puede existir dentro o fuera de las instalaciones.

3.3.4. Nube Híbrida

La infraestructura en nube es una combinación de una o más infraestructuras en nube distintas (privada, pública o comunitaria) que permanecen como entidades únicas pero están unidas por tecnologías estándares o propietarias que permiten la portabilidad de los datos y las aplicaciones.

Por nube pública se entiende al modelo más común de computación en nube, en el cual el proveedor en nube habilita el servicio a los usuarios con total ubicuidad desde Internet. De esta manera, el público objetivo de esta modalidad de servicios es muy generalista y su propietario es el propio proveedor de servicios.

Las nubes públicas permiten ampliar fácilmente los recursos necesitados, ya que éstas suelen tener más tamaño que las nubes privadas, normalmente implantadas en una única organización. Sin embargo, también presentan ciertos aspectos a vigilar y carencias respecto al resto de modelos, no siendo posible a los usuarios tener localizados físicamente los datos registrados en la nube, almacenándose de forma compartida esta información con la de otros usuarios del servicio.

Así, este modelo de implementación requiere de la articulación de una política de seguridad y protección de datos de gran exigencia por parte del proveedor.

4. Virtualización

Una infraestructura virtualizada es la base para la mayoría de las nubes de alto rendimiento. La virtualización ha sido una estrategia exitosa para la consolidación de los centro de datos. Se utiliza de manera amplia para poner en común los recursos de

14

la infraestructura y también puede proporcionar los elementos básicos para mejorar la agilidad y flexibilidad de un sistema en nube. Los servidores continúan siendo el foco principal de la virtualización [9].

4.1. Tecnología Clave

La virtualización es una de las tecnologías claves que permite la computación en nube [7]. Sin embargo, la virtualización no es computación en nube. La principal diferencia está en que la virtualización es una abstracción de los recursos informáticos, típicamente máquinas virtuales (VM: Virtual Machine). Se refiere a la abstracción de los recursos lógicos lejos de sus recursos físicos subyacentes. La virtualización no es necesaria para crear un entorno en nube, pero permite una rápida escalabilidad de los recursos de una manera que en entornos no virtualizados se encuentra difícil de alcanzar [9].

4.2. Ventaja

La ventaja de la computación en nube es la capacidad de virtualizar y compartir recursos entre las diferentes aplicaciones con el objetivo de mejorar la utilización del servidor. La Figura 7 es un ejemplo de entorno donde existen tres plataformas independientes para tres aplicaciones diferentes que se ejecutan en su propio servidor. En la computación en nube, los servidores pueden ser compartidos o virtualizados para sistemas operativos y aplicaciones lo que resulta en un menor número de servidores, en el ejemplo concretamente dos servidores.

15

Figura 7. Un ejemplo de virtualización [7]. La virtualización (Figura 8) permite que múltiples instancias

Figura 7. Un ejemplo de virtualización [7].

La virtualización (Figura 8) permite que múltiples instancias de los recursos de la infraestructura se ejecuten en el mismo hardware, con el control de acceso a esos recursos controlados por un hipervisor (hypervisor) [10].

recursos controlados por un hipervisor ( hypervisor ) [10]. Figura 8. Virtualización [10]. 4.3. Hipervisores Un

Figura 8. Virtualización [10].

4.3. Hipervisores

Un hipervisor [10], también conocido como monitor de máquina virtual (VMM:

Virtual Machine Manager), es la capa de software que controla el acceso al hardware anfitrión, crea y ejecuta máquinas virtuales. Existen dos tipos de hipervisores (Figura 8): i) nativos (unhosted o bare metal) y ii) anfitriones (hosted). En una instancia nativa,

16

el hipervisor se ejecuta directamente en el hardware anfitrión y permite ejecutar múltiples sistemas operativos en el mismo hardware físico. Los hipervisores anfitriones se ejecutan sobre el sistema operativo anfitrión y permiten ejecutar entornos de sistemas operativos adicionales dentro del sistema operativo anfitrión.

adicionales dentro del sistema operativo anfitrión. Figura 8. Tipos de hipervisores [10]. 4.4. Elementos

Figura 8. Tipos de hipervisores [10].

4.4. Elementos característicos de Virtualización

Algunos de los elementos característicos de virtualización en la computación en nube son [11]:

Acceso.

Aplicación.

Servidor.

Almacenamiento.

Para permitir estas características los recursos deben ser altamente configurables y flexibles. Se pueden definir los rasgos del software y del hardware que facilitan esta flexibilidad de acuerdo a uno o más de los siguientes patrones de movilidad:

P2V (Physical to Virtual).

V2V (Virtual to Virtual).

V2P (Virtual to Physical).

P2P (Physical to Physical).

D2C (Datacenter to Cloud).

C2C (Cloud to Cloud).

C2D (Cloud to Datacenter).

17

D2D (Datacenter to Datacenter).

Gartner [12] identifica cinco atributos de la computación en nube i) basada en servicio, ii) escalable y elástica, iii) compartible, iv) medida y v) tecnología de Internet. La virtualización es la mayor facilitadora para los primeros cuatro.

Existen varios elementos de virtualización [10]:

Virtualización de servidores.

Virtualización del almacenamiento.

Virtualización de la red.

5. Beneficios y Retos de la Computación en Nube

5.1. Beneficios

Además de las cinco características esenciales consideradas en la definición del NIST [3], se deben considerar las siguientes ventajas de la computación en nube

[11]:

Reducción de costos.

Facilidad de uso.

Calidad del servicio (QoS: Quality of service).

Fiabilidad.

Tercerización de servicios IT.

Facilidad de mantenimiento y actualización.

Barreras de entrada bajas.

Debido a que las redes en nube operan más eficientemente y con mayor utilización, frecuentemente se encuentran reducciones significativas en los costos. Por otra parte, dependiendo del tipo de servicio ofrecido, se puede encontrar que no se requiere de hardware o de licencias de software para implementar el servicio. La calidad del servicio es algo que se puede obtener bajo contrato con el proveedor de la nube. La fiabilidad, considerada una de las principales características de explotación de las capacidades de la nube, indica la capacidad de garantizar un funcionamiento constante del sistema sin interrupciones. La tercerización de los servicios IT permite

18

que otros se encarguen del manejo de la infraestructura informática del negocio, logrando reducciones considerables en los costos del personal de IT. Las actualizaciones se pueden aplicar fácilmente, lo que permite que los usuarios tengan acceso a las últimas versiones de software. Por último, los gastos de capital inicial se reducen dramáticamente, poniéndolas a disposición de las pequeñas empresas.

5.2. Retos

Este nuevo paradigma de la computación en nube ofrece un número de beneficios y ventajas sobre los paradigmas de computación anteriores y muchas organizaciones están adoptando este modelo. Sin embargo, todavía quedan un número de desafíos identificados en el campo [7]:

Rendimiento.

Seguridad y Privacidad.

Control.

Costo de ancho de banda.

Confiabilidad.

Según [13] los principales retos que identifican las distintas empresas y organizaciones públicas están relacionados con la seguridad, la confidencialidad de los datos corporativos y la privacidad e integridad de los servicios y datos de la entidad. Por detrás de estos aspectos de seguridad se sitúa como principal consideración la disponibilidad de los servicios y datos.

6. Arquitectura de Referencia de Computación en Nube del NIST

La definición de Computación en Nube del NIST [3] es ampliamente aceptada como una valiosa contribución a proporcionar una comprensión clara de las tecnologías de la Computación en Nube y Servicios en la Nube.

La Arquitectura de Referencia de Computación en Nube del NIST [14] identifica los principales actores, sus actividades y funciones en la computación en nube. El modelo conceptual de la Figura 9 muestra una arquitectura de alto nivel con la

19

intención de facilitar la comprensión de los requerimientos, usos, características y estándares de la computación en nube.

características y estándares de la computación en nube. Figura 9. El modelo de Referencia Conceptual [14].

Figura 9. El modelo de Referencia Conceptual [14].

6.1. Actores

La Arquitectura de Referencia de Computación en la Nube del NIST [14] define cinco actores principales:

1. Consumidor de la nube.

2. Proveedor de la nube.

3. Operador de la nube.

4. Auditor de la nube.

5. Revendedor de la nube.

Cada actor es una entidad, una persona o una organización, que participa en una transacción o proceso y realiza tareas en la computación en nube. La Figura 10 ilustra las interacciones entre estos actores.

20

Figura 10. Interacciones entre los actores de computación en nube [14]. La Figura 11, ilustra

Figura 10. Interacciones entre los actores de computación en nube [14].

La Figura 11, ilustra un escenario de ejemplo. El consumidor de la nube puede requerir un servicio desde el revendedor de la nube en lugar de contactar directamente con el proveedor de la nube. El revendedor de la nube puede crear un nuevo servicio combinando múltiples servicios o mejorando un servicio existente. El proveedor de la nube real es invisible al consumidor de la nube y el consumidor de la nube interactúa directamente con el revendedor de la nube.

nube interactúa directamente con el revendedor de la nube. Figura 11. Escenario de uso para operadores

Figura 11. Escenario de uso para operadores de la nube [14].

6.1.1. Consumidor de la Nube

El consumidor de la Nube es el actor principal para el servicio de computación en nube. Un consumidor de la nube representa una persona o una organización que mantiene una relación de negocios y utiliza los servicios del proveedor de la nube. Un consumidor de la nube navega por el catálogo de servicios del proveedor de la nube, solicita el servicio apropiado, establece los contratos de servicios con el proveedor de la nube y utiliza el servicio. El consumidor de la nube puede ser facturado por el servicio proporcionado y, consecuentemente, tiene que acordar los pagos.

Los consumidores de la nube necesitan un SLA para especificar los requerimientos de desempeño técnicos cumplidos por el proveedor de la nube. Un

21

SLA Puede cubrir términos relativos a la calidad del servicio, seguridad y soluciones por fallos. El proveedor de la nube también puede enumerar en los SLAs un conjunto de premisas explícitamente no hechas por los consumidores (por ejemplo, limitaciones y obligaciones que los consumidores de la nube deben aceptar). Un consumidor en la nube puede elegir libremente un proveedor de la nube con los precios y condiciones más favorables.

La Figura 12 presenta algunos ejemplos de servicios disponibles para los consumidores de la nube.

de servicios disponibles para los consumidores de la nube. Figura 12. Algunos servicios disponibles para consumidores

Figura 12. Algunos servicios disponibles para consumidores de la nube [14].

6.1.2. Proveedor de la Nube

Un proveedor de la nube es una persona o una organización. Es la entidad responsable de poner los servicios a disposición de las partes interesadas. Un proveedor de la nube adquiere y administra la infraestructura informática requerida para proveer los servicios, ejecuta el software que proporciona los servicios en la nube y hace los arreglos para entregar los servicios a los consumidores de la nube a través del acceso en red.

Para SaaS, el proveedor de la nube instala, configura, mantiene y actualiza la operación de las aplicaciones de software en una infraestructura en nube, así los servicios son proporcionados al nivel de servicio esperado por los consumidores de la nube.

22

Para PaaS, el proveedor de la nube administra la infraestructura informática para la plataforma y ejecuta el software en nube que proporciona los componentes de la plataforma, tales como software en tiempo de ejecución, bases de datos y otros componentes middleware.

El proveedor de la nube PaaS normalmente también soporta el proceso de desarrollo, despliegue y administración del consumidor de la nube PaaS, proporcionando herramientas tales como Entornos de Desarrollo Integrados (IDE:

Integrated Development Environment), Kits de Desarrollo de Software (SDK: Software Development Kits) y herramientas para el despliegue y la administración. El consumidor de la nube PaaS tiene control sobre las aplicaciones y posiblemente sobre el entorno de configuración, pero no tiene acceso o tiene acceso limitado a la infraestructura subyacente de la plataforma tales como redes, servidores, sistemas operativos o almacenamiento.

Para IaaS, el proveedor de la nube adquiere los recursos informáticos físicos subyacentes del servicio incluyendo los servidores, redes, almacenamiento y la infraestructura de alojamiento. El proveedor de la nube ejecuta el software en nube necesario para poner los recursos informáticos a disposición del consumidor de la nube IaaS, por medio de un conjunto de interfaces de servicios y abstracciones de recursos informáticos, como máquinas virtuales e interfaces de redes virtuales.

El consumidor de la nube IaaS a su vez, utiliza estos recursos informáticos para sus necesidades. En comparación con los consumidores de la nube SaaS y PaaS, un consumidor de la nube IaaS tiene acceso a las formas más fundamentales de los recursos informáticos y, por lo tanto, tiene mayor control sobre los componentes de software en una pila de aplicación, incluyendo el sistema operativo y la red. Por otro lado, el proveedor de la nube IaaS tiene el control sobre el hardware y el software de la nube que hacen posible proporcionar esta infraestructura de servicios, por ejemplo los servidores físicos, equipos de red, dispositivos de almacenamiento, sistemas operativos e hipervisores para virtualización.

Se pueden describir cinco áreas principales para las actividades del proveedor de la nube Figura 13):

1. Despliegue del servicio.

2. Orquestación del servicio.

3. Administración de servicios en nube.

4. Seguridad.

23

5.

Privacidad.

5. Privacidad. Figura 13. Principales actividades del proveedor de la nube [14]. 6.1.3. Auditor de la

Figura 13. Principales actividades del proveedor de la nube [14].

6.1.3. Auditor de la Nube

El auditor de la nube es el encargado de realizar un examen independiente de los controles de los servicios en la nube con el propósito de expresar su opinión. La auditoría se realiza a través de la revisión de evidencias objetivas para verificar el cumplimiento con los estándares. El auditor puede evaluar los servicios proporcionados por un proveedor de la nube en términos de controles de seguridad, impacto en la privacidad, desempeño, etc.

En los Estados Unidos. La auditoría, la auditoria es de especial importancia para las agencias federales. Los controles de seguridad son medidas de protección o respuesta utilizadas junto con los sistemas de información de la organización para proteger la confidencialidad, la integridad y la disponibilidad del sistema y de su información. En las auditorias de seguridad, el auditor debe evaluar los controles de seguridad en los sistemas de información y determinar el alcance con el cual están correctamente implementados. Además, la auditoria en los controles de seguridad debe incluir una verificación del complimiento con las políticas de seguridad.

Una auditoria en el impacto en la privacidad puede ayudar a que las agencias federales cumplan con las leyes y regulaciones que gobiernan la privacidad de un individuo y, de esta manera, asegurar la confidencialidad, integridad y disponibilidad de la información personal de un individuo en cada etapa de desarrollo y operación.

6.1.4. Intermediario de la Nube

Como la computación en nube evoluciona, la integración de los servicios en nube puede resultar compleja de administrar para los consumidores de la nube. Un consumidor de la nube puede requerir servicios en la nube desde un intermediario de

24

la nube en lugar de contactar directamente a un proveedor de la nube. Un intermediario de nube es una entidad que administra el uso, el desempeño y la entrega de servicios en la nube y negocia las relaciones entre los proveedores de la nube y los consumidores de la nube.

En general, un intermediario de la nube puede proporcionar servicios en tres categorías:

1. Intermediación del servicio: un intermediario de la nube realza un servicio dado mejorando alguna función específica y proporcionando servicios de valor agregado para los consumidores de la nube. La mejora puede ser la administración del acceso a los servicios en nube, administración de la identidad, reportes de desempeño, realzar la seguridad, etc.

2. Agregación del servicio: un intermediario de la nube combina e integra múltiples servicios en uno o más nuevos servicios. El intermediario proporciona integración de los datos y asegura el movimiento seguro de los datos entre consumidores de la nube y múltiples proveedores de la nube.

3. Arbitraje de servicios: es similar a la agregación del servicio excepto que los servicios que se agregan no son fijos. El arbitraje de servicios significa que un intermediario tiene la flexibilidad para elegir los servicios desde múltiples agencias. El intermediario de la nube, por ejemplo, puede utilizar un servicio de calificación de créditos para medir y seleccionar una agencia con el mejor puntaje.

6.1.5. Operador de la Nube

Un operador de la nube es un intermediario que proporciona conectividad y transporte de los servicios en nube entre consumidores y proveedores.

6.2. Alcance de control entre el proveedor y el consumidor

En un sistema en nube, el proveedor y el consumidor comparten el control de los recursos. Los diferentes modelos de servicios afectan al control de la organización de los recursos informáticos. Estas diferencias entre los modelos de servicios se pueden ver como una pila de software de tres capas [14]:

Capa de Aplicación.

25

Capa Middleware.

Capa de Sistema Operativo.

La Figura 14 ilustra esta pila de software y ayuda a comprender la responsabilidad de las partes involucradas en la administración de una aplicación en nube.

en la administración de una aplicación en nube. Figura 14. Alcance de control entre el proveedor

Figura 14. Alcance de control entre el proveedor y el consumidor [14].

La capa de aplicación incluye aplicaciones de software dirigidas a los usuarios finales. Las aplicaciones son utilizadas por los consumidores SaaS o instaladas, administradas y mantenidas por consumidores PaaS, consumidores IaaS y proveedores SaaS.

La capa de middleware proporciona bloques para la construcción de software (por ejemplo, librerías y máquinas virtuales como la de Java ). Este middleware es utilizado por el consumidor PaaS, instalada, administrada y mantenida por consumidores IaaS o consumidores PaaS y se oculta para los consumidores SaaS.

La capa de sistema operativo incluye sistemas operativos y controladores y se oculta para consumidores SaaS y consumidores PaaS. Una nube IaaS permite que uno o múltiples clientes del sistema operativo se ejecuten virtualmente en una única maquina anfitrión. Generalmente, los consumidores tienen amplia libertad para elegir el sistema operativo anfitrión entre todos los sistemas operativos soportados por el proveedor de la nube. El consumidor IaaS debe asumir la responsabilidad total del sistema operativo cliente, mientras que el proveedor IaaS controla el sistema operativo anfitrión.

26

6.3. Componentes Arquitectónicos

Según la definición de computación en nube del NIST [3] una infraestructura en nube puede ser operada en cuatro modos de despliegue: i) nube pública, ii) nube privada, iii) nube comunitaria y iv) nube híbrida.

En una nube pública (Figura 15) la infraestructura en nube y los recursos informáticos esta disponibles al público general en un red pública. Una nube pública es propiedad de una organización que vende servicios en la nube y sirve a un grupo de diversos clientes.

en la nube y sirve a un grupo de diversos clientes. Figura 15. Vista simple de

Figura 15. Vista simple de una nube pública y sus clientes [14].

En una nube privada, una organización de consumidores de la nube tiene el acceso y el uso exclusivo de la infraestructura en nube y los recursos informáticos. Puede ser administrada por la organización de consumidores de la nube o por un tercero y puede estar alojada en las instalaciones de la organización (por ejemplo, nubes en instalaciones privadas como en la Figura 16.a) o subcontratadas a una empresa de alojamiento (por ejemplo, nubes privadas subcontratadas como en la Figura 16.b).

nubes privadas subcontratadas como en la Figura 16.b). Figura 16.a. Nube privada en instalaciones de la

Figura 16.a. Nube privada en instalaciones de la organización [14].

27

Figura 16.b. Nube privada subcontratada [14]. Una nube comunitaria, en lugar de servir a una

Figura 16.b. Nube privada subcontratada [14].

Una nube comunitaria, en lugar de servir a una sola organización como en una nube privada, sirve a un grupo de consumidores de la nube que comparten intereses tales como objetivos, seguridad, privacidad y políticas. De manera similar a una nube privada, una nube comunitaria puede ser administrada por la organización o por un tercero y puede ser desplegada en las instalaciones del cliente, es decir, en el lugar de la nube comunitaria (Figura 17.a) o subcontratada a una empresa de alojamiento, o sea, una nube comunitaria subcontratada (Figura 17.b)

o sea, una nube comunitaria subcontratada (Figura 17.b) Figura 17.a. Nube comunitaria en las instalaciones de

Figura 17.a. Nube comunitaria en las instalaciones de una organización [14].

Nube comunitaria en las instalaciones de una organización [14]. Figura 17.b. Nube comunitaria subcontratada [14]. 28

Figura 17.b. Nube comunitaria subcontratada [14].

28

Una nube hibrida está compuesta por dos o más nubes que se mantienen como entidades distintas pero están unidas por tecnologías estándares o propietarias que permite compartir datos y la portabilidad de aplicaciones. La Figura 18, presenta una vista simple de una nube hibrida que podría estar construida con un conjunto de nubes en los cinco tipos de variantes de modelos de despliegue.

en los cinco tipos de variantes de modelos de despliegue. Figura 18. Nube híbrida [14]. 6.4.

Figura 18. Nube híbrida [14].

6.4. Orquestación de Servicios

La orquestación de servicios [14] se refiere a la composición de los elementos del sistema para respaldar las actividades del proveedor de la nube en la disposición, coordinación y administración de los recursos informáticos con el propósito de proporcionar los servicios para los consumidores de la nube.

Esta composición puede verse como un modelo de tres capas (Figura 19), que representa los tres tipos de componentes del sistema que necesitan los proveedores de la nube para componer la entrega de servicios:

1. Capa de recursos físicos.

2. Capa de abstracción y control de recursos.

3. Capa de servicios.

29

Figura 19. Orquestación de servicios de proveedor de la nube [15]. La capa superior es

Figura 19. Orquestación de servicios de proveedor de la nube [15].

La capa superior es la capa de servicios. En esta capa los proveedores de la nube definen interfaces para que los consumidores de la nube accedan a los servicios. Las interfaces de acceso se proporcionan para cada uno de los tres modelos de servicios en la capa.

La capa del medio, la capa de abstracción y control de recursos, contiene los componentes del sistema que los proveedores de la nube utilizan para proporcionar y administrar el acceso a los recursos informáticos físicos a través de una capa de abstracción del software. Ejemplos de componentes de abstracción de recursos incluyen hipervisores, máquinas virtuales y almacenamiento virtual. Los aspectos de control hacen referencia a componentes de software responsables de la asignación recursos, control de acceso y supervisión del uso. Es el software que une los recursos físicos subyacentes y sus abstracciones de software para permitir el agrupamiento de recursos, la asignación dinámica y el servicio medido.

La capa más baja, la capa de recursos físicos, incluye todos los recursos informáticos físicos. La capa de recursos físicos incluye recursos de hardware tales como computadoras, redes, dispositivos de almacenamiento y otros elementos. También incluye los recursos de las instalaciones tales como acondicionadores de aire y el suministro eléctrico entre otros.

30

6.5. Administración de Servicios en Nube

La administración de servicios en nube [14] incluye todas las funciones relacionadas con los servicios necesarios para la administración y la operación de los mismos y que son requeridos o sugeridos por los consumidores de la nube. La administración de servicios en nube se puede describir desde tres perspectivas (Figura

20):

1. Apoyo al negocio.

2. Provisión y configuración.

3. Portabilidad e interoperabilidad.

y configuración. 3. Portabilidad e interoperabilidad. Figura 20. Perspectivas para la administración de servicios

Figura 20. Perspectivas para la administración de servicios [15].

La perspectiva de apoyo al negocio implica el conjunto de servicios relacionados con la empresa que se ocupan de los clientes y de apoyo a los procesos. Incluye los componentes que se utilizan para ejecutar las operaciones de negocios que están de cara al cliente:

Administración de clientes.

Administración de contratos.

Administración de inventarios.

Contabilidad y Facturación.

Informes y Auditoria.

Precios y Evaluación.

31

La perspectiva de provisión y configuración significa proveer, acondicionar y habilitar un servicio, para que el usuario final se pueda beneficiar con él, satisfaciendo sus requerimientos con la calidad acordada:

Aprovisionamiento rápido.

Cambio de recursos.

Control y seguimiento.

Medición.

Gestión de SLA.

La computación en nube promete salvar costos en infraestructura tecnológica y actualizaciones de software más rápidas. Sin embargo la adopción de la computación en nube depende en gran medida de como la nube aborde las preocupaciones de los usuarios en cuanto a seguridad, portabilidad e interoperabilidad. En cuanto a la portabilidad, los potenciales clientes están interesados en saber si pueden mover sus datos o aplicaciones a través de varios entornos de nube a un bajo costo y con mínimas interrupciones. Desde la perspectiva de la interoperabilidad, los usuarios están preocupados por la capacidad de comunicarse entre varias nubes. Los proveedores de la nube deben ofrecer mecanismos que soporten la portabilidad de datos y la interoperabilidad de servicios.

7. Estándares y Organizaciones

La computación en nube ha evolucionado tan rápidamente que los proveedores de la nube han tratado de diferenciar sus servicios utilizando especificaciones propias. Sin embargo, como la computación en nube se desarrolla en infraestructuras sociales ampliamente utilizadas, han surgido serios problemas asociados a usuarios encerrados en dentro de un único proveedor. Específicamente, una vez que una empresa comienza a utilizar el servicio de un proveedor específico, le resulta difícil cambiar a otro proveedor que le ofrece condiciones de servicio más atractivas y, por lo tanto, se enfrenta a el riesgo de que su negocio se interrumpa si el proveedor actual cesa sus actividades [16].

Para facilitar a que los usuarios continúen utilizando los servicios de la nube con confianza, desde el 2009 aproximadamente se han organizado actividades para el

32

desarrollo de normas que garanticen la interoperabilidad y la portabilidad entre servicios en la nube.

La computación en nube es un conglomerado de una amplia variedad de tecnologías, desde procesamiento distribuido hasta virtualización. Los objetivos de estandarización de la computación en nube son tan diversos que muchas de las organizaciones de estándares hacen foco en sus respectivas áreas de conocimiento. Como se puede ver en la Figura 21, las diferentes áreas de estudio de la computación en nube, y principales organismos de normalización relacionados con ellos, son tan diversas que resulta difícil definir con precisión los temas que se cubren. Sin embargo, en términos generales el estudio de la computación en nube se puede clasificar en tres áreas generales i) desarrollo de frameworks, definición de la terminología, casos de uso y definición de requerimientos, ii) administración de la configuración de la nube y iii) federación inter-nube [16].

de la nube y iii) federación inter-nube [16]. Figura 21. Diferentes áreas de estudio de la

Figura 21. Diferentes áreas de estudio de la computación en nube y principales organismos de normalización relacionados [16].

Debido a que la computación en nube implica una amplio rango de elementos técnicos y de negocio, para avanzar con el proceso de normalización resulta crucial ordenar y definir estos elementos. En este sentido, el NIST [17] ha hecho una

33

significativa contribución definiendo los términos, ahora comúnmente utilizados, IaaS y SaaS.

Para identificar las necesidades de normalización de la computación en nube, muchas organizaciones adoptan un enfoque en el cual primero se discuten los casos de uso y luego se clasifican los requerimientos que necesitan ser normalizados. En estos temas, además de los organismos de normalización de jure como el Sector para la Estandarización de las Comunicaciones de la Unión Internacional de las Telecomunicaciones (ITU-T: International Telecommunication Union - Telecommunication Standardization Sector) [18] y el Comité Técnico Conjunto 1 de la Organización Internacional de Normalización y la Comisión Electrotécnica Internacional (ISO/IEC JTC 1: International Organization for Standardization/International Electrotechnical Commission Joint Technical Committee 1) [19], trabajan los principales organismos de normalización regionales y naciones en los EE.UU., Europa, Corea y Japón.

En el área de administración de la configuración de los sistemas en nube, muchas organizaciones tienen el objetivo de desarrollar un estándar para la Interfaz de Programación de Aplicaciones (API: Application Programming Interface), una interfaz a través de la cual los usuarios y operadores gestionen sistemas en nubes. El Grupo de Trabajo para la Interfaz Abierta de Computación en Nube (OCCI-WG: Open Cloud Computing Interface Working Group) [20] del Foro Abierto Grid (OGF: Open Grid Forum) [21] ha definido y liberado una API para la administración de IaaS al igual que la Incubadora para Estándares Abiertos de Computación en Nube (OCSI: Open Cloud Standards Incubator) [22] del Grupo de Trabajo de Administración Distribuida (DMTF: Distributed Management Task Force) [23]. La Asociación del Sector de Almacenamiento en Red (SNIA: Storage Networking Industry Association) [24] ha formulado especificaciones para la Interfaz de Administración de la Nube (CDMI:

Cloud Data Management Interface), una API para el control de unidades de almacenamiento. Una comunidad de código abierto, la OPenStack [25] establecida por Rackspace y La Nasa, hace que el código fuente de sus IaaS esté disponible al público.

Muchas organizaciones también están estudiando arquitecturas de referencia y temas de seguridad para sistemas en nubes. La Alianza de Seguridad en la Nube (CSA: Cloud Security Alliance) [26] es definición de mejores prácticas en trece áreas que van desde riesgos de seguridad para los usuarios y proveedores de la nube hasta gobierno y gestión de riesgos.

34

Los estudios sobre federación inter-nubes se iniciaron a mediados del 2009, de manera que múltiples nubes puedan dar y recibir mutuamente recursos en la nube para ofrecer servicios en nube de manera estable, aun cuando sistemas de nubes individuales se vuelvan incapaces de proporcionar el servicio debido a daños causados por desastres naturales o fallas graves o cuando la capacidad del sistema en nube supera a la demanda, de manera que los usuarios puedan acceder a dos o más nubes sin problemas a través de la federación basada en identificacion (ID:

Identification). El Foro de Tecnología Global Internube (GICTF: Global Inter-Cloud Techonlogy Forum) [27], establecido en Japón en Julio del 2009 es uno de los primeros organismos en abordar el tema de la federación inter-nube.

8. Conclusiones

La computación en nube, como un nuevo estilo de computación, se ha convertido en una nueva tendencia tecnológica. Esta nueva tendencia, permite a los usuarios utilizar una gran variedad de dispositivos para acceder a programas, almacenamiento y plataformas para el desarrollo de software sobre Internet, a través de los servicios ofrecidos por los proveedores de la nube y ofrece ventajas como la disminución de los costos, la alta disponibilidad y la escalabilidad.

El concepto clave de este nuevo modelo es el servicio. Esta capacidad de poder utilizar componentes de grano fino y reutilizables a través de la red del proveedor, es lo que se conoce ampliamente como “as a service”. Así, los servicios en conjunto pueden verse como una arquitectura de computación en nube en capas en la cual se incluyen los servicios referidos como SaaS, PaaS e IaaS.

La computación en nube es la provisión bajo demanda y en modo servicio de los recursos. El término bajo demanda, debe entenderse como se entiende el acceso a la provisión de agua, electricidad o gas. De esta manera, el autoservicio bajo demanda, el amplio acceso a la red, el agrupamiento de recursos, la elasticidad rápida y el servicio medido son las cinco características esenciales del servicio.

El carácter público, privado o híbrido, según la infraestructura sea propia, ajena o una combinación de ambas, introduce importantes complejidades técnicas.

La ventaja de la computación en nube es la capacidad de virtualizar y compartir recursos. Una infraestructura virtualizada es la base para la mayoría de la nubes de

35

alto rendimiento y se ampliamente para poner en común los recursos de la infraestructura y proporcionar los elementos básicos para mejorar la agilidad y flexibilidad de un sistema en nube.

Sin embargo, la virtualización no es computación en nube. La virtualización no es necesaria para crear un entorno en nube, pero permite una rápida escalabilidad de los recursos que en entornos no virtualizados se encuentra difícil de alcanzar. Los servidores continúan siendo el foco principal de la virtualización, con el objetivo de mejorar la utilización del mismo.

Este nuevo paradigma de la computación en nube ofrece un número de beneficios y ventajas sobre los paradigmas de computación anteriores y muchas organizaciones están adoptando este modelo. Sin embargo, todavía quedan un número de desafíos identificados en el campo.

La definición de computación en nube del NIST, es una de las más aceptadas como una valiosa contribución para proporcionar una comprensión clara de las tecnologías de la computación en nube y servicios en nube. De esta manera, La Arquitectura de Referencia de Computación en Nube del NIST, facilita la compresión de los requerimientos, usos características y estándares de la computación en nube.

Este paradigma refuerza el papel del proveedor de servicios, lo que supone una gran preocupación para los consumidores. Ha evolucionado tan rápidamente que los proveedores de la nube han tratado de diferenciar sus servicios utilizando especificaciones propias.

Sin embargo, como la computación en nube se desarrolla en infraestructuras sociales ampliamente utilizadas, han surgido serios problemas asociados a usuarios encerrados en dentro de un único proveedor. Por tanto, para facilitar a que los usuarios continúen utilizando los servicios de la nube con confianza, se han organizado actividades para el desarrollo de normas que garanticen la interoperabilidad y la portabilidad entre servicios en la nube. Pero dado que los objetivos de normalización son tan diversos, muchas de las organizaciones de estándares hacen foco en sus respectivas áreas de conocimiento.

De esta manera, en comparación con otros paradigmas de computación, el paradigma de la computación en nube ofrece una serie de nuevas características, de oportunidades y desafíos y muchos expertos esperan que cambie los procesos y el mercado de las IT.

36

9. Referencias

[1] Observatorio Nacional de Software de Fuentes Abiertas , Centro Nacional de Referencia de Aplicación de las TIC Basadas en Fuentes Abiertas, “Cloud Computing y Software de Fuentes Abiertas”, 2011, disponible en

[2] I. Foster, Y. Zhao, I. Raicu, S. Lu, “Cloud Computing and Grid Computing 360- Degree Compared”, Grid Computing Environments Workshop, 2008, pp. 1-10.

[3] P. Mell, T. Grance, “The NIST Definition of Cloud Computing”, National Institute of Standards and Technology, NIST Special Publication 800-145, 2011.

[4]

“The Future of Cloud

Computing. Opportunities for European Cloud Computing beyond 2010”, 2010, disponible en http://cordis.europa.eu/fp7/ict/ssai/docs/cloud-report-final.pdf

European Commission, Information Society and Media,

[5] Sociedad Andaluza para el Desarrollo de las Telecomunicaciones, S.A.

(SANDETEL), “Cloud Computing Aplicado a los sectores de la Agroindustria, Eficiencia Energética, Industrias Culturales y Turismo”, 2012, disponible en

[6] A.T. Velte, T. J. Velte, R. Elsenpeter, Cloud Computing: A Practical Approach, New York: McGraw Hill, 2010.

[7] B. Furht, A. Escalante, Handbook of Cloud Computing, New York: Springer, 2010.

[8] L. J. Aguilar, “Computación en la Nube: Notas para una estrategia española en cloud computing”, Revista del Instituto Español de Estudios Estratégicos, Número 0, pp. 89-112, 2012.

[9] Intel, Virtualization and Cloud Computing. Steps in the Evolution from Virtualization to Private Cloud Infrastructure as a Service, Intel IT Center, 2013.

[10] J. Kremer, “Cloud Computing and Virtualization”, Kremer & Ward Consulting Services, White Paper.

37

[11] Barrie Sosinsky, Cloud Computing Bible, Indiana: Wiley Publishing, Inc, 2011.

[12] T. J. Bittman, “Server Virtualization: One Path That Leads to Cloud Computing”, Gartner Technology Research, Gartner RAS Core Research Note G00171730,

2009.

[13] Observatorio Nacional de las Telecomunicaciones y de la SI, “Cloud Computing. Retos y Oportunidades”, Estudios e Informes, 2012.

[14] F. Liu, J. Tong, J. Mao, R. Bohn, J. Messina, L. Badger and D. Leaf, “NIST Cloud Computing Reference Architecture”, National Institute of Standards and Technology, NIST Special Publication 500-292, 2011.

[15] M. Hogan, F. Liu, A. Sokol, J. Tong, “NIST Cloud Computing Standars Roadmap”, National Institute of Standards and Technology, NIST Special Publication 500-291,

2011.

[16] H. Sakai, “Standardization Activities for Cloud Computing”, NTT Technical Review, Vol. 6, No. 11, June 2011.

[17] NIST, National Institute of Standards and Technology, http://www.nist.gov/

[18] International Telecommunication

Union

- Telecommunication

Standardization

[19]

International

Organization

for

Standardization/International

Electrotechnical

Commission Joint Technical Committee 1, http://www.iso.org/iso/jtc1_home.html

[20] Open Cloud Computing Interface Working Group, http://occi-wg.org/

[21] Open Grid Forum, http://www.ogf.org/dokuwiki/doku.php

[22]

Open

Cloud

Standards

Incubator,

[23] Distributed Management Task Force, http://dmtf.org/

[24] Storage Networking Industry Association, https://www.snia.org/

[25] OPenStack, https://www.openstack.org/

[26] Cloud Security Alliance, https://cloudsecurityalliance.org/

38

[27] Global Inter-Cloud Techonlogy Forum, http://www.gictf.jp/index_e.html

[28] J. Bort, “The 10 Most Important Companies In Cloud Computing”, Business

insider, [En Líne]. Disponible: http://www.bbc.co.uk/news/science-environment-

17117194. [Accedido: 17 de marzo de 2014].

[29] Find The Best, “Compare Cloud Computing Providers”, findthebest.com, [En Línea]. Disponible: http://cloud-computing.findthebest.com/. [Accedido: 17 de marzo de 2014].

39

10. Anexos

10.1. Taxonomía de Tecnologías

El presente apartado, tomado de [1], contiene una taxonomía de tecnologías de la computación en nube (Figura 21).

10.1.1. Herramientas y Librerías

Apache LibCloud

Es una librería escrita en Python que permite interactuar con más de treinta proveedores de servicios en la nube utilizando una API unificada.

Unified Cloud Interface (UCI)

Son un conjunto de APIs en Python que unifican el acceso a distintos proveedores de servicios en la nube.

El proyecto está impulsado por el CCIF (Cloud Computing Interoperability Forum) bajo licencia BSD.

Se encuentra en fase de inicio, pero cuenta con el patrocinio de, entre otros, Cisco, Intel, IBM y Sun/Oracle.

Libvirt

Es una librería escrita en C que permite acceder a servicios de virtualización ofrecidos por Linux y otros SO.

El proyecto forma parte del RedHat Emerging Technology [] y se licencia como LGPL.

Google Cloud Platform

Permite a desarrolladores construir, probar y desplegar aplicaciones en la infraestructura de Google.

40

Haddop

Es un framework que permite el procesamiento distribuido de grandes conjuntos de datos por medio de grupos (clusters) de computadoras que utilizan un modelo de programación simple.

Está diseñado para escalar desde servidores individuales hacia miles de máquinas, cada una de las cuales ofrece procesamiento y almacenamiento local.

En lugar de confiar en el hardware para ofrecer alta disponibilidad, el framework está diseñado para detectar y controlar los errores en la capa de aplicación, entregando un servicio de alta disponibilidad en las capas superiores de un grupo de computadoras, las cuales pueden ser propensas a fallas.

Se trata de una tecnología software bajo licencia Apache v2.0

Windows Azure

Es una plataforma de software para el desarrollo de servicios y aplicaciones en la nube de licencia propietaria.

Se organiza en varios subproyectos donde se desarrollan distintas partes de la plataforma.

Cuenta con el respaldo de Microsoft y todos sus partners.

10.1.2. Hipervisores

XEN

Es una plataforma de virtualización bajo licencia GPL 2, con la participación de empresas como AMD, CISCO, Dell, Fujistsu, HP, IBM, Intel, , Mellanox, Network Appliance, Novell, Red Hat, Samsung, SGI, Sun, Unisys, Veritas, Voltaire, y Citrix, convirtiéndolo en un estándar con soporte generalizado.

41

VirtualBox Open Source Edition

Plataforma de virtualización bajo licencia GPL 2.

Desarrollado por Sun MicroSystem y absorbida recientemente por Oracle.

Tiene una arquitectura modular y un diseño cliente-servidor, permite la especificación en XML de las máquinas virtuales y cuenta con versiones para Windows, Linux y Solaris.

Sun/Oracle ofrece soporte comerciales sobre una versión alternativa.

KVM (Kernel-based Virtual Machine)

Plataforma de virtualización bajo licencia LGPL, desarrollado dentro del RedHat Emerging Technology.

Soporta arquitecturas Intel, AMD y sistemas operativos Windows, Linux y Unix, admite multiproceso simétrico de máquinas virtualizadas y migración hardware en caliente, implementa información de estado de las maquinas virtualizadas y de los host y admite paravirtualización de la red y de dispositivos de bloque.

QEMU

Plataforma de virtualización bajo licencia GPL, iniciado por Fabrice Bellard.

Emula microprocesadores como Z80, MIPS, ARM u otras arquitecturas menos conocidas.

Numerosas empresas ofrecen soporte comercial sobre QEMU.

10.1.3. Plataformas IaaS

Open Eucalyptus

Plataforma software que permite el desarrollo de nubes privadas IaaS.

Es un proyecto de investigación de la Universidad de California, financiado por

la NFS estadounidense (National Science Foundation).

Implementa las especificaciones de Amazon para sus servicios cloud EC2, S3,

y EBS, ofreciendo interfaces REST y SOAP, junto con capacidades de administración avanzadas.

Soporta máquinas virtuales XEN y KVM.

42

OpenNebula

Plataforma software que permite el desarrollo de nubes públicas, privadas e hibridas de IaaS.

Desarrollado en la Universidad Complutense de Madrid y financiado por varios proyectos europeos (Reservoir, 4CaasT) y nacionales (Nuba, HPCcloud, Medianet).

Implementa, además de una interfaz propia, los interfaces OGF OCCI y un subconjunto de los interfaces EC2-Query de Amazon. En configuraciones híbridas cuenta con adaptadores para los servicios cloud EC2 de Amazon y los de ElasticHost.

Soporta máquinas virtuales XEN, KVM, VMWare.

Joyent Platform

Plataforma software que permite el desarrollo de nubas públicas, privadas e hibridas IaaS y PaaS.

Desarrollado por la compañía Joyent.

La tecnología, organizada en una arquitectura de tres niveles, incluye su propia solución de virtualización, sobre la que se desarrolla una solución de centro de datos, para en última instancia proporcionar soluciones PaaS.

Abiquo

Plataforma software que permite el desarrollo y monitorización de nubes públicas y privadas IaaS. Desarrollado por la compañía Abiquo

Ofrece soporte de los hipervisores Vmware, KVM, Xen, VirtualBox y soporte comercial que contempla balanceado de carga, gestión de volúmenes virtuales además de otras características avanzadas no presentes en la versión de comunidad.

43

10.1.4.

Plataformas Paas y SaaS

Google App Engine

Plataforma de desarrollo para programar y alojar aplicaciones web (PaaS), desarrollada por Google.

Compatible con los lenguajes de programación Java y Python.

Se ofrece bajo un esquema de pago por uso, estableciéndose un límite inferior por debajo de cual el uso de dichos recursos informáticos resulta gratuito.

10.1.5. Plataformas SaaS

EyeOS

Plataforma que proporciona un sistema operativo como servicio, desarrollada por la compañía Digital Bubble.

Entre sus principales características técnicas destacan su programación utilizando tecnologías web como PHP o Javascript, para ofrecer un sistema operativo accesible completamente desde la web.

Force.com

Plataforma software que ofrece la posibilidad de crear, adquirir y ejecutar aplicaciones comerciales en modo servicio. Se trata de un producto software ofrecido como servicio, y por tanto no distribuido, desarrollado por la compañía Salesforce.

Entre sus características más destacadas se encuentran un conjunto integrado de herramientas y de servicios de aplicación que los clientes pueden utilizar para crear cualquier tipo de aplicación en modo servicio. Para ello ha desarrollado su propio lenguaje de programación Apex y un entorno de desarrollo denominado Visualforce.

También admite el uso de otros lenguajes y plataformas como Java o C#.

44

Figura 21. Algunas tecnologías de la computación en nube (Elaboración propia). 10.2. Proveedores de Computación

Figura 21. Algunas tecnologías de la computación en nube (Elaboración propia).

10.2. Proveedores de Computación en Nube

Según un artículo publicado en la Revista proveedores más importantes de la nube son:

1. Amazon Web Services.

2. VMware.

3. Microsoft Windows Azure.

4. Salesforce.com.

5. Google App Engine.

6. Rackspace.

7. IBM.

8. Citrix Systems.

9. Joyent.

10.

SoftLayer.

Business Insider [28] los 10

La Tabla 1 resume los modelos de servicio y modelos de despliegue de estos diez proveedores [29].

45

Tabla 1. Modelos de servicios y despliegue de los diez

proveedores más importantes de la nube (Elaboración propia en base a [29]).

Proveedor

Modelos de Servicio

Modelos de Despliegue

IaaS Pública

IaaSPública

Pública

PaaS Privada, Pública e Híbrida

PaaSPrivada, Pública e Híbrida

Privada, Pública e Híbrida

PaaS Privada y Pública

PaaSPrivada y Pública

Privada y Pública

Pass Privada y Publica

PassPrivada y Publica

Privada y Publica

PaaS Pública

PaaSPública

Pública

Google App Engine

IaaS Privada, Pública e Híbrida

IaaSPrivada, Pública e Híbrida

Privada, Pública e Híbrida

IaaS Privada e Híbrida

IaaSPrivada e Híbrida

Privada e Híbrida

IaaS Privada y Pública

IaaSPrivada y Pública

Privada y Pública

IaaS Privada

IaaSPrivada

Privada

IaaS Privada y Pública

IaaSPrivada y Pública

Privada y Pública

46