3 Bases de Datos NoSQL más populares para iniciarse en la Nube

El camino del Cloud por norma general se empieza en migraciones a plataformas de Infraestructura como Servicio (IaaS); en donde efectuamos un espéculo virtual de nuestra estructura física, sobre la que desplegamos nuestras aplicaciones.

El próximo paso llega cuando reconocemos que el auténtico valor y productividad de la Nube está en la Plataforma como Servicio (PaaS); y nos encaramos a nuevos desafíos en forma de la transformación y reconstrucción del software, en la busca de la inmejorable relación coste/beneficio.

Y una de las resoluciones iniciales que más impacto tiene, es adoptar el almacenaje de nuestra información en Bases de datos como Servicio, al elegir como vamos a emplear en nuestro software; siendo las soluciones NoSQL, un primer paso accesible, de notable sencillez, potente y de costo contenido.

¿Por qué razón convertir cara la sencillez?

La primera cosa que hay que tener claro es que la adopción de esta clase de servicio no es una “bala de plata” que sirva para todos y cada uno de los casos de empleo. Es más, las bases de datos relacionales de siempre, tiene ventajas y desventajas inherentes, estudiadas y reconocidas sobre esta clase de servicios de almacenaje.

No obstante, para aplicaciones que requieran una forma singularmente económica de guardar los datos, que se amolden a las peculiaridades de estos servicios WCS y que dejen mudar la lógica de persistencia – la capa de almacenamientos de datos – de manera sencilla para migrar a las API de conexión, pueden ser una solución con un ratio de eficacia genial.

La clave no es otra que la dificultad de la estructura de datos y de las operaciones relacionales que debamos efectuar sobre el conjunto de tablas.

Las 3 que vamos a examinar en el artículo, son del tipo Wide Column Store (WCS), herederas de este paper de BigTable, que define un almacenaje en tablas bidimensionales en donde las primeras columnas son los índices (entre una y 3 columnas) que identifican de forma indudable las filas horizontales que guardan los registros. Ahora, se define un número indeterminado de columnas en donde se edifica la estructura de campos de los registros, de forma absolutamente flexible, basado en un formato clave/valor.

Esta aproximación activa de la estructura de datos deja evolucionar y convertir la persistencia de la información, sin estar constreñida por las recias convenciones de los sistemas relacionales.

Asimismo son plataformas con un desempeño singularmente bueno, tanto en operaciones de lectura como de escritura, al tener un motor de base de datos sencillísimo, orientado a efectuar solo lo que se precisa (Catalogar, Introducir, Actualizar y Borrar), sin pesados lenguajes de explotación como es SQL, y eludiendo tener que dar soporte a comandos complejos como pueden ser JOIN, GROUP, ORDER, etcétera

Para resumir, son ligeras, fáciles y veloces. Y, siendo un servicio Cloud, nos dejan olvidarnos de administrar el escalado, la alta disponibilidad y la partición de datos; siendo la propia plataforma quien se hace cargo de asegurar unos pactos de servicios (SLA) de más del noventa y nueve y noventa y nueve por ciento .

Las más fáciles, que no las menos potentes

En estos instantes, se está afianzando un monopolio tricefálico en las tecnologías Cloud, estando Amazon a la cabeza con una presencia en el mercado de prácticamente el cuarenta y siete por ciento , seguido desde muy de lejos por Microsoft Azure con el diez por ciento , y Google cerrando el club al estar rozando el cuatro por ciento .
El conjunto genérico perseguidor está encabezado por IBM y su SoftLayer, que consigue cerca de un tres por ciento ; completándose el sobrante treinta y seis por ciento con una miríada de pequeñas plataformas.

Apache Cassandra es la base de datos WCS que reina de forma incontrovertible en este segmento del mercado; mas no la hemos incluido en el análisis al no existir un servicio cloud que nos deje consumirla en formato PaaS.

No obstante, SimpleDB de Amazon, Azure Tables de Microsoft y Cloud BigTable de Google, sí que son servicios cloud de base de datos NoSQL, que representan el primer eslabón a la persistencia de información alén del almacenaje binario.

En la próxima tabla se puede observar la comparativa directa de los 3 servicios:

