Servicios ¿en la Nube?

Creo que la gente es inconsciente. Al menos aquellos que deciden el desarrollo de aplicaciones web. Creo que nadie puede dudar de que la informática es un mundo cíclico, y ahora estamos recuperando todo aquello que “los abuelos de Internet” hacían en los ’70. Y es que hace unos años que se ha comenzado a retomar todo lo de los VDI (Virtual Desktop Interface), es decir, que en vez de que cada persona tenga su ordenador, estos estén centralizados… como cuando comenzó la informática en las empresas (antes de los PC -Personal Computers-).

Ahora a todo el mundo le ha dado por comenzar a usar noSQL. Este sistema básicamente es “eliminar” la relación e integridad de las bases de datos almacenando la información pre procesada en un formato similar al JSON (en su mayoría) pero que, si vamos unas décadas atrás… ¡anda! si parecen CSV. ¿Para qué relacionar las bases de datos?

Otra cosa muy moderna es lo de la Web 2.0, que básicamente es aquel sistema en que la empresa sólo pone la plataforma y los usuarios participan… parece que hayamos inventado la rueda en 2005 y en el año 1995 comenzaban servicios como eBay o multitud de sistemas de comentarios y foros en la red.

Para acabar, a lo que iba en un principio: el “Cloud Computing”, llamada también informática distribuida, es decir, todo aquello que había en los ’70 y ’80, un superordenador centralizado y un montón de posibilidades de expansión.

¿Y con esto qué quiero decir? Pues que creo que la gente confunde los conceptos de cloud computing con sitios web distribuidos, CDN -Content Delivery Network- y escalabilidad además de la multigeolocalización. Y es que a lo largo de los años he pasado por multitud de experiencias. Primero comencé haciendo webs y pidiendo cuentas de FTP, luego pidiendo también base de datos, hasta que en el 2000 tuve mi primer servidor dedicado. Poco a poco la escalada ha ido a necesitar varias máquinas, a virtualizar y hasta tener un datacenter. Lo único que me falta ya es tener cable de fibra óptica y dedicarme a abrir calles.

¿Con esto qué quiero decir? Pues que cuando algunos clientes me vienen a explicar que han alojado sus sitios web en Amazon AWS me quedo, en el 95% de los casos, bastante sorprendido. ¿Por qué? Pues básicamente porque los servicios habituales EC2, S3 y RDS no son necesarios tenerlos de esta forma distribuida. En estas últimas semanas he actualizado datos de dos empresas españolas dedicadas a Internet: una tiene picos de tráfico (en percentil-95) de 80 mbps y la otra tiene picos de 250 mbps, y sí, en ambos casos el tráfico está comprimido con gzip o deflate, por lo que se mira que no se vaya de las manos.

Si metemos esto en la coctelera me queda que un proyecto que puede tener picos de 20 mbps no deben estar en Amazon (u otros servicios en la nube) si no es para tener proceso. EC2 es un sistema muy interesante si tienes que procesar datos, hacer cálculos matemáticos que acaben dándote un resultado que puedas almacenar. Si realmente necesitas esto, lo que tradicionalmente se llama “proceso batch” me parece muy correcto externalizar la carga, porque Amazon, Google & co tienen muchísimas máquinas para procesar cosas.

Pero alojar un sitio web “normal y corriente” en un sitio de estas características provoca muchas situaciones que luego son complejas de arreglar, sobre todo si lo miramos desde un punto de vista de conseguir tráfico SEO (entre otros). Pero creo que el ejemplo del SEO será bastante claro.

Hoy en día montar un sitio web, si lo quieres escalable, es bastante sencillo. Necesitas un servidor para “cosas varias” (correo, DNS…), otro, normalmente con cierta potencia, para la base de datos, unos cuantos frontales web con programación (PHP, ASP…) y otro(s) frontal para contenidos estáticos, lo ideal en un dominio sin cookies y que además tire de un NAS con discos de alto rendimiento. Si por encima de esto ponemos un sistema de web-caché ya estamos listos y controlamos el 100% de la cadena de errores y del sitio. Además, este sistema te permite llegar a hacer una múltiple geolocalización en varias partes del mundo si dispones de un proveedor con posibilidades de distribución BGP en varios AS. Y encima, este sistema te saldrá muy barato si lo montas bien.

¿Por qué no me gusta Amazon? Pues primero porque el sitio web no está en los países en los que quieres trabajar, lo que implica ya el uso de conexiones internacionales que, por norma general, son más lentas que las locales (por ejemplo, usar Amazon para un sitio web en España es un suicidio, porque no tienen infraestructura en el país). Además, su sistema de estáticos, por defecto, no es el mejor del mundo y puede llegar a generar una serie de URL extrañas que acaban duplicando contenidos y, a la larga, perjudicando a los buscadores (aunque supongo que poco a poco se han ido poniendo las pilas en este tema).

Que conste que no estoy en contra de los servicios en la nube, simplemente creo que para “un sitio web” no es la mejor opción. Me parece perfecto usar servicios como Google Mail, Dropbox y similares, que al final son SaaS, pero el HaaS ha de estar muy bien trabajado para que no se produzca ningún problema a medio-largo plazo.

En fin, al final y como resumen lo que quiero destacar es que debemos medir muy bien lo que queremos para nuestros proyectos y sobre todo hablar con propiedad: no es lo mismo la computación en la nube que tener un sitio escalado en la red.

2 comentarios en “Servicios ¿en la Nube?”

  1. Muy bueno como siempre. alguien tenia que ponerle un poco de sensatez a los mensajes (marketing) que nos llegan de la red…

  2. Unas conclusiones interesantes, ya que efectivamente no se ha inventado nada nuevo, pero se ha comenzado a utilizar de forma masiva, poniendose de moda los conceptos de Cloud Computing y Virtualización. Saludos.

Deja un comentario