¿Qué es la escalabilidad de una base de datos?
Esta página le ayudará a comprender mejor la escalabilidad de las bases de datos:
- Escalado horizontal frente a vertical
- Retos de escalabilidad de las bases de datos
- Cómo mejorar la escalabilidad de las bases de datos
- Escalabilidad de las bases de datos NoSQL frente a las relacionales
- Conclusión
¿Qué es la escalabilidad de una base de datos? La escalabilidad de una base de datos no es sólo su capacidad para soportar más carga, sino también para mejorar su rendimiento a medida que aumentan las exigencias de la aplicación. Tenga en cuenta que la escalabilidad no sólo significa aumentar los recursos para satisfacer una mayor demanda, sino también reducirlos si la demanda disminuye.
Los fallos de escalado de una base de datos tienen tres consecuencias típicas: Sobrecarga de CPU/memoria, almacenamiento que alcanza su capacidad y sobrecarga de la red que reduce el tráfico de datos. Cualquiera de estos problemas, o una combinación de ellos, puede hacer caer tu aplicación y afectar gravemente a tu negocio.
Esta página cubre dos tipos de escalabilidad, los retos de cada uno y las soluciones recomendadas para superar esos retos. Por último, compara las bases de datos NoSQL y relacionales en el contexto de la escalabilidad y muestra por qué Couchbase es la mejor opción para la escalabilidad.
Escalado horizontal frente a vertical
Hay dos formas de que una base de datos mejore su disponibilidad y comportamiento cuando se demandan más recursos: el escalado vertical y el escalado horizontal.
¿Qué es la escala horizontal?
El escalado horizontal, mejor habilitado en los sistemas no relacionales, se refiere a la adición de más nodos para compartir un aumento de la carga. Estos nodos forman parte de un cluster que puede repartirse entre varios servidores, y los datos pueden conectarse mediante joins. El escalado horizontal también se conoce como scaling out.
¿Qué es la escala vertical?
El escalado vertical consiste en añadir más recursos físicos o virtuales a una base de datos que se ejecuta en un único servidor. Esto puede lograrse añadiendo más potencia de CPU, memoria o capacidad de almacenamiento. El escalado vertical también se conoce como escalado ascendente.
¿Qué es mejor, la escala horizontal o la vertical?
El tipo de escalado que debe elegir depende de su aplicación y de los retos concretos que tenga que superar. Factores a tener en cuenta:
- El escalado vertical es una buena primera opción cuando no se necesita un salto masivo en la escala y se desea minimizar los cambios en el sistema general más allá de los cambios en los recursos informáticos.
- El escalado vertical puede requerir tiempo de inactividad si cambia de máquina para obtener más recursos.
- En última instancia, a medida que aumentan los recursos informáticos, puede resultar más caro ampliar y mantener la base de datos mediante el escalado vertical.
Cuando te encuentres con estos problemas, o si quieres preparar tu sistema para diferentes escenarios de crecimiento, el escalado horizontal es el camino a seguir.
- El escalado horizontal puede mejorar la tolerancia a fallos y la disponibilidad porque reduce el impacto del fallo de un único servidor.
- El escalado horizontal puede requerir cambios en la arquitectura y en el código de su aplicación, aunque el impacto se ve mitigado por bases de datos modernas como Couchbase, que ofrecen capacidades de autoescalado.
Retos de escalabilidad de las bases de datos
Escalar una base de datos puede ser complicado, y los retos a los que se enfrente dependerán de varios factores. El primer reto puede ser que tenga una aplicación heredada que se ejecuta en una base de datos relacional. En este caso, tiene que elegir entre dedicarle más recursos físicos o virtuales o rediseñar su aplicación para que se ejecute en una base de datos que admita el escalado horizontal.
Otro reto del escalado de las aplicaciones modernas es la gestión de los costes en función de las distintas cargas. No se quiere pagar el mismo precio por los recursos informáticos en momentos de poco uso y de mucho uso. Quiere que sus costes se ajusten a su demanda.
Un tercer reto es que las bases de datos escaladas horizontalmente pueden ser más complicadas de mantener y gestionar. Couchbase Capella™ es una solución ideal en este caso porque se trata de una base de datos como servicio (DBaaS) totalmente gestionada que admite replicación y fragmentación, así como escalado multidimensional.
Cómo mejorar la escalabilidad de las bases de datos
Puede mejorar el escalado horizontal soportando tanto la replicación como la fragmentación.
Replicación
La replicación es una forma de escalado que crea copias de una base de datos o nodos de base de datos. Si un nodo se cae, se puede recuperar una copia de sus datos desde un nodo diferente. Otra ventaja de la replicación es que las peticiones pueden llegar a diferentes nodos en distintas ubicaciones, disminuyendo así la carga de cualquier nodo en particular.
Algunos componentes clave de Couchbase se basan en una topología de replicación maestro-maestro en la que múltiples instancias de Couchbase pueden actuar como nodos maestros y replicar datos entre sí:
- Couchbase utiliza flujos de replicación para replicar datos entre nodos. Un flujo de replicación es un flujo bidireccional continuo de datos entre dos nodos.
- Couchbase almacena los datos en cubosque son contenedores lógicos que agrupan datos relacionados. Cada cubo puede configurarse para replicar sus datos en uno o varios nodos.
- Replicación entre centros de datos (XDCR) es una característica de Couchbase que permite la replicación entre centros de datos. XDCR permite la replicación entre clústeres de Couchbase, que pueden estar ubicados en diferentes regiones o zonas de disponibilidad.
- En una topología de replicación maestro-maestro, pueden producirse conflictos cuando varios nodos actualizan el mismo dato simultáneamente. Couchbase tiene un mecanismo de resolución de conflictos que se basa en las versiones de los documentos y las marcas de tiempo para resolver los conflictos.
Fragmentación
La fragmentación, también conocida como partición, también se basa en el principio de mover datos entre varios nodos. A diferencia de la replicación, la fragmentación consiste en dividir los datos en lugar de hacer copias. Fragmentación de bases de datos divide todo el conjunto de datos en múltiples grupos conocidos como shards. Una vez dividido, cada fragmento puede almacenarse de forma independiente, normalmente en varios servidores que suelen denominarse clúster. Se puede acceder a cada fragmento de forma independiente, lo que significa que se puede acceder a los datos más rápidamente y disponer de más recursos de procesamiento, computación y almacenamiento.
La fragmentación permite un rendimiento más rápido, pero también introduce una mayor complejidad. Esta complejidad incluye el concepto de reequilibrio, que implica mover datos entre fragmentos a lo largo del tiempo para mantenerlos distribuidos de manera uniforme.
Para más información, consulte esta guía sobre sharding en Couchbase.
Escalabilidad de las bases de datos NoSQL frente a las relacionales
Las bases de datos NoSQL son intrínsecamente más escalables que las bases de datos relacionales porque se pueden escalar tanto vertical como horizontalmente. Además, cuentan con una arquitectura distribuida diseñada para gestionar grandes volúmenes de datos en varios servidores.
Los sistemas tradicionales de gestión de bases de datos relacionales (RDBMS), como Oracle, se centran más en la consistencia que en la disponibilidad. Por el contrario, las bases de datos NoSQL priman la disponibilidad sobre la consistencia y se centran más en soportar mayores volúmenes de usuarios y datos. Además, la distribución de datos es más tolerante a fallos si algunos nodos se caen.
Conclusión
Para ir un paso por delante de sus demandas de escalado, realice pruebas de carga periódicas y elija una base de datos que admita el método de escalado que mejor se adapte a su aplicación y a sus necesidades empresariales. Tenga en cuenta que tanto el escalado horizontal como el vertical requieren compromisos, como elegir el coste frente a la complejidad o el tiempo de actividad frente a la coherencia.
Utilice estos recursos para obtener más información sobre el escalado de bases de datos con Couchbase:
- Escalado multidimensional de bases de datos - detalles sobre los servicios Couchbase, reequilibrio, estados, eventos y trabajos
- ¿Por qué elegir una base de datos NoSQL? - qué es NoSQL, cómo funciona y para qué sirven las bases de datos NoSQL
- Bases de datos sin servidor - ventajas para los desarrolladores, persistencia de datos para las aplicaciones y aplicaciones compatibles.
- Couchbase Capella DBaaS - la forma más fácil y rápida de empezar con Couchbase y eliminar la gestión de bases de datos