Omitir navegación

Escalado vertical frente a escalado horizontal

Introducción a la escalabilidad de las bases de datos en la informática en la nube

Datos, datos por todas partes: de qué hablamos cuando hablamos de escalabilidad

Escalabilidad en la informática en la nube es la capacidad de aumentar o disminuir rápida y fácilmente el tamaño o la capacidad de una solución o un recurso de TI. Aunque el término “escalabilidad” puede hacer referencia a la capacidad de cualquier sistema para controlar una cantidad creciente de trabajo, cuando se habla de escalar vertical u horizontalmente, suele ser en referencia a bases de datos y grandes cantidades de datos.

La escalabilidad de las bases de datos es una prioridad para los desarrolladores de aplicaciones actuales. Imaginemos que surge una nueva aplicación cuya demanda aumenta de unos cuantos usuarios a millones de usuarios en todo el mundo. Una de las capacidades más importantes para ayudar a los desarrolladores de aplicaciones a seguir el ritmo de la demanda y minimizar el tiempo de inactividad es una capacidad de escalado eficaz.

Esta conversación sobre el escalado horizontal frente al escalado vertical se centra en las formas en las que la escalabilidad nos ayuda a adaptar y controlar el gran volumen y la gran variedad de datos, los volúmenes variables de los datos y los patrones cambiantes de las cargas de trabajo, todos generados en la nube, los dispositivos móviles, las redes sociales y los macrodatos.

Escalado horizontal frente a escalado vertical

En el nivel más básico, la escalabilidad de las bases de datos se puede dividir en dos tipos:

Escalado o reducción vertical, donde se aumenta o reduce la capacidad de proceso o las bases de datos según la necesidad, ya sea cambiando los niveles de rendimiento o usando grupos de bases de datos elásticas para ajustar automáticamente la capacidad a la demanda de la carga de trabajo.

Escalado o reducción horizontal, donde se agregan más bases de datos o se divide una base de datos de gran tamaño en nodos más pequeños, mediante la creación de particiones de datos (sharding), que se pueden administrar de una forma más rápida y sencilla en varios servidores.

Escalado vertical

El escalado vertical se usa cuando es necesario reaccionar rápidamente para corregir un problema de rendimiento que no se puede resolver con las técnicas de optimización de bases de datos clásicas, como los cambios en las consultas o la indexación. El escalado vertical es útil para controlar los picos de actividad de las cargas de trabajo donde el nivel de rendimiento actual no puede satisfacer toda la demanda. El escalado vertical permite agregar más recursos para controlar fácilmente las cargas de trabajo máximas. Después, cuando los recursos ya no son necesarios, el escalado vertical permite volver al estado original y ahorrar costos en la nube.

Utilice el escalado vertical en las siguientes situaciones:

  • Ve que las cargas de trabajo están alcanzando algún límite de rendimiento, como los límites de CPU o E/S.
  • Debe reaccionar rápidamente para corregir problemas de rendimiento que no se pueden resolver con la optimización clásica de las bases de datos.
  • Necesita una solución que le permita cambiar los niveles de servicio para adaptarla a requisitos de latencia cambiantes.

Escalado horizontal

Los desarrolladores de aplicaciones empiezan a plantearse el escalado horizontal cuando no pueden obtener suficientes recursos para las cargas de trabajo, incluso cuando funcionan con el máximo nivel de rendimiento. Con el escalado horizontal, los datos se dividen en varias bases de datos, o particiones, en varios servidores, y cada partición se puede escalar o reducir verticalmente de forma independiente.

¿De qué forma el particionamiento de los datos mejora la escalabilidad? Cuando se escala verticalmente una base de datos única agregando recursos, como máquinas virtuales, llega un momento en el que alcanza un límite de hardware físico. Puesto que las particiones de datos se hospedan en servidores diferentes, si divide los datos entre varias particiones, puede escalar horizontalmente un sistema de forma casi ilimitada.

Algunos tipos de tecnologías de base de datos, especialmente las bases de datos no relacionales o NoSQL, se desarrollan con características únicas para escalar horizontalmente los datos mediante el particionamiento o sharding, que permite controlar datos de gran tamaño, no relacionados, indeterminados o que cambian rápidamente.

Además, algunos servicios de base de datos relacionales (SQL) que originalmente ofrecían servicios para escalar o reducir verticalmente las bases de datos empiezan a ofrecer opciones interesantes para igualar las ventajas de escalabilidad de las bases de datos no relacionales. Los servicios de hiperescala, como Hiperescala de Microsoft Azure SQL Database e Hiperescala de Azure Database for PostgreSQL, permiten a los usuarios escalar rápidamente el almacenamiento hasta 100 TB, proporcionan una arquitectura flexible y nativa de nube que permite aumentar el almacenamiento según la necesidad, realizar copias de seguridad casi instantáneas y restaurar las bases de datos en solo unos minutos.

Utilice el escalado horizontal en las siguientes situaciones:

  • Tiene aplicaciones distribuidas geográficamente y cada aplicación debe acceder a parte de los datos de la región. Cada aplicación tendrá acceso únicamente a la partición asociada a esa región sin que afecte a otras particiones.
  • Tiene un escenario de particionamiento global (por ejemplo, para el equilibrio de carga) donde tiene un gran número de clientes distribuidos geográficamente que insertan datos en sus propias particiones dedicadas.
  • Ha maximizado los requisitos de rendimiento, incluso en los niveles de rendimiento más altos del servicio, o los datos no caben en una base de datos única.

Escalado automático

El escalado automático es el proceso de ampliar o reducir los recursos de forma automática y dinámica para satisfacer los requisitos de rendimiento de un sistema. A medida que crece el volumen de trabajo, es posible que las aplicaciones necesiten más recursos para mantener los niveles de rendimiento necesarios o satisfacer una demanda creciente. Si la demanda se ralentiza y ya no se necesitan los recursos adicionales, puede ahorrar en el gasto en la nube si tiene implementado un servicio automático que desasigne los recursos no utilizados.

El escalado automático aprovecha la elasticidad de los entornos hospedados en la nube. Alivia la sobrecarga de administración al reducir la necesidad de que los operadores del sistema tomen decisiones constantemente sobre agregar o quitar recursos, o comprobar el rendimiento del sistema.

Aunque hay dos formas principales de escalar las aplicaciones(vertical u horizontalmente), es menos habitual automatizar el escalado vertical, ya que este suele requerir que el sistema no esté disponible temporalmente mientras se vuelve a implementar.

El escalado automático es más común cuando se escalan o reducen horizontalmente los recursos, porque, en estos procesos, simplemente se agregan o quitan instancias de un recurso y la aplicación continúa ejecutándose sin interrupción a medida que se aprovisionan nuevos recursos. Si la demanda disminuye, los recursos se pueden apagar y desasignar sin problemas y sin tiempo de inactividad.