Descripción Microsoft Azure Table Storage Amazon SimpleDB Google Cloud Bigtable Modelo de base de datos Wide column store Wide column store Key-value store Desarrollador Microsoft Amazon Google Publicación inicial dos mil doce dos mil siete dos mil quince Esquema de datos Libre Libre Libre Tipos predefinidos Si no no Métodos de acceso RESTfull API RESTfull API gRPC (using protocol buffers) API
HBase compatible API (Java) Lenguajes soportados .Net (todos), C++, Java, JavaScript,
PHP, Python, Ruby .Net (todos), C, C++, Erlang, Java, PHP, Python, Ruby, Scala Go, Java Procedimiento de particionado Sharding Sharding ninguno Consistencia Immediate Consistency Ocasional Consistency
Immediate Consistency Immediate Consistency Transacciones Bloqueo optimísitico no Operaciones atómicas en un registro Control de acceso Derechos de acceso basados en permisos sobre le servicio, autentificación por clave privada y firmas compartidas Derechos de acceso vía AWS Identity and Access Management (IAM) no Popularidad Puesto sesenta y seis Puesto noventa y uno Puesto ciento cincuenta y nueve Hay que apuntar que SimpleDB no es verdaderamente una BD de tipo WCS, sino más bien Key-value Store. Su funcionamiento es casi igual que las del resto de la comparativa, teniendo su primordial diferencia en que no está desarrollada para grandes volúmenes de información, tal y como si lo están sus contendientes.

No obstante, la hemos incluido en la comparativa pues Amazon no tiene un servicio WCS, y DynamoDB – que si se puede usar de este modo – se clasifica en un nivel superior de dificultad en donde estaría acompañada por CosmosDB o bien afines.

Las 3 magníficas

Usando las propias páginas para de cálculo de costos de las 3 plataformas Cloud, nos hemos encontrado que los costos son dispares para configuraciones similares: noviembre del dos mil diecisiete, 1Tb. de almacenaje, en los CPD de Irlanda, con la réplica geográfica por defecto.

Amazon SimpleDB: doscientos ochenta y uno dólares americanos /mes
Google BigTable: ciento setenta y cuatro dólares americanos /mes
Azure Tables: setenta y cinco dólares americanos /mes
Mas estos costes hay que cogerlos de manera cuidadosa, por el hecho de que hay establecida una guerra sostenida que deja que haya una alteración incesante (a la baja) de los mismos; que cada calculadora pide datos diferentes para efectuar la previsión de costes; y que los tramos hasta el primer Giga, son gratis en las 3 Nubes.

Efectivamente no serán causas objetivas basadas en métricas de desempeño o bien de volumetrías múltiples las que nos deberían hacer decantarnos por alguna de estas 3 espléndidas plataformas.

Son verdaderamente veloces tanto en operaciones de escritura como de lectura, tienen una capacidad de almacenaje que solo tiene como límite nuestro presupuesto, y la disponibilidad, estabilidad y resiliencia están aseguradas por las Condiciones del Servicio.

Por lo que cobran relevancia factores menos evidentes, como puede ser el conocimiento que tengamos del Cloud que lo aguanta. Por servirnos de un ejemplo, si el equipo de desarrollo está acostumbrado a ambientes Microsoft, va a tender a usar Azure y las Tables Storage; en cambio, si la aplicación marcha sobre AWS, lo normal sería decantarse por SimpleDB de Amazon; y elegiríamos Google si nuestro lenguaje primordial de trabajo fuera Go.

Ranking de popularidad

Si quizás apuntar como ventaja o bien desventaja, conforme el caso, el que BigTable de Google utilice una Api de acceso propia, no tan famosa como la universal API RESTfull de Microsoft y Amazon.

La documentación en todos y cada uno de los casos es genial y muy rebosante en todas y cada una de las Cloud, yendo un pasito por delante la de Microsoft – que hace un esmero hercúleo por solucionar el que era su punto enclenque hace unos años.

Amazon ofrece, no obstante, el servicio más longevo y – por consiguiente – más maduro y conocido. Hay que reconocer que llevarle más de una década de ventaja a sus contendientes da una seguridad y estabilidad que no se deben olvidar.

Google, a favor suyo debe el servicio de Bigtable es usado de forma interna en plataformas tan exigentes como Analytics, Maps, Gmail, etcétera confirmando que cumple con las peculiaridades aguardadas.

Resumiendo, para seleccionar entre Tables, SimpleDB o bien Bigtable, lo que se ha de hacer es mirar alrededor: qué sabemos hacer, con qué se debe integrar y qué plataforma Cloud es la que mejor deseamos trabajar.

Cualquiera de las 3 es genial.

Pero información | Comparativa en DB-Engines; Azure Tables Storage, Amazon SimpleDB, Google Bigtable