domingo, 30 de diciembre de 2012

¿Qué es Cloud Computing? (parte 2 de 3)

Computación en la nube: disipando la borrasca (parte 2 de 3)

Este artículo está precedido por su primera parte

Elementos tecnológicos de una nube

El concepto previo fundamental en Cloud Computing es “virtualización”, que en Informática indica la abstracción de un recurso: algo que un usuario usa como “si fuera…”, pero que realmente ”no es…”, o al menos no es como el usuario lo percibe, aunque le proporciona el servicio que él espera. Ahora virtualizamos sistemas con tecnologías como VMware, VirtualBox, XEN, VirtualPC, HyperV, Parallels o muchas otras y conseguimos que una pieza de software en el PC local (sistema o máquina virtual) se comporte como si fuera un sistema físico independiente. De modo semejante a la virtualización de sistemas pueden virtualizarse las aplicaciones, los medios de almacenamiento e incluso los recursos de red.

Las nubes se construyen siguiendo una arquitectura de capas que utilizan masivamente las tecnologías de virtualización. La funcionalidad de cada capa se expone como servicio a los clientes de la nube o a las otras capas en forma de servicios (véase Figura 2).
Figura 2. Arquitectura de capas de una nube
(fuente: Wikipedia, licencia CC-by-sa Sdhabeger).

Primera capa: Servicios de infraestructura o IaaS (Infrastructure as a Service).

En esta primera capa se prestan los servicios de almacenamiento de datos, de computación -capacidad de cálculo-, comunicaciones en red y de gestión de bases de datos. Por ejemplo, podríamos contratar un sistema informático virtual con una potencia de cálculo equivalente a dos procesadores Xeon de 64 bits y 1,7 GHz, 4 Gigabytes de RAM, capacidad de almacenamiento en disco de 250 Gbytes y un ancho de banda de red para el sistema de 100 Mbps decidiendo pagar por gigabyte transmitido por la red.

Segunda capa: Servicios de plataforma o PaaS (Platform as a Service).

Esta capa se encarga del entorno de desarrollo y de ejecución. Si el desarrollador tiene que montar una aplicación sobre la nube necesitará un conjunto de herramientas  (librerías, lenguajes de programación, etc.) con las que operar. Además, una vez montada la aplicación, esta debe ser ejecutada a través de un entorno de ejecución (runtime environment). Son comunes en las nubes lenguajes de programación y entornos de desarrollo como Django, Java, o la plataforma de código gestionado de Microsoft .NET Framework.

Tercera capa: Servicios de software o SaaS (Software as a Service).

En esta capa se exponen como servicios las interfaces de las aplicaciones de usuario para que estos puedan operar con ellas (frontend application). Aquí encontramos aplicaciones como los servicios de correo, Google Apps, Google Maps, Microsoft Office 365, los servicios de usuario de las redes sociales, etc. En un ámbito más específicamente empresarial: CRM, ERP, aplicaciones de Business Intelligence, etc.
Por debajo de la capa IaaS se situarían la infraestructura física de los servidores reales sobre los que se soportan todos los servicios virtualizados. Estos servidores físicos, aunque obviamente están localizados, pueden distribuirse por seguridad en diversos centros de procesos de datos.
Como todos los elementos de la arquitectura se brindan como servicios es por lo que es habitual hablar de Cloud Computing como de la tecnología XaaS (X as a Service o Todo como un servicio).
Por encima de las aplicaciones se situarían los usuarios que se beneficiarían de todos los servicios integrados y virtuales brindados por la nube sin necesidad de conocer su arquitectura interna, puesto que ellos sólo utilizan las aplicaciones a través de su explorador de Internet o un cliente de software semejante, bien desde un portátil, un teléfono móvil o cualquier dispositivos que se pueda conectar a Internet, que es el sustrato de comunicaciones de cualquier nube pública (véase Figura 3).
Figura 3. Interacción de los usuarios con los servicios de aplicaciones de la nube
 (fuente: Wikipedia, licencia Cc-by-sa-3.0 SamJohnston).
Un navegador web es una aplicación que tiene una apariencia muy sencilla, pero que interiormente es sumamente compleja porque gestiona un número importante de tecnologías en constante cambio. A pesar de su complejidad, estos aplicativos suelen ser gratuitos. ¿Por qué siendo tan costosos de desarrollar son gratuitos? Porque se han convertido en la pieza tecnológica que aglutina la entrada a la mayor parte de los servicios remotos a través de la web. Podríamos decir que el navegador se ha convertido en una especie de contenedor universal de aplicaciones remotas: lo que hace que una aplicación remota se virtualice como si fuera local. Quien tenga el control del navegador tiene controlados a los usuarios que lo empleen.
 ¡Qué bien se entienden ahora las guerras entre navegadores! Los servicios de la nube refuerzan esta tesis.  

____________________

Alfredo Abad Domingo.
Twitter: @AlphesTIC,  https://twitter.com/AlphesTIC 
Facebook: https://www.facebook.com/alfabad 

Artículo "Computación en la nube: disipando la borrasca". Escrito originalmente y publicado en Escenario 2011. Instituto Tecnológico y Gráfico Tajamar. ISBN: 978-84-88543-11-0. Copyright 2011 by Alfredo Abad.

2 comentarios:

  1. Hola Alfredo,

    Interesante artículo. Un apunte: Django no es un lenguaje de programación, sino un framework web escrito en Python. Voy a leerme la tercera parte :-)

    ResponderEliminar

Comparte aquí tu comentario, seguro que será interesante para todos.