Muchos proveedores de sistemas basados en la nube, como Microsoft Azure, ofrecen escalado horizontal automático.

  • Una base de datos es cualquier colección de información interrelacionada que se almacena y organiza para que sea más fácil de administrar y acceder. A medida que se generan nuevos datos y tipos de datos a un ritmo vertiginoso, se hace más difícil mantener esos datos organizados, accesibles y seguros. Los sistemas de administración de bases de datos (DBMS), que incluyen una capa de herramientas de administración, a menudo se usan para controlar grandes volúmenes de datos.

    Constantemente surgen nuevos tipos y tecnologías de base de datos para adaptarse al gran volumen y a la amplia gama de datos generados en la nube, los dispositivos móviles, las redes sociales y los macrodatos.

    Más información sobre las bases de datos
  • Las bases de datos NoSQL, a menudo denominadas no relacionales o "no solo" SQL, son un conjunto diverso de tecnologías de base de datos que controlan el almacenamiento y la recuperación de datos de una forma diferente a una base de datos relacional (SQL) tradicional.

    Las bases de datos NoSQL no requieren un esquema predefinido y pueden usar varios modelos de datos, lo que las hace muy eficaces para controlar grandes volúmenes de datos no estructurados y escalar proyectos de base de datos para macrodatos.

    Más información sobre las bases de datos NoSQL
  • PostgreSQL es un sistema de base de datos sólido de código abierto que funciona con consultas relacionales y no relacionales, y es conocido por su fiabilidad y la integridad de los datos. PostgreSQL se usa ampliamente en campos como los servicios financieros, la fabricación, los sistemas públicos de información geográfica y la tecnología web. Los desarrolladores crean aplicaciones con PostgreSQL, mientras que los administradores confían en él para proteger sus datos.

    Más información sobre PostgreSQL
  • El almacenamiento en caché es una técnica común que usan los desarrolladores y profesionales de TI para mejorar el rendimiento y la escalabilidad de un sistema. Consiste en copiar temporalmente los datos a los que se accede con mayor frecuencia en un almacenamiento rápido ubicado cerca de la aplicación. Si este almacenamiento de datos rápido se encuentra más cerca de la aplicación que el propio origen de los datos, el almacenamiento en caché puede mejorar considerablemente los tiempos de respuesta de las aplicaciones cliente, ya que los datos se proporcionan con mayor rapidez. A menudo, los desarrolladores diseñan las aplicaciones para que almacenen en caché los datos procesados y, después, reutilizan la memoria caché para atender las solicitudes con mayor rapidez que en las consultas de base de datos normales.

    Más información sobre el almacenamiento en caché
  • Sharding es un tipo de particionamiento de datos horizontal que permite dividir una base de datos de gran tamaño en bases de datos más pequeñas, que se pueden administrar de una forma más rápida y sencilla entre varios servidores.

    Más información sobre el particionamiento o sharding de bases de datos
  • Una plataforma como servicio, a menudo abreviada como PaaS, es un servicio de un proveedor en la nube que ofrece un entorno a petición para el desarrollo, las pruebas, la entrega y la administración de aplicaciones. Una plataforma como servicio hace que los desarrolladores puedan crear aplicaciones web o móviles de una forma más sencilla y rápida, sin tener que ocuparse de configurar ni administrar la infraestructura subyacente de servidores, almacenamiento, redes y bases de datos que necesitan como desarrolladores.

    Más información sobre PaaS

Explore la escalabilidad en la nube con Azure

Descubra un enfoque completo para el escalado vertical y el escalado horizontal que se adapta a su propio escenario, tanto en el entorno local como en entornos multinube y perimetrales. La familia de servicios de base de datos de Azure ofrece una selección de bases de datos relacionales, NoSQL y en memoria totalmente administradas, con motores patentados y de código abierto, para adaptarse a las necesidades de los desarrolladores de aplicaciones actuales.

Ahorre tiempo y dinero con la administración automatizada de la infraestructura, incluidas soluciones de automatización para la escalabilidad, la disponibilidad y la seguridad.

Productos y servicios relacionados

SQL de Azure

Familia de bases de datos SQL en la nube que proporciona opciones flexibles para la migración, la modernización y el desarrollo de aplicaciones

Azure Cosmos DB

Base de datos NoSQL rápida con API abiertas para cualquier escala

Azure PostgreSQL

PostgreSQL totalmente administrado, inteligente y escalable

Azure SQL Database

SQL inteligente y administrado en la nube

Azure SQL Managed Instance

Instancia de SQL administrada y siempre actualizada en la nube

SQL Server en Virtual Machines

Migre las cargas de trabajo de SQL Server a la nube con el menor costo total de propiedad

Azure Database for MySQL

Base de datos MySQL totalmente administrada y escalable

Azure MariaDB

Servicio de base de datos MariaDB administrado para desarrolladores de aplicaciones

Azure Cache for Redis

Acelere las aplicaciones con un almacenamiento de los datos en caché de baja latencia y alto rendimiento

Escalado sin límites con bases de datos administradas

Dedique su tiempo a crear aplicaciones y simplifique su trabajo con bases de datos administradas por Microsoft Azure

Cuando quiera, configuramos su cuenta gratuita