sábado, 8 de octubre de 2011

¿Qué es Cloud Computing o computación en la nube?


Hay muchos mitos sobre este tema, mucho marketing y muchos conceptos mezclados. Hay quienes dicen que el Cloud Computing ya existía hace mucho tiempo, hay quienes dicen que es toda una tecnología nueva. Las empresas lo venden como una revolución tecnológica. Todos ellos tienen un poco de razón y muchos tienen un poco de exageración. Según un estándar que busca seguir EEUU, en una nota publicada por el MIT, este mes, el Cloud Computing es:

"a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."

Para mi, algo más simple sería:

"Cloud Computing es una forma de brindar servicios bajo demanda sobre Internet"

¿Es cierto que es una tecnología nueva? No tanto, en realidad la tecnología que soporta que el servicio este online 99,9% del tiempo está muy desarrollada y automatizada cada día más.
En parte, el motor que hace mover los servicios de Cloud es la virtualización y la computación distribuida al estilo GRID. Tecnologías bastante desarrolladas desde el siglo pasado, sin embrago no alcanza porque también, estos servicios, tienen un alto grado de automatización que no es muy fácil de desarrollar en cualquier entorno de virtualización.
¿Es cierto que es un término nuevo? En realidad el término si es nuevo, pero por una cuestión de marketing. Este tipo de servicios ya se venían dando. Tenemos por ejemplo el correo web, los repositorios de fotografías, los repositorios de código fuente, de música, etc, todos pueden considerarse un servicio de Cloud.
¿Es cierto que el Cloud Computing no está offline nunca? Bueno, esto no es del todo cierto, salvo que los servicios que dicen llamarse servicios Cloud estén bajo un sistema de virtualización, en Cluster, que soporte el HA (High Availability - Alta Disponibilidad), DRS (Distributed Resourced Scheduling - o también distribución de carga). Estas características permiten que los equipos físicos puedan romperse sin necesidad de que el servicio deje de ofrecerse, pueden apagarse equipos para mantenimiento, pueden migrarse Datacenters enteros a otra región física, pueden soporta grandes cargas de trabajo y también son muy fácil de escalar y actualizar. Más allá de que el sistema sea virtualizado o no debe contener estas características antes nombradas. Google, por ejemplo, da servicios que podrían categorizarse como servicios Cloud pero un poco diferente a los demás. Utiliza computación distribuida o grid computing con un lenguaje de programación interpretado. Es el rey de la computación distribuida, sus servidores son enjambres de máquinas chicas, sin carcasa y casi atadas con cinta, de bajo costo, pero de un gran potencial  (....no me cabe duda que si juntamos un par de celulares tengamos el mismo o mejor potencial que un servidor actual..... la Nasa por ejemplo, recopiló varios Play Station para hacer una super computadora de alta resolución gráfica para mapas de navegación satelital.....).




Existen tres tipos básicos de servicios Cloud:

  • Los que se refieren a servicios de Infraestructura correspondiente a la entrega de servidores virtuales, capacidades de storage, capacidades de memoria ram, de red, se llaman IaaS
  • los servicios basados en software como por ejemplo un Correo Web, aplicaciones de escritorio web como Google Docs, Office Online, Sales Force, Facebook y otros, que se llaman SaaS
  • y también los que entregan una plataforma de desarrollo bajo demanda, por ejemplo Google App Engine, SourceForge, GemFire, y varios más, llamados PaaS.

A su vez, si hablamos de IaaS podemos encontrar tres tipos de Cloud Computing, dependiendo de si el servicio es dentro de una empresa, en ese caso es privado, sino el servicio es público y por último tenemos una combinación de estos dos llamado mixto. La gran incógnita de todos cuando se habla de Cloud Computing es:

¿Como se hacen los servicios de Cloud Computing privados o para el público?

Bueno, es bastante largo de contar y es muy oscuro el camino detrás del Cloud Computing, veremos muchos obstáculos para llegar a la verdad.... Me ha tocado ver las soluciones propuestas por varios vendors de la mano de grandes gerentes de venta y casi todos están muy verdes. Lo que se vende hoy como Cloud computing es una especie de automatización del sistema de virtualización que corre abajo pero falta mucho. Amazon lo logro, después de un montón de desarrollo y utilizando KVM como motor, pero esto funciona muy bien en EEUU donde las redes son otras, por nuestra región, en Argentina, esos servicios de Amazon sufren de mucho delay. VMware vende el Cloud Director pero su solución de Cloud Privado es mucho más visionaria, tiene software en desarrollo, aún le falta un poco. Microsoft tiene todo por hacer, todo es teórico y empresas como IBM o EMC también tienen sus soluciones pero todas muy complejas, sin nada de documentación ni clientes que se puedan visitar para asegurar su funcionamiento, hay que instalar 1000 aplicaciones y coordinarlas entre ellas. Por mi parte estoy estudiando una solución que me pareció bastante original que viene a un ritmo firme llamada OpenStack (originariamente un proyecto libre de la empresa Rackspace y la Nasa). Más adelante hablaremos de esta extraordinaria opción.

Si tendríamos que definir los pasos para construir un Cloud Privado, se nos podría ocurrir algo como los siguientes pasos según la lógica nos deja ver:
......primero y principal, podemos utilizar virtualización o grid computing. En nosotros queda la decisión de asegurar que contemos con los servicios antes nombrados. Luego de definir la base del hardware,  vamos a necesitar un sistema de automatización, de creación de equipos virtuales, normalización de templates, medidores de costos, facturación, asignaciones de disco según templates, autocrecimiento y decrecimiento de la granja virtual, monitoreos, alarmas que provoquen acciones, control de inventario y capacity planning, por último, un sistema web que tome todas esas cuestiones y las resuelva en una linda interfaz para cada nivel de usuario, con workflows de aprobaciones, controles, disparadores de emails y confirmaciones, etc. Sin duda, no es soplar y hacer botellas como se nos está vendiendo en el mercado pero tarde o temprano estas soluciones van a ver la luz y se van a ir simplificando.

Empresas:
http://www.openstack.org
http://www.google.com/apps
http://www.emc.com/leadership/programs/cloud_computing.htm
http://www.ibm.com/ar/services/cloud.phtml
http://hpcloud.com/

Estándares y definiciones:
MIT definition (2011): Cloud Computing Defined
NIST Cloud Computing Reference Architecture: Recommendations of the National Institute of Standards and Technology

4 comentarios:

  1. Hola,Me llamo Nancy entré a tu pág porque estoy haciendo una carrera de computación y necesito hacer un trabajo.Para mi esto es muy nuevo y no entiendo mucho.Por favor necesitaría saber que relacion hay entre Ipv6 y cloud.Lo que entendí es que la primera es un sistema de internet que hace poco está en el mercado además lo podemos usar todos para investigar en cambio cloud es un sistema para empresas.

    ResponderEliminar
  2. Hola perdón soy Nancy ,anteriormente te mandé un comentario pero no puse un lugar para que me pueda mandar una respuesta este es mi mail naelimu2@hotmail.com/facebook Nanay Muñoz sale la foto de una perrita.Muchas gracias

    ResponderEliminar
  3. Nancy, IPv6 es una versión del protocolo TCP/IP. Este protocolo es el estándar de los sistemas de telecomunicaciones. Toda Internet está basada en IPv4 que es la versión anterior. Está todo en condiciones para que empecemos a migrar al nuevo estándar pero es difícil porque primero habría que actualizar todos los routers internacionales de Internet. La versión nueva vino a arreglar un tema de direccionamiento. Es por eso que habrás escuchado decir que no hay más direcciones IP que asignar. Hoy hasta los perros tienen direcciones ip, situación que no se había pensado anteriormente. Con la nueva versión incrementaríamos significativamente este rango. Cloud computing no es tan solo un sistema para empresas, es mucho más que eso. Te recomiendo empezar a investigar sobre virtualización que es la base de los sistemas Cloud.

    ResponderEliminar
  4. Este blog ha sido eliminado por un administrador de blog.

    ResponderEliminar