A escalabilidade é medida em termos de taxa de transferência com base em alguma variável. Por exemplo, número de solicitações / segundo com usuários X. A maneira mais simples de descrever a escalabilidade é:
Uma medida de eficiência à medida que a carga aumenta.
A primeira coisa que você precisa entender ao projetar para escalabilidade é qual medida é mais importante para seu aplicativo? Existem várias maneiras de medir a eficiência, que é um componente essencial da escalabilidade:
- Solicitações simultâneas por segundo
- Tempo médio de resposta por solicitação
- Número de registros processados por segundo / minuto
Existem medições de mais eficiência que podem ser usadas, mas são comuns para sistemas baseados na Web ou sistemas de processamento em lote.
O próximo aspecto da escalabilidade é medir o que acontece com sua eficiência à medida que a carga aumenta. As formas comuns de aumentar a carga são:
- Mais usuários acessando o servidor (ou seja, mais tráfego na web)
- Mais dados no banco de dados (ou seja, as consultas demoram mais ou o processamento demora mais)
- Falha no disco rígido em um RAID (o desempenho / confiabilidade do armazenamento é afetado)
- Saturação da rede
O objetivo de um aplicativo escalável é manter ou melhorar a eficiência à medida que lidamos com o problema de carga. Em resumo, se o tempo de resposta estiver demorando muito, podemos adicionar outro servidor para distribuir a carga uniformemente? Essa abordagem reduz a quantidade de trabalho de um servidor e mantém os servidores operando nesse "ponto ideal" para obter eficiência.
Sua aplicação precisará ser projetada especificamente para ser dimensionada. Isso significa que você deve ter cuidado com os dados da sessão, encaminhando solicitações para o servidor certo, reduzindo os gargalos que limitam a capacidade de dimensionamento do aplicativo.