Mostrando entradas con la etiqueta definiciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta definiciones. Mostrar todas las entradas

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

domingo, 25 de septiembre de 2011

¿Qué es la virtualización?

Vamos a empezar el blog por el principio: ¿Qué es la Virtualización? Si investigamos un poco por la web vamos a encontrar un montón de definiciones. La más escuchadas es la siguiente:

"Es la forma de re-aprovechar los recursos físicos de una computadora, donde ayer funcionaba solamente una hoy funcionan dos, tres o más "

Hoy no es la más acertada porque tenemos distintos tipos de virtualización como veremos más adelante. Pero vamos a ejemplificar para que vayamos entendiendo más a fondo este concepto. Imaginen tener una laptop en la mano, tienen un gran poder de procesamiento y cómputo que no siempre está siendo utilizado todo el tiempo. Hoy en una misma laptop podemos tener funcionando dos por el mismo precio, para el fin que nosotros queramos e imaginemos, pero hoy es posible. 


Lleven esta imagen hoy a los servidores (las grandes PCs de los centros de cómputos), es el mismo concepto: donde ayer corría un servidor hoy podemos correr dos, tres o más servidores con el mismo hardware. Entonces, no solo se re-aprovechan los recursos de una máquina sino que se re-aprovechan los recursos de la empresa también.
Con esta primera impresión podemos comenzar a entender que la virtualización genera grandes cantidades de ahorros y genera el máximo uso de recursos posible. También se ve una continua independencia del hardware y software donde ambos conceptos se comienzan a abstraer.
Cómo dijimos antes, hoy aparecen virtualizaciones de distintas cosas, hay distintos tipos de virtualización, no solo de servidores o máquinas de escritorio, sino que hoy hablamos también de virtualización de aplicaciones, virtualización de storage (discos, dispositivos de almacenamientos) y hasta virtualización de celulares. Pero todos persiguen el mismo fin.
La virtualización de aplicaciones busca re-aprovechar el poder de cálculo de los servidores centralizando el uso de las aplicaciones dentro de una empresa, re-aprovecha el poder del software de la empresa. Un ejemplo sería instalar un Word en un servidor y darle acceso a utilizarlo a las distintas laptops de la empresa. Estás máquinas de escritorio no tendrían que instalarse localmente la aplicación, la verían como local pero la utilizarían desde el servidor.
La virtualización del storage plantea un concepto mucho más dificil de entender pero a grandes razgos significa que no importaría que tantos tipos de storage utilicemos sino que lo podemos utilizar en cualquier lugar cuando lo necesitemos. Podemos tener en la empresa 3 o 4 tipos de cajas de storage y verlas como un solo sistema de disparador de recursos de almacenamiento. Otra vez, se busca re-aprovechar los recursos de storage de una empresa o grupo económico.
La virtualización de celulares es un concepto mucho más humano, se busca que las personas no tengan que llevar dos o tres dispositivos en sus bolsillos, uno para el trabajo, uno personal, otro para guardias, etc. La virtualización de celulares unifica todos en un sólo equipo. Este concepto, más que re-aprovechar hardware, re-aprovecha comodidad y estilo de vida. En sintesis gastamos menos vida llevando un dispositivo que cargando con 3. Nos baja el peso que llevamos encima todo el día, nos baja los niveles de radiación probocados por estos dispositivos y también por supuesto nos baja el nivel de stress y nos brinda comodidad. En síntesis, podemos definir la Virtualización como:

Aprovechar al máximo los recursos disponibles.

Yo creo que esta es una simple y concreta definición que podemos asociar con cualquier tipo de virtualización. No queda duda que la virtualización está cambiando los conceptos de la vieja computación, está cambiando los negocios y modelos de empresa, está cambiando las comunicaciones y hasta el estilo de vida de las personas. Los invito a que sigan aprendiendo más sobre esta tecnología ;)

Datos iniciales

Datos avanzados
White Paper de VMware: Patente de la tecnología de virtualización para plataformas x86