El escenario de las Bases de Datos de Nube

No me queda ninguna duda que el movimiento de Software-as-a-Service (SaaS) ha llegado para quedarse. Dicho de otro modo, que las aplicaciones en la Nube será el nuevo modelo de entrega de aplicaciones tanto de servicios de consumidor (a la manera de Facebook o Gmail) como de sistemas empresariales (a la manera de Salesforce.com). Lógicamente aún falta mucho por hacer y resolver para que todo esto se haga completa realidad en el ambiente empresarial. En particular, los temas de seguridad y accesibilidad (y velocidad) a la red son los principales problemas, al menos en Latinoamérica; aunque en ambos casos son cada día mejores los avances y menores las preocupaciones.

¿Y qué está pasando con el almacenamiento de datos? Mucha oferta e incertidumbre. Pues sí, aún se mantienen modelos y productos de bases datos sólidos y muy probados. MySQL sigue teniendo mucha “momentum” entre los developers como primera opción para el almacenamiento de los datos de sus aplicaciones. Sin embargo, cuando se habla de aplicaciones de Nube éstas deben ir de la mano de productos de bases de datos de Nube (DBaaS, por Database as a Service), que resuelvan principalmente los temas de elasticidad y escalabilidad. ¿Soluciones? Bien, pues básicamente tenemos dos enfoques: SQL y NoSQL. En este post abordaremos las alternativas basadas en el modelo relacional (SQL) y dejaremos para un post posterior el tema interesantísimo de las bases de datos clasificadas como NoSQL.

Importante mencionar que el modelo SQL está mejor orientado a aplicaciones empresariales internas cuyo modelo de datos es más estructurado; tales como las aplicaciones de procesos de negocios: ERP, SCM, CRM, etc. En cambio NoSQL está más asociado con el almacenamiento de datos externos a la empresa, más de tipo social o de analítica de datos externos. Es decir, donde el almacenamiento de información no tiene una estructura tan clara: datos Facebook, aplicaciones integradas a redes sociales o servicios móviles, almacenamiento de servicios de Nube al consumidor y/o de analítica de datos, almacenamiento de documentos JSON, etc. Claro; esto es solo una generalización porque la solución óptima dependerá de cada caso específico.

Bueno, como decíamos, MySQL sigue estando en un lugar de privilegio. Específicamente en cuanto a productos que le dan a MySQL las características de Nube, tenemos tres principales: Amazon RDS, Xeround y ClearDB. Todas ellas promocionadas como el MySQL para la Nube por lo que tienen la ventaja de un modelo probado y conocido pero con características de Nube. Otra buena alternativa desde un producto conocido es la solución provista por Heroku para la base de datos PostgreSQL. Bajo esta se provee de una base de datos PostgreSQL pero con el modelo Nube. Así que los developers que se han visto más cómodos desarrollando en Postgres que en MySQL pueden también hacer uso ya de características propias de Nube utilizando el servicio de Heroku.

También, como comenté en un post anterior, Database.com se presenta como el nuevo modelo de bases de datos para la Nube. Ofrece elasticidad y escalabilidad transparente así como una serie de herramientas para el Developer enfocadas en el desarrollo de servicios de Nube, móviles y sociales. Desventaja importante: no la puedes bajar e instalar en un ambiente local. Aunque esto último no es estrictamente necesario, ni siquiera recomendable en un ambiente de producción Nube, sí resulta conveniente para el Developer en ciertos contextos de desarrollo.

Además, existe un buen número de bases de datos relacionales que ofrecen características de escalabilidad y desempeño. La más interesante de todas es quizá VoltDB, del gurú de bases de datos Mike Stonebraker. Sin embargo, desde mi percepción resulta desventajoso que aún no tenga versión Nube 100% sino que aún maneja únicamente el modelo descargue-instale-use.

¿Qué hacer? Bueno, a diferencia de mis primeras opiniones positivas respecto al uso de Database.com, creo que esta base de datos es la mejor opción únicamente si tu aplicación estará instalado en la plataforma Force.com ó si tendrá interacción fuerte con esta. Particularmente si tienes servicios integrados con Salesforce. De lo contrario, veo desventajoso utilizar una base propietaria que no pueda ser transferida a otros contextos.

Me parece entonces que si eres un developer MySQL, lo mejor será utilizar alguna de las opciones de Nube. En mi opinión Xeround parece tener la mejor oferta técnica aunque habría que analizar con mayor profundidad si ClearDB o Amazon RDS están al mismo nivel. Y sólo recomendaría PostgreSQL si tu aplicación Nube está operando en Heroku. En este caso, lo mejor sería dejar un ambiente compacto completo en Heroku que es la plataforma que tiene una de las ofertas técnicas más sólidas en cuanto a PostgreSQL para la Nube (existen otras como EnterpriseDB, por ejemplo).

Sólo a manera de contexto sobre lo que estamos hablando, aquí un par de videos con un “vis a vis” de Database.com y Xeround (MySQL on the Cloud) :

Difícil, ¿eh? Y esto sólo tomando en cuenta el modelo relacional. Aún falta el modelo NoSQL que es todo un mundo complejo e interesante para el uso de almacenamiento de servicios Nube. En otro post abordaremos este tema.

, , , , , ,

  1. El mundo de las bases de datos NoSQL « Cloud.Mobile.Social

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: