Como cualquier otra tecnología, las bases de datos sin servidor (Serverless) pueden ser desaprovechadas, anulando sus ventajas.
Por Martín Heller | Original de IDGN
Quizás sea la elasticidad y flexibilidad de la tecnología a las bases de datos sin servidores (Serverless) pero, al igual de lo que pasa con otras herramientas tipo nube, el desconocimiento, la impericia y el nsaber qué tipo de contratación nos conviene más son inconvenientes que pueden (y seguramente) pensarán en nuestra contra.
Cómo todos los procesos de aprendizaje en tecnologías intangibles, las bases de datos serverless demandan que contemos con socios tecnológicos confiables que nos proporcionen la mejor relación precio-valor por nuestra inversión.
La mejor forma de aprovecharlas es teniendo en claro aquellos casos de uso en los que son de más utilidad.
Veamos.
¿Cuándo las bases de datos sin servidor son sub óptimas?
Los casos de uso recomendados para bases de datos sin servidor son:
- Cargas de trabajo variables
- Cargas de trabajo impredecibles
- Administración de flotas de bases de datos empresariales
- Aplicaciones de software como servicio
- Y bases de datos escaladas divididas en varios servidores
Las bases de datos que tienen cargas constantes y predecibles se manejan mejor con implementaciones de servidores tradicionales.
Incluso las bases de datos que están ocupadas los días de semana y están inactivas los fines de semana y días festivos suelen manejarse mejor con servidores en lugar de sin servidor, con la condición de que los apague todos los fines de semana y días festivos.
Deberá hacer la aritmética para estar seguro, pero puede usar las tablas de precios y sus patrones de uso para determinar qué enfoque será más rentable.
Ejemplos de bases de datos sin servidor
Las siguientes nueve bases de datos sin servidor están disponibles.
Un décimo, MongoDB Atlas, ofrece instancias sin servidor en una vista previa.
No sería sorprendente que otros proveedores de bases de datos con versiones en la nube, como Oracle, agreguen versiones sin servidor en algún momento en el futuro.
1.- Amazon Aurora sin servidor
Amazon Aurora Serverless v2, actualmente en versión preliminar, escala instantáneamente de cientos a cientos de miles de transacciones en una fracción de segundo.
A medida que escala, ajusta la capacidad en incrementos detallados para proporcionar la cantidad justa de recursos de base de datos que necesita la aplicación.
No hay capacidad de base de datos para administrar y solo paga por la capacidad que consume su aplicación.
Amazon afirma que puede ahorrar hasta un 90% del costo de su base de datos en comparación con el costo de aprovisionar capacidad para la carga máxima. Amazon Aurora Serverless v2 es compatible con MySQL.
2.- Amazon DynamoDB
Amazon DynamoDB es una base de datos NoSQL de valor clave, sin servidor y completamente administrada, diseñada para ejecutar aplicaciones de alto rendimiento a cualquier escala.
DynamoDB ofrece:
- Seguridad integrada
- Copias de seguridad continuas
- Replicación automatizada de varias regiones
- Almacenamiento en caché en memoria
- Y herramientas de exportación de datos.
3.- Azure SQL Database sin servidor
Esta serverless es un nivel de proceso para bases de datos individuales en Azure SQL Database, el cual escala automáticamente el proceso en función de la demanda de la carga de trabajo y factura la cantidad de proceso utilizado por segundo.
El nivel de cómputo sin servidor también detiene automáticamente las bases de datos durante los períodos inactivos cuando solo se factura el almacenamiento y reanuda automáticamente las bases de datos cuando regresa la actividad. Azure SQL Database Serverless es una versión de Microsoft SQL Server.
4.- Azure Synapse sin servidor
Azure Synapse Serverless le permite usar T-SQL para consultar datos de su lago de datos en Azure en lugar de aprovisionar recursos con anticipación.
Solo paga por las consultas ejecutadas y el precio se basa en la cantidad de datos procesados por cada consulta.
5.- CockroachDB sin servidor
CockroachDB Serverless es una opción siempre gratuita, actualmente en versión beta, en la nube de Cockroach Labs compatible con PostgreSQL.
Puede usar clústeres de alta disponibilidad en AWS o Google Cloud en una configuración de múltiples inquilinos.
Los límites de uso gratuito son 250 millones de unidades de solicitud al mes y 5 GB de almacenamiento.
Más allá de eso, los cargos son de US$1 por 1 GiB por mes y US$1 por 10 millones de RU por mes.
6.- Fauna
Fauna es una base de datos transaccional flexible y fácil de usar que se entrega como una API en la nube segura y escalable sin servidor con GraphQL nativo.
Fauna combina la flexibilidad de los sistemas NoSQL con las capacidades transaccionales y de consultas relacionales de las bases de datos SQL. Fauna admite tanto Fauna Query Language como GraphQL.
7.- Google Firebase
Cloud Firestore es una base de datos NoSQL sin servidor orientada a documentos que forma parte de Google Firebase.
A diferencia de una base de datos SQL, Cloud Firestore no tiene tablas ni filas. En su lugar, almacena datos en documentos que se organizan en colecciones. Cada documento contiene un conjunto de pares clave-valor.
Cloud Firestore está optimizado para almacenar grandes colecciones de documentos pequeños. Todos los documentos deben almacenarse en colecciones.
Los documentos pueden contener subcolecciones y objetos anidados, los cuales pueden incluir campos primitivos como cadenas u objetos complejos como listas.
8.- PlanetaEscala
PlanetScale es una plataforma de base de datos sin servidor compatible con MySQL con tecnología de Vitess.
Vitess es un sistema de agrupación de bases de datos para el escalado horizontal de MySQL (así como Percona y MariaDB). Vitess también impulsa Slack, Square, GitHub, YouTube y más.
9.- Redis Enterprise Cloud
Redis Enterprise Cloud es una base de datos en memoria, sin servidor y totalmente administrada que se ejecuta en:
- AWS
- Azure
- Y Google Cloud
Los módulos empresariales pueden ampliar Redis desde un simple almacén de estructura de datos y clave-valor para admitir muchos modelos y funciones de datos incluidos:
- Búsqueda
- Gráfico
- JSON
- Series temporales
- IA
Redis Enterprise vuelve a fragmentar y reequilibrar automáticamente mientras mantiene una baja latencia y un alto rendimiento para las cargas transaccionales.
Redis on Flash, una característica de Redis Enterprise, puede colocar datos calientes a los que se accede con frecuencia en la memoria y valores más fríos en Flash o memoria persistente, como Intel Optane DC.
Como hemos visto, las bases de datos sin servidor ofrecen almacenamiento y recuperación de datos altamente escalables y basados en la nube sin necesidad de proporcionar CPU o almacenamiento con anticipación.
Todas las bases de datos sin servidor ofrecen un modelo de pago por uso, y algunas son gratuitas para bases de datos pequeñas con velocidad de ráfaga limitada.