lunes, 22 de noviembre de 2010

Visión y características del cloud computing

Como complemento a la definición que vimos en el post anterior, Eric A. Marks y Bob Lozano, en su libro 'Executive's guide to cloud computing' nos ofrecen, primero una visión del cloud computing y, a continuación, una selección de las siete características esenciales de 'las nubes'.

La visión es la siguiente:

"Computing -computation, storage, communication- is relatively free, scales up or down as needed, scales as much as needed, operates itself, and always works."

Quizá la visión no aclare especialmente en qué consiste el cloud computing pero, desde luego, es ambiciosa y muestra algunas de las aspiraciones y señas de identidad de este nuevo modo de hacer TI: la escalabilidad, la economía, la facilidad de operación...

Veamos ahora las características esenciales que los autores proponen y que habrán de aportar más luz:

Características esenciales

Escalabilidad: simplemente, se trata de la ya muy conocida capacidad de una infraestructura o solución TIC para responder ante cualquier demanda sin que sus prestaciones sufran una degradación.

Elásticidad: capacidad para escalar tanto hacia arriba como hacia abajo de forma automática sin esfuerzo por parte del personal operativo. Este concepto ya no es tan conocido. En el fondo parece asemejarse al anterior de la escalabilidad. Creo que en realidad existen sólo un par de matices que los diferencian. El primero es que se considera explícitamente la escalabilidad hacia abajo. Normalmente la escalabilidad se enfoca hacia la absorción de demandas crecientes. Eso puede conducir, y conduce de hecho, a sobredimensionamientos antieconómicos. En el caso de la elasticidad, sin embargo, se contempla también explícitamente la escalabilidad hacia menores demandas. Otro matiz haría referencia a la relativa facilidad (en realidad los autores hablan de una facilidad casi absoluta) para conseguir esa adaptación sin intervención del personal operativo. A pesar de los dos matices mencionados, es discutible si la elasticidad es realmente una característica diferente de la escalabilidad o es sólo un grado de excelencia de la misma.

Autoservicio: característica mediante la cual, el poseedor de una aplicación puede obtener los recursos computacionales necesarios mediante una solicitud atendida en pocos minutos. Los autores ponen esta característica en relación, de nuevo, con la elasticidad. Yo diría que, aparte de requerir de dicha elasticidad, lo que se está demandando es una alta automatización de la provisión de servicios y, sobre todo, de la provisión de capacidad.

Acceso ubicuo: Posibilidad de que todas las capacidades de la nube sean accedidas en cualquier lugar y mediante cualquier tipo de terminal.

Virtualización completa: Se trata de desacoplar completamente las aplicaciones de las infraestructuras que las soportan, convirtiendo toda esa infraestructura en una única máquina virtual sencilla de operar y sobre la que resulte fácil el desarrollar o evolucionar aplicaciones. Los autores reconocen algunos éxitos en el camino de la virtualización, especialmente en lo relativo a los procesadores, pero observan menos éxitos en la virtualización del almacenamiento o las redes y mucho menos aún en las aplicaciones.

Consistencia relativa: quizá, más que de una característica, se trata de una propuesta de los autores. Lo que sugieren es la simplificación de la estructuras de la nube (servidores, sistemas operativos, almacenamiento, elementos de red, etc) mediante el uso de un número limitado de componentes constituyentes.

Comoditización: Curiosamente, no se refieren los autores al hecho de la comoditización que el cloud computing supone para los clientes y usuarios del mismo, concepto ya anticipado por Nicholas Carr y que considero esencial en la filosofía del cloud computing. El planteamiento de los autores es más interno y de carácter económico. Lo que sugieren es evitar el uso de componentes y equipos muy especializados y, por el contrario, utilizar en la construcción de las nubes servidores, elementos de red o elementos de almacenamiento de propósito general, no muy especializados y, por tanto, más abundantes y baratos.

Características complementarias
Aparte de estas siete carcterísticas que los autores consideran esenciales, nos regalan, a modo de 'bonus', otras cinco características complementarias.

Servicio medido: es decir, la capacidad de medir el uso que de los recursos hace el cliente o usuario y facturar por ese uso, de forma similar a como tradicionalmente se ha hecho en el caso de servicios de telecomunicaciones. Esta característica parece irrenunciable para construir el correlato económico del concepto 'as a Service'.

Multi cliente: se trata de que la nube soporte a múltiples clientes ('tenants' en sentido amplio) evitando el uso de recursos dedicados.

Multi aplicaciones: ejecución de diferentes aplicaciones sobre los mismos elementos de infraestructura.

Ecalabilidad de aplicaciones: se trata, no sólo de que las infraestructuras sean escalables, sino de que cada aplicación, considerada individualmente, tenga esas características de escalabilidad, lo cual parece conducir a unos diselos y arquitecturas de aplicaciones más 'orientados a la nube'.

Fiabilidad: una característica que los autores consideran aún poco desarrollada y que, sin embargo, y en su opinión, puede, paradójicamente, hacer reducir costes debido a las menores necesidades de operación.

Es difícil decir si estas características son las que realmente definen lo que se necesita en el cloud computing, si se menciona todo lo necesario o si alguna característica pudiera no ser tan relevante. Lo que sí parece es que nos ayudan a centrar y entender este emergente mundo del cloud computing.