Aula 31 - Escalabilidade Vertical (Scale-up) vs. Horizontal (Scale-out)



A escalabilidade é a capacidade de um sistema computacional de ajustar seus recursos para lidar com aumentos na carga de trabalho sem comprometer o desempenho. No ambiente de nuvem, esse atributo é vital para manter a qualidade de serviço (QoS) durante picos de demanda. Existem duas abordagens fundamentais para realizar esse ajuste: a escalabilidade vertical (Scale-up) e a horizontal (Scale-out).

A escalabilidade vertical (Scale-up) consiste em adicionar mais recursos a uma instância ou servidor já existente. Na prática, isso significa reconfigurar uma máquina virtual para que ela tenha, por exemplo, mais núcleos de processamento (vCPUs) ou mais memória RAM (vRAM). É uma solução rápida para dar fôlego extra a uma aplicação, mas possui limites físicos: não se pode adicionar recursos infinitamente a uma única máquina, e o servidor pode precisar de uma reinicialização para aplicar as mudanças.

Em contrapartida, a escalabilidade horizontal (Scale-out) baseia-se no princípio da redundância e replicação. Em vez de aumentar uma única máquina, criam-se novas réplicas (instâncias) do serviço para dividir o trabalho. Se um servidor web está sobrecarregado, o mecanismo de dimensionamento automático (auto-scaling) cria um segundo, terceiro ou quarto servidor idêntico, distribuindo as requisições entre eles através de um balanceador de carga. Esta abordagem é a preferida para arquiteturas nativas da nuvem, pois oferece limites de escala muito maiores e maior tolerância a falhas.

A escolha entre os dois modelos depende da arquitetura da aplicação. Aplicações monolíticas tradicionais muitas vezes só suportam escala vertical, enquanto arquiteturas modernas baseadas em microsserviços e containers são desenhadas para escala horizontal de forma nativa. O gerenciamento eficaz desses mecanismos permite que as empresas atendam a milhões de usuários mantendo um baixo tempo de resposta e otimizando os custos operacionais (OpEx).



Comentários

Postagens mais visitadas deste blog

Aula 1: Introdução à Computação em Nuvem – Definições e Origem

Aula 3: Conceitos Relevantes de Sistemas Distribuídos

Aula 5 - Autoatendimento sob Demanda e Acesso Amplo à Rede