Bases de datos en la nube: ¿Azure Tables ó SQL Azure?
Al montar aplicaciones en la nube utilizando Windows Azure, es necesario escoger un método de almacenamiento de datos. Windows Azure ofrece dos opciones: utilizar SQL Azure, o las opciones de Azure Storage (Blobs, Message Queues, Tables y Drives). ¿Cuál deberías elegir? Eso depende de tus necesidades.
SQL Azure, básicamente, provee la funcionalidad de SQL Server en un entorno de nube. Es un modelo relacional: necesitas un conjunto de datos coherentes, y toda la información relacionada se modifica de manera conjunta, al insertar nuevos datos. La capa de acceso a datos, es similar a la de las aplicaciones no online con SQL. Una de sus ventajas es la alta disponibilidad. Otra, su facilidad de adopción para quienes vienen trabajando con SQL Server.
Azure Tables ofrece, en cambio, un conjunto de datos estructurados (entidades en serie) pero no relacionales (NoSQL), es decir, no es posible la relación entre una tabla y otra. La gran ventaja de utilizar Azure Tables es la escalabilidad. SQL Azure tiene un límite de 50GB que las tablas no. Además, las tablas permiten particiones, y permite transacciones dentro de cada tabla y de cada partición (no entre particiones).
Un ejemplo concreto en el que se decidió utilizar Azure Tables es el caso de Three Melons, en el cual se desarrolló un juego de fútbol online –Bola– para redes sociales, utilizando Windows Azure. La necesidad concreta por la cual se decidieron por una solución en la nube, fue evitar la complejidad y el costo de montar la infraestructura tecnológica, contando a la vez con la escalabilidad necesaria para acompañar la demanda –al tratarse de un juego online, se ha llegado a picos de 1300 requests por minuto (más de un millón de usuarios diarios), mientras que en otros momentos se reducía el número significativamente–. Windows Azure permitió mantener los costos al pagar según uso, sin pérdidas de rendimiento. La utilización de Azure Tables posibilita un almacenamiento de datos escalable y de alta disponibilidad, con administración automatizada y garantiza redundancia y la disponibilidad requerida. Además, opera con una gran velocidad, y es fácilmente accesible a través de una API por medio de la interfaz REST.
En resumen, la utilización de cada opción para el almacenamiento de datos en la nube, depende del volumen de datos, el número de usuarios y el tipo de transacción que necesites realizar. Si tu proyecto requiere consistencia absoluta de datos, el camino es SQL Azure; si en cambio lo más importante es un alto grado de escalabilidad, Azure Tables es una buena respuesta. En el TechCenter de la Nube puedes encontrar muchas guías que te orientarán en temas como la implementación de aplicaciones preparadas para demandas en ráfagas con Windows Azure, o la creación y administración de bases de datos empresariales con SQL Azure. Recuerda visitarlo periódicamente para encontrar más recursos.