fbpx

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

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


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


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.


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.

Fuente: genbetadev.com

Escriba una respuesta

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies