Gran pregunta. Difícil Respuesta. La fácil es… depende. Hasta aquí estaba claro. Pero no sólo depende de cuales sean tus necesidades, también depende de qué proveedor vayas a elegir.
Cloud Computing
He trabajado mucho durante los últimos dos años, con dos de las empresas de Cloud Computing más importantes, Amazon AWS y RackSpace. ¿Cómo me ha ido?
Bueno, para empezar he aprendido que Cloud Computing es sinónimo de flexibilidad y agilidad. Es trementamente útil para proyectos que reciben cargas de trabajo extremadamente diferentes en función del día o la hora, o en función del resultado de determinada campaña de márketing. Por ejemplo, puedes aumentar o disminuir los recursos de tu máquina, según necesites, en cuestión de minutos. Incluso Amazon tiene un servicio llamado «Cloud Watch Auto Scaling» que te permite aumentar o disminuir recursos de forma totalmente automática, en función de la carga del servidor. Escalado vertical tremendamente fácil y rápido.
También puedes aprovechar los servicios de Balanceo de Carga (mucho más fáciles de configurar los de RackSpace que los de Amazon), que te permiten distribuir el tráfico que desees entre diferentes máquinas. Así, puedes aprovechar también la funcionalidad de clonado (en realidad, de creación de nuevas máquinas a partir de AMIs en AWS, Snapshots en RackSpace) para ir metiendo máquinas detrás del balanceador, en función del tráfico. El escalado horizontal en este caso, también es muy rápido y sencillo con el Cloud Computing.
El clonado, también te permite crear máquinas idénticas, para por ejemplo, tener una máquina de QA en cuestión de minutos.
Hablando de testeos, montar una máquina desde cero, lleva unos pocos clicks, y por supuesto, tan sólo unos pocos minutos. Así pues, el Cloud Computing es ideal si se necesita testear algo en un nuevo entorno, durante unos pocos días. Creas la máquina en unos minutos, testeas lo que tengas que testear, y eliminas la máquina. Tan simple como eso.
Hay muchas otras funcionalidades del Cloud Computing, como la posibilidad de reasignar IPs públicas con Amazon AWS, o también la tremenda velocidad de replicación DNS de Amazon Route53. Claro que RackSpace te ofrece el mismo servicio de gestión de DNS, totalmente gratuito.
Tampoco es oro todo lo que reluce; he tenido malas experiencias con Amazon. Hay veces que tus máquinas se crean sobre hardware con problemas, o sobre hardware compartido por otras instancias que consumen demasiado y te dejan sin recursos. En ocasiones, he tenido una máquina reiniciándose durante 4 o 5 horas, al haber caído sobre hardware defectuoso (el proceso de copia automático de la máquina de un hardware a otro puede dar muchos problemas).
¿Amazon o RackSpace?
RackSpace. Sin duda. Soporte técnico inmejorable, y en general, mejor rendimiento que Amazon, y mucha mejor interfaz. Amazon tiene muchísimos conceptos y muchísimos detalles que tienes que tener en cuenta, para trabajar correctamente. RackSpace es mucho más intuitivo, y más seguro y fiable. Algo más caro también. ¿He mendionado ya el soporte técnico de RackSpace? Sí, y tanto. Unos cracks.
Por contra, Amazon te permite apagar las máquinas, y no te cobra más que el espacio en disco (unos céntimos) mientras la máquina esté apagada. También tiene más servicios y más regiones en las que crear tus máquinas. Con Amazon puedes montar una máquina en la región de Brasil, otra en Irlanda, Asia o EEUU, según necesites. Con RackSpace no tienes ésta flexibilidad.
Amazon también ofrece más servicios que RackSpace. Según lo que necesites, Amazon puede ser tu solución.
¿Entonces, Cloud Computing o Servidores Dedicados?
Seguramente para proyectos que requieran de un entorno durante mínimo 8-10 meses, con tráfico y carga controlados, saldrá mucho más a cuenta montar un entorno en servidores dedicados. El precio suele ser mucho mejor, y las prestaciones también. Por el mismo precio, puedes conseguir un servidor 10 veces mejor, con servidores dedicados.
Si en cambio vas a montar un proyecto de no más de 2 o 3 meses, o vas a tener un entorno inicial extremadamente cambiante en cuanto a tráfico y carga recibida, seguramente valga la pena mirarse bien una solución de Cloud Computing. Si además te urge tremendamente montar un entorno, entonces ya no tendrás más alternativa que el Cloud, puesto que los servidores dedicados suelen entregarse varios días después de comprarse.
Hay muchos otros factores a tener en cuenta, como el SLA que ofrece cada proveedor, las necesidades específicas del proyecto, el coste de montar un Balanceador vs al beneficio de contratar un servicio por menos de 30€/mes en RackSpace, los backups automáticos que puedes configurar con RackSpace, etc.
En definitiva, no es una decisión fácil, y requiere pensárselo bien dos veces, pero a grades rasgos: Rendimiento = Servidor dedicado, Flexibilidad = Cloud Computing.
Foto por akakumo
Muy bien explicado, esto sacará de dudas a mucha gente cuando se pregunte lo mismo.
Sigue así campeón 😀