Saturday, June 16, 2012

La Nube de Mentira y la Nube de Verdad


Este artículo es una queja personal sobre todas las propuestas de "cloud" en el mercado. Y creo que un poco de historia es conveniente.

Durante los fines de los 90s, un grupo de compañías lideradas por Oracle (incluidas Netscape, Sun, IBM e includo un Apple de la era pre-Jobs) propusieron el Network Computing Architecture (Arquitectura de Cómputo en Red), o NCA. Algunos de nosotros nos enamoramos de la idea inmediatamente. En ese entonces, nadie hablaba de "la nube".

La idea detrás del NCA era tener grandes servidores de aplicaciones atendiendo las necesidades de los clientes, moviendo el poder de cómputo hacia la red y utilizando Thin Clientes ("clientes ligeros") sin unidades de almacenamiento. Incluso algunos modelos incluían una tarjeta de identificación como credencial de uso.

El modelo era atractivo, más barato que el modelo cliente/servidor vigente, fácil de mantener, actualizar, resguardar y soportar. La computadora (llamada una "NetWork Computer") iba a ser un electrodoméstico, casi desechable.

El NCA fue ridiculizado por un gran sector de la prensa tecnológica de la época. Decían que "nadie quería regresar al terminal tonto de nuevo" (lo cual no era del todo cierto, ya que las Network Computers tenía un nivel interesante de potencia), y muchos fueron tal lejos de decir que la web estaba bien para un carrito de compras, pero que jamás se iba a poder colocar un proceso completo de negocios.

En aquella época, durante el amanecer del Internet público (o la era de la web, o el boom del .com, o como quieran llamarlo), los términos disponibles para los servicios existentes eran:


  • Hosting: Una compañía rentaba espacio dentro de sus servidores para colocar código en HTML (una página de web), archivos (vía FTP) y correo electrónico. Más tarde, los servicios se expandieron a acceso a bases de datos, código de programación y algunos servicios adicionales.
  • Proveedores de Servicios de Aplicaciones (ASP):  Eran empresas que desarrollaban aplicaciones basadas en web (en muchos casos no eran estrictamente "basadas en web", sino en plug-ins o applets) y que los clientes podían pagar y utilizar.
  • Housing: Podía configurar mi propio servidor y colocarlo en el data center de un proveedor. La empresas de housing proveían de todos los servicios de redes para que mi servidor estuviera diponible en Internet. Algunas personal le llamaba "caging" ("enjaulado") por las jaulas donde se colocaban los servidores.


Todos esos servicios aún existen, con algunas modificaciones menores. Pero se les ha cambiado el nombre a "cloud computing".

Para mí, la "nube de mentira" es simplemente un servicio antiguo con nueva envoltura. Y para mí, la "nube de mentira" no merece ser llama "un nuevo paradigma" ni "un modelo innovador". Simplemente no es justo.

Veamos algunos modelos. Especemos con el Elastic Cloud de Amazon. Es un excelente servicio. Ayuda a muchas empresas pequeñas. Pero, aún así, no es nada más que housing. La única diferencia es que el servidor es virtual en lugar de ser físico. Pero el núcleo del servicio es el mismo: Colocar mi servidor en el datacenter de otro. Una vez colocado, el nivel de conocimiento para echar las cosas a andar el el mismo que requiero para echar a andar un servidor en mi escritorio.

Google Apps es otro ejemplo. Me gusta Google Apps. A pesar de sus limitaciones, es un excelente servicio para quienes no desean gastar en software de productividad tradicional y desean poder compartir documentos. Pero, una vez más, eso es ASP para mí. Nada más que aplicaciones ofrecidas vía la web. No es un modelo nuevo ni innovador. Es una excelente implementación de un modelo ya existente. Para mí, tampoco merece la medalla de "cloud".

Microsoft Azure permite a programadores crear sus aplicaciones en Visual Studio y SQL Server y colocarla en los servidores de Microsoft. Si eres un desarrollador en Microsoft, pienso que es una forma excelente de implementar aplicaciones. Aún así, sigue siendo "hosting" para mí. Me da una base de datos, espacio en web y almacenamiento de código. Por qué no se llama simplemente "hosting"?

Y en ese sentido, las propuestas de Oracle, IBM, HP y la mayoría de líderes del mercado no es muy diferente.

Quiero insistir: Dichos servicios NO SON servicios sin valor. Creo que es excelente que dichos servicios existan y se desarrollen. Creo que es excelente tenerlos disponibles. Pero, para mí, si "la nube" supone definir un nuevo paradigma, no podemos simplemente "recalentar un plato frío".

Qué esperaría yo de algo llamado la "Nube Real"? Primero, trataría de heredar lo más posible del NCA. La estación de trabajo debe ser lo más magra posible. En cierto sentido, el sistema operativo debería ser irrelevante. Las aplicaciones de la Nube Real deberían ser 100% agnósticas (tecnológicamente hablando).

Una plataforma de Nube Real debería incluir herramientas de desarrollo. Y dichas herramientas TAMBIEN deberían estar en la nube! No deberíamos dejar nada en el cliente. Así como prometemos el poder de usar aplicaciones en la nube, sin ningún tipo de software cliente instalado, deberíamos ser capaces de prometer la capacidad de CONSTRUIR aplicaciones en la nube. Aplicaciones reales, que podemos hacer disponibles en PCs, laptops, tablets y teléfonos sin esfuerzo y de un solo paso.

La Nube Real debería poder conversar con sistemas tradicionales. El mundo no es binario, no es "nube o nada". Las aplicaciones en la nube deberían ser capaces de comunicarse con mis sistemas actuales de forma comprensiva y completa.

Para lograr la Nube Real, debemos cambiar la forma cómo entendemos bases de datos y la forma cómo entendemos el desarrollo. Debemos matar los antiguos paradigmas, no porque estén errados, no porque son antiguos, sino porque ellos no nos podrán llevar al sueño de la Nube Real.

La Nube Real tiene el potencial de cambiar la computación tal como la conocemos. Y para mí, cambiar la computación como la conocemos tiene un nombre: Revolución.

No comments: