Para aumentar la confusión, la novedad de la terminología hace que todavía exista confusión con multitud de términos más tradicionales. Principalmente porque el concepto de "cloud" es evolución de otros conceptos que ya existían en el mundo de la informática desde hace bastantes años. Un ejemplo se muestra en la figura adjunta que representa la nube de tags de un popular sitio dedicado al tema. En ella se puede, la gran relación que tiene con un concepto anterior, el "utility computing", mucho menos popular pero muy similar en cuanto al concepto que representa.
Y llegados a este punto sólo quedaría por explicar el calificativo "cloud" aplicado a la palabra computación, lo que nos daría la visión más tecnológica del término. Así, este tendría que ver con que tanto el software como el equipamiento informático se desplazan de las dependencias del usuario a Internet, entendida ésta como una gran nube de computación ("cloud") donde se ejecutan las aplicaciones informáticas.
Tras los conceptos principales, las preguntas más frecuentes sobre "cloud computing"
Tras aclarar los conceptos principales, en lo que sigue pasemos a resolver las preguntas más frecuentes sobre este tema.
Cómo encaja la virtualización en este esquema
Conviene aclarar otro de los conceptos habitualmente ligados a la idea de cloud computing: la virtualización. El objetivo de la virtualización es ejecutar en un ordenador dos o más instancias de un sistema operativo simultáneamente, o en general, dos o más sistemas operativos distintos. Esto sirve, por ejemplo, para ejecutar simultáneamente Windows y Linux en un mismo ordenador. El truco lo hace un software que se ejecuta "por debajo" de los sistemas operativos y que ordena el acceso a los recursos básicos del ordenador: CPU, discos,
Si pensamos en un centro de cálculo, la virtualización permite ejecutar en un mismo ordenador aplicaciones que antes era necesario que se ejecutaran en ordenadores independientes. La ventaja principal es el aprovechamiento de recursos y el ahorro que ello supone. Y si además el software de virtualización es tan eficaz que puede coordinar los recursos básicos de no sólo un ordenador sino de varios, entonces los sistemas operativos se ejecutarán en una nube de ordenadores; de ahí la similitud con la nube de computación. Y cuando esto ocurre las posibilidades se mutiplican: se pueden concentrar sistemas operativos en menos ordenadores en horas de baja actividad, se pueden migrar sistemas operativos hacia ordenadores más modernos cuando se requieran más prestaciones,
Teniendo esto en mente, la virtualización podría ser un IaaS cuando lo que se alquila es el "hosting" de una máquina virtual en un centro de datos. En este caso lo que se alquila es un ordenador. Pero la virtualización podría ser un SaaS si lo que se alquila es un puesto de trabajo virtualizado, es decir, el uso de un ordenador virtual.
Cuáles son los servicios más populares
Empecemos por el SaaS Software as a Service (software como servicio). Aquí encontramos ya servicios de todo tipo. Para el entorno más profesional se encuentran ofertas como las de Salesforce, que vende software de CRM como servicio online, o Basecamp, que comercializa un software online para la gestión de proyectos. Para todo tipo de usuarios se encuentran ya disponibles infinidad de herramientas que sustituyen las aplicaciones típicas "de escritorio" por versiones online que se ejecutan desde un navegador web. Lo más popular son las aplicaciones de ofimática de empresas como Google o Zoho, pero también existen aplicaciones online tan complejas como software de procesamiento de imágenes o incluso de video.
Entre los IaaS Infrastructure as a Service (infraestructura como servicio), el ejemplo más obvio es el de alquiler de infraestructuras de computación, es decir, el hosting de ordenadores virtualizados. En este terreno se encontrarían ofertas como Amazon Web Services EC2 o GoGrid.
También incluiríamos entre los IaaS, algunos servicios básicos de computación software. Se trata de componentes básicos que permiten crear aplicaciones que se ejecutan de forma distribuida en varios ordenadores ubicados en lugares distintos e incluso proporcionados por empresas diferentes. Aquí encontraríamos servicios básicos de bases de datos (como Amazon SimpleDB) o de gestión de tareas (como Amazon Simple Queue Service).
Hay algunos servicios que estarían en la frontera entre ser un SaaS y un IaaS. Estaríamos hablando, por ejemplo, de servicios como el almacenamiento en red. En este caso la frontera podría marcarse por la interfaz que se usa para acceder al servicio. Es decir, si la interfaz de relación con el servicio es una interfaz hombre-máquina (como en servicios como Box.net, Dropbox o similares) estaríamos hablando de SaaS. Pero si la interfaz es un API de programación (como en el caso de Amazon S3), entonces se trataría de un IaaS. Pero esto no es más que una posibilidad ya que podría haber otro criterio distinto y la clasificación, consecuentemente, diferente.
Finalmente nos quedarían los PaaS Platform as a Service (Plataforma como Servicio). Lo que se ofrece es un entorno que contiene lo necesario para soportar el ciclo de vida completo de creación de aplicaciones online. El ejemplo más representativo es, con diferencia, el entorno de desarrollo de Google App Engine. Éste permite acceder a la misma infraestructura de computación que utiliza Google internamente, incluyendo sus técnicas de ejecución distribuida.
Qué ofrece el cloud computing
Para el programador el cloud computing le ofrece la ilusión de poder contar con recursos de computación infinitos. Pero se trata de una ilusión que, en términos prácticos, podríamos calificar de suficientemente real. Es algo similar a lo que ocurre con los sistemas criptográficos actuales, que no son completamente seguros pues todos pueden ser "rotos", pero que son lo suficientemente difíciles de romper como para considerarlos suficientemente seguros.
Para empresas y Administraciones (y para muchos particulares), y sobre todo para aplicaciones que van a evolucionar con el tiempo, el cloud computing ofrece la posibilidad de empezar con poco, con la seguridad de que se va poder crecer de forma ordenada en recursos y costes asociados.
Resulta ideal para acceder a aplicaciones que tienen un uso muy concentrado en cortos periodos de tiempo. Para estos casos, el cloud computing evita la necesidad de contar con recursos informáticos inutilizados durante largos periodos de tiempo y, por tanto, grandemente desaprovechados.
Desde el punto de vista financiero, las estructuras de precios suponen una conversión de CAPEX a OPEX, lo que principalmente redunda en alivio de la presión en el corto plazo (de especial importancia en periodos de decrecimiento económico y fuertes presiones para el recorte de las salidas de capital) y en la traslación del riesgo al proveedor de los servicios.
Comparando costes globales
Pensando de forma global nos encontramos con factores a favor y en contra del cloud computing.
Obviamente, el coste de las comunicaciones aumenta porque los datos se encuentran almacenados más lejos del lugar donde se van a usar que lo que ocurría en las soluciones tradicionales. Pero tampoco tan lejos. Lo probable es que la "nube de computación" no sea una estructura profundamente descentralizada con un grado de dispersión y complejidad extremos. Más bien, existirán un conjunto reducido de grandes centros de computación que aglutinarán la mayor parte de la información. Y después, una larga cola de servidores dispersos pero que en su conjunto no aportarán la mayor parte de la información manejada.
En cambio, el "mundo cloud" permite ahorros ligados a factores pertenecientes al contexto de la computación. Esto se explica por el hecho de que, en la actualidad, los costes de refrigeración, energía eléctrica y espacio físico se situarían entre dos y tres veces el coste de los sistemas informáticos. Con esta premisa, resulta beneficioso ubicar centros de computación en lugares donde la electricidad sea barata, donde las temperaturas sean bajas o donde el coste del suelo sea bajo. Y preferiblemente donde ocurran todas esas cosas juntas. Con estas premisas no es de extrañar que compañías como Google dediquen recursos de investigación e intensifiquen su actividad de patentes en técnicas de refrigeración, de ubicación de centros de datos en el mar o incluso de generación de energía más barata.
Globalmente, las ventajas deberían ser superiores a las desventajas, y conducir a una situación de menor coste total.
Qué hace falta para ser un proveedor de cloud computing
La ventaja del cloud computing es que casi cualquiera puede participar en él. No es necesario tener ni un tamaño superlativo ni una ventaja tecnológica excesiva. El software como servicio es un modelo tan elemental que aplica a agentes de casi cualquier tamaño.
Sin embargo, si nos centramos en las grandes nubes de computación[1], la situación es muy distinta. Por lo menos en el corto plazo no deberían existir más que un número pequeño de grandes nubes de computación. Aunque, quien sabe, también se pronosticaba que con cinco ordenadores se iban a cubrir las necesidades de computación de todo el mundo. O, ¿eran cinco nubes de computación?
Sea como fuere, las condiciones necesarias para convertirse en una de estas grandes nubes de computación son:
- Haber realizado grandes inversiones en la construcción de centros de datos. Esto incluye tanto a las empresas que lo hicieron con propósitos semejantes (como los proveedores de servicios de hosting), como los que lo hicieron porque su negocio lo requería (como en el caso de empresas como Google o Amazon). Lo que resulta curioso es que han sido estas y no aquellas, es decir, las menos próximas, las que se han lanzado a la provisión de servicios.
- Disponer de capacidades de gestión de infraestructura a gran escala. Como las que tienen los operadores de telecomunicaciones, que tienen el conocimiento y los sistemas como para gestionar grandes e intrincadas redes de comunicaciones.
- Disponer de una interfaz de gestión amigable para que los usuarios sean capaces de manejar fácilmente el servicio. No hay que olvidar que el cloud computing llega parejo al movimiento web 2.0. En este entorno no se entienden los interfaces complejos y sólo aptos para usuarios muy especializados. Más bien la tendencia es a que puedan ser utilizados casi por cualquier persona y con escaso o nulo tiempo de aprendizaje.
- Para el caso de los servicios del tipo PaaS, se requiere disponer de una tecnología que en el momento actual es principalmente propietaria y se encuentra muy alejada de cualquier esbozo de estandarización.