Archivo

Posts Tagged ‘cloud computing’

Cloud computing: el taxi de la computación

¿Qué es Cloud Computing?

Definir Cloud Computing es casi más complicado que definir la Web 2.0 , no hay una definición por defecto y este post no pretende obtenerla ya que ha habido jornadas enteras de debate sobre una definición única, entre personas muy cualificadas, y no se han puesto de acuerdo. Así que para no entrar en debates estériles cogeremos como punto de partida la definición que viene en la wikipedia:

Cloud computing, es un paradigma que permite ofrecer servicios de computación a través de Internet.

Modelo tradicional

Por un lado tenemos el modelo tradicional de implantación de software que necesita una gran inversión en hardware, ya sea comprando servidores o alquilando este hardware a proveedores externos. A la hora de dimensionar nuestro hardware debemos tener en cuenta la capacidad de uso y seguramente sobredimensionarlo previendo un crecimiento en el uso de la aplicación. Esto supone malbaratar recursos de nuestra empresa ya que estamos dedicando unos recursos que no estamos realmente aprovechando. El otro punto es aún más crítico, si no sobredimensionamos nuestra capacidad, con el modelo clásico, podemos tener un problema en abastecer nuestras necesidades de uso.

Modelo Cloud

Aquí es donde aparece este nuevo actor llamado Cloud Computing o computación en la nube. ¿De qué hablamos cuando hablamos de computación en la nube? La idea básica es: ya no necesitamos invertir mucho dinero en comprar un hardware que no estamos aprovechando al 100% ni necesitamos tener técnicos especialistas en montar, configurar e instalar los servidores para ejecutar las aplicaciones, ahora trasladamos la parte de computación a la nube. Externalizamos nuestra capacidad de computación. Externalizamos nuestro hardware. Computing as a service.

¿Pero esto no es lo mismo que alquilar un servidor en un datacenter (Hosting)?

No. Cloud computing tiene características que lo hacen distinto de un alquiler de hardware tradicional. Primero la inmediatez, poner en marcha un servidor para una aplicación nueva se tiene que poder hacer en muy poco tiempo, incluso minutos. Segundo la escalabilidad, debemos poder crecer y decrecer de forma elástica y poder adecuarnos siempre a nuestras necesidades.
Con el alquiler de un servidor, alguien tiene que hacer el mantenimiento, la puesta en marcha y además el escalado es manual. El tercer punto es el pago por uso, sólo se debe pagar por lo que se usa, tanto en tiempo cómo en recursos. Si utilizamos un servidor durante 20 días, ¿porque tenemos que pagar un mes entero? Si no consumimos casi ancho de banda, ¿porque tenemos que pagarlo entero?

.

Cloud Computing: como ir en taxi

Imaginemos que no tenemos coche y necesitamos ir al aeropuerto, con el modelo tradicional tenemos 2 opciones: comprar un coche para ir, cosa que parece clara que no sale a cuenta, o bien alquilar un coche para ir.

Descartamos a priori la opción de trasporte público porque no se puede hacer un símil coherente en el mundo de la computación. Podíamos pensar que alquilar un coche no es tan mala idea, pero pensemos que en el mundo software no se alquila un servidor para 20 minutos o sea que sería como alquilar un coche para un día para hacer un trayecto de 20 minutos.

¿El modelo cloud qué propone? Coger un taxi. El taxi sólo te va a cobrar desde el momento en que subas (momento de empezar a usar el servidor), el cargo se va a ralentizar cuando estemos parados (el ancho de banda si no lo usamos no lo pagaremos todo) y cuando bajemos del taxi va a dejar de contar (al apagar el servidor). Parece claro que la opción del taxi (cloud computing) es la mejor y además vemos que se cumple una de las premisas: pago por uso.

Siguiendo con el mismo ejemplo, no tenemos de preocuparnos de las averías o inspecciones que pueda tener el taxi, cuando cojamos el taxi estará en perfecto estado para nuestro uso. La única pega que se puede encontrar es que no haya ninguno disponible, que estén todos ocupados, pero este escenario en Cloud Computing es prácticamente imposible. Claro que hay unas limitaciones técnicas ya que al final es software virtualizado, pero el ‘techo’  es casi infinito. Además, en la mayoría de proveedores podemos reservar ‘espacio de computación’ durante el tiempo que necesitemos de la misma manera que lo haríamos en un taxi.

El tema de la inmediatez parece clara, si tenemos que comprarnos un coche, podemos esperar días o semanas. Alquilar un coche es más rápido, pero tenemos que desplazarnos a buscarlo y devolverlo, aunque sea en el mismo aeropuerto. Mientas que el taxi nos dejará en la terminal con la maleta en la mano, listos para facturar.

En cuanto a la escalabilidad es más difícil de relacionar, no podemos tener, por mucho que paguemos, un taxi que corra mucho y que en lugar de tardar 20 minutos en hacer el trayecto tarde 5. Pero podemos tener un taxi con un portamaletas más amplio si llevamos mucho equipaje. O bien un taxi adaptado. O un taxi para más de 4 personas si vamos un grupo y esto sería parecido, guardando todas las distancias, a la escalabilidad que se le supone al cloud computing.

Hay muchos videos y muy buenos sobre que es Cloud Computing, una imagen vale más que mil palabras, éste de Salesforce que explica de manera muy visual su forma de entender Cloud Computing, sobretodo enfocado a su negocio: Software as a Service (SaaS).

Los gráficos pertenecen a Amazon Web Services

Por un lado tenemos el modelo tradicional de implantación de software que necesita una gran inversion en hardware, ya sea comprando servidores o alquilando este hardware a proveedores externos. A la hora de dimensionar nuestro hardware debiamos tener en cuenta la capacidad de uso y seguramente sobredimensionarlo preveiendo un crecimento en el uso de la aplicación. Esto supone malvaratar recursos ya que estamos dedicando recursos que no estamos realmente aprovechando. El otro punto es aun mas critico, si no sobredimensionamos la aplicacion, con el modelo classico, podemos tener un problema en abastecer nuestras necessidades de uso.

Anuncios
Categorías:Cloud computing Etiquetas: ,