Lo que nos llega desde el cielo
Se ha escrito mucho acerca del Cloud Computing y hay multitud de definiciones de la tan sonada “nube”. Me he encontrado con distintas ideas en los muchos posts que he leído o a conferencias que he asistido. Cada autor tiene una forma distinta de definirla y algunas empresas adaptan el concepto de Cloud a sus intereses por puro marketing.
Podemos realizar clasificar los servicios web de la siguiente forma:
SaaS (Software as a Service): Podemos englobar aquellos servicios de los cuales sólo tenemos acceso al uso de la aplicación. Tanto el software como las tareas de administración son llevadas a cabo por el proveedor del servicio. Un ejemplo de este caso sería GMail.
PaaS (Platform as a Service): El proveedor nos ofrece una plataforma donde acceder y ejecutar nuestra aplicación. Esta plataforma normalmente es limitada a un lenguaje o a ciertas restricciones de memoria o de tamaño. Un ejemplo sería Google Apps donde permite subir aplicaciones Python y más recientemente Java.
IaaS (Infrastructure as a Service): En este caso el usuario tendría control de una máquina completa (normalmente máquina virtual). Puede instalar lo que se necesite en dicha máquina y configurar los recursos necesarios.
Ésta última definición es la más correcta a mi juicio. Hace mucho tiempo que existen las aplicaciones web pero el término Cloud Computing apareció con la llegada del servicio de Amazon.com en el llamado AWS “Amazon Web Services”.
La forma usual de alojar una aplicación en la web es contratar un Hosting el cual puede ser limitado a un lenguaje de programación o puede ser una máquina virtual o física. Ello conlleva un contrato que puede durar días. Puede que después de un tiempo necesites aumentar los recursos de la máquina o añadir otras lo cual también lleva su tiempo.
El Cloud Computing cambia completamente la forma de administrar estas máquinas. Teniendo una cuenta en una plataforma de Cloud Computing puedes lanzar una máquina con los recursos que necesites en cuestión de segundos, aumentar la memoria o el disco en minutos o arrancar varias al mismo tiempo para escalar de forma instantánea tu aplicación. También permite realizar backups de la máquina completos y de forma incremental en segundos, asegurándote que puedes clonar la máquina para trabajar en una copia de la misma mientras que la máquina original continúa funcionando.
Otra de las ventajas es la facturación. Se realiza dependiendo del tiempo que está funcionando las máquinas, el espacio en disco y la transferencia de datos. Ello permite por ejemplo tener aplicaciones arrancadas durante un límite de tiempo, por ejemplo en horario de oficina. Otra aplicación interesante es poder arrancar máquinas de alto rendimiento. Por ejemplo en Amazon AWS el límite (por ahora) es de hasta 23 Gigas de RAM y 8 núcleos. Ya no hay que esperar días para obtener el resultado de pesadas simulaciones o de renderizado de vídeos, en cuestión de horas y a un precio reducido (ya que sólo pagas por lo que usas). Aquí tienes una pequeña herramienta para calcular el coste estimado según las características.
También se pueden compartir imágenes ya hechas (AMIs) por la comunidad con lo que usar un gestor documental como Alfresco o tener una aplicación de gestión de casos como Redmine es cuestión de segundos.
Según el tipo de acceso se pueden clasificar en dos tipos: Públicas y Privadas. Incluso existen mixtas en las cuales el usuario puede optar dónde quiere lanzar su máquina. Algunas de las más conocidas son:
Públicas:
- Amazon AWS
- RackSpace
- GoGrid
Privadas:
- Eucalyptus
- VMWare vCloud
- OpenStack
La polémica surge si es necesario crear una infrastructura de Cloud privada o hacer uso sólo de la pública. Nick Carr, en su libro “The Big Switch”, usa la analogía de la electricidad para explicar la naturaleza del Cloud Computing. Antes de que surgieran las grandes eléctricas cada hogar disponía de un generador para su propio uso. Una vez llega la línea de corriente a cada casa los usuarios prefirieron dejar el mantenimiento de sus generadores y pagar por el consumo eléctrico.
Os dejo un link del proyecto BitNami.org en el que colaboro para ver una demostración de estas características.
Los costes de crear una aplicación web y hacerla accesible al público ahora es mínima, y en caso de éxito la escalabilidad es inmediata. ¿Creéis que el Cloud Computing será el futuro? ¿Es acertada la analogía de la electricidad? ¿Pensáis que tener los datos “en la nube” supone un inconveniente para las empresas? ¿Hará que las PYMES se acerquen a las aplicaciones web y a las aplicaciones de Software Libre?