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

3 Bases de Datos NoSQL más populares para iniciarse en la Nube
Sin comentarios Facebook Twitter Flipboard E-mail

El camino del Cloud generalmente se inicia en migraciones a plataformas de Infraestructura como Servicio (IaaS); en donde realizamos un espejo virtual de nuestra estructura física, sobre la que desplegamos nuestras aplicaciones.

El siguiente paso llega cuando reconocemos que el verdadero valor y productividad de la Nube está en la Plataforma como Servicio (PaaS); y nos enfrentamos a nuevos retos en forma de la transformación y reconstrucción del software, en la búsqueda de la óptima relación coste/beneficio.

Y una de las decisiones iniciales que más impacto tiene, es adoptar el almacenamiento de nuestra información en Bases de datos como Servicio, al seleccionar cual vamos a utilizar en nuestro software; siendo las soluciones NoSQL, un primer paso asequible, de notable sencillez, potente y de coste contenido.

¿Por qué transformar hacia la sencillez?

Lo primero que hay que tener claro es que la adopción de este tipo de servicio no es una “bala de plata” que valga para todos los casos de uso. Es más, las bases de datos relacionales de toda la vida, tiene ventajas y desventajas inherentes, estudiadas y reconocidas sobre este tipo de servicios de almacenamiento.

Sin embargo, para aplicaciones que requieran una forma especialmente económica de almacenar los datos, que se adapten a las características de estos servicios WCS y que permitan cambiar la lógica de persistencia – la capa de almacenamientos de datos – de forma sencilla para migrar a las API de conexión, pueden ser una solución con un ratio de eficiencia excelente.

La clave está en la complejidad de la estructura de datos y de las operaciones relacionales que tengamos que realizar sobre el conjunto de tablas.

Las tres que vamos a analizar en este artículo, son del tipo Wide Column Store (WCS), herederas de este paper de BigTable, que define un almacenamiento en tablas bidimensionales en donde las primeras columnas son los índices (entre una y tres columnas) que identifican de forma inequívoca las filas horizontales que almacenan los registros. A continuación, se define un número indeterminado de columnas en donde se construye la estructura de campos de los registros, de forma totalmente flexible, basado en un formato clave/valor.

Esta aproximación dinámica de la estructura de datos permite evolucionar y transformar la persistencia de la información, sin estar constreñida por las rígidas convenciones de los sistemas relacionales.

También son plataformas con un rendimiento especialmente bueno, tanto en operaciones de lectura como de escritura, al tener un motor de base de datos muy sencillo, orientado a realizar solo lo que se necesita (Listar, Insertar, Actualizar y Borrar), sin pesados lenguajes de explotación como es SQL, y evitando tener que dar soporte a comandos complejos como pueden ser JOIN, GROUP, ORDER, etc.

En resumen, son ligeras, sencillas y rápidas. Y, al ser un servicio Cloud, nos permiten olvidarnos de gestionar el escalado, la alta disponibilidad y la partición de datos; siendo la propia plataforma quien se encarga de asegurar unos acuerdos de servicios (SLA) de más del 99.99%.

Las más sencillas, que no las menos potentes

Public Cloud Market Blog Image 2 640x413

En estos momentos, se está consolidando un monopolio tricefálico en las tecnologías Cloud, estando Amazon en cabeza con una presencia en el mercado de casi el 47%, seguido desde muy de lejos por Microsoft Azure con el 10%, y Google cerrando el club al estar rozando el 4%. El grupo genérico perseguidor está encabezado por IBM y su SoftLayer, que obtiene cerca de un 3%; completándose el restante 36% con una miríada de pequeñas plataformas.

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

Sin embargo, 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 más allá del almacenamiento binario.

En la siguiente tabla se puede observar la comparativa directa de los tres 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

2012

2007

2015

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

Método de particionado

Sharding Sharding ninguno

Consistencia

Immediate Consistency

Eventual 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, autenticación por clave privada y firmas compartidas

Derechos de acceso vía AWS Identity and Access Management (IAM)

no

Popularidad

Puesto 66

Puesto 91

Puesto 159

Hay que señalar que SimpleDB no es realmente una BD de tipo WCS, sino Key-value Store. Su funcionamiento es prácticamente igual que las del resto de la comparativa, teniendo su principal diferencia en que no está diseñada para grandes volúmenes de información, como si lo están sus contrincantes.

Sin embargo, la hemos incluido en la comparativa porque Amazon no tiene un servicio WCS, y DynamoDB - que si se puede utilizar de esta forma - se clasifica dentro de un nivel superior de complejidad en donde estaría acompañada por CosmosDB o similares.

Las tres magníficas

Las Tres Magnificas

Utilizando las propias páginas para de cálculo de precios de las tres plataformas Cloud, nos hemos encontrado que los costes son dispares para configuraciones similares: noviembre del 2017, 1Tb. de almacenamiento, en los CPD de Irlanda, con la réplica geográfica por defecto.

  • Amazon SimpleDB: 281$/mes
  • Google BigTable: 174$/mes
  • Azure Tables: 75$/mes

Pero estos precios hay que cogerlos con cuidado, porque hay establecida una guerra sostenida que permite que haya una variación constante (a la baja) de los mismos; que cada calculadora solicita datos diferentes para realizar la previsión de costes; y que los tramos hasta el primer Gigabyte, son gratuitos en las tres Nubes.

Ciertamente no van a ser causas objetivas basadas en métricas de rendimiento o de volumetrías varias las que nos deberían hacer decantarnos por alguna de estas tres magníficas plataformas.

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

Por lo cual cobran importancia factores menos obvios, como puede ser el conocimiento que tengamos del Cloud que lo soporta. Por ejemplo, si el equipo de desarrollo está habituado a entornos Microsoft, va a tender a utilizar Azure y las Tables Storage; en cambio, si la aplicación funciona sobre AWS, lo normal sería decantarse por SimpleDB de Amazon; y escogeríamos Google si nuestro lenguaje principal de trabajo fuese Go.

Ranking
Ranking de popularidad

Si acaso señalar como ventaja o desventaja, según el caso, el que BigTable de Google utilice una Api de acceso propia, no tan conocida como la universal API RESTfull de Microsoft y Amazon.

La documentación en todos los casos es excelente y muy abundante en todas las Cloud, yendo un pasito por delante la de Microsoft – que está haciendo un esfuerzo hercúleo por solventar el que era su punto débil hace unos años.

Amazon ofrece, sin embargo, el servicio más longevo y – por ende – más maduro y conocido. Hay que reconocer que llevarle más de una década de ventaja a sus competidores proporciona una seguridad y estabilidad que no se deben olvidar.

Google, a su favor tiene que el servicio de Bigtable es utilizado de forma interna en plataformas tan exigentes como Analytics, Maps, Gmail, etc. confirmando que cumple con las características esperadas.

En resumen, para escoger entre Tables, SimpleDB o Bigtable, lo que hay que hacer es mirar alrededor: qué es lo que sabemos hacer, con qué se tiene que integrar y qué plataforma Cloud es la que mejor queremos trabajar.

Cualquiera de las tres es excelente.

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

Comentarios cerrados
Inicio