Escalabilidade
Em telecomunicações e na engenharia de software, escalabilidade é uma característica desejável em todo o sistema, em uma rede ou em um processo, que indica sua habilidade de manipular uma porção crescente de trabalho de forma uniforme, ou estar preparado para crescer.1 Por exemplo, isto pode se referir à capacidade de um sistema em suportar um aumento carga total quando os recursos (normalmente do hardware) são requeridos.
Como característica de um sistema, a escalabilidade é normalmente difícil de definir 2 e, de forma particular, é necessário definir que requerimentos específicos de demanda deverão ser dimensionados para definir a importância da escalabilidade.
A escalabilidade é um assunto extremamente importante em sistemas eletrônicos, bancos de dados, roteadores, redes de computadores, etc, e implica desempenho. Um sistema cujo desempenho aumenta com o acréscimo de hardware, proporcionalmente à capacidade acrescida, é chamado "sistema escalável".
A escalabilidade pode ser medida de vários modos, tais como:
- Carga de escalabilidade – Quando um sistema distribuído deve ser fácil para ser expandido e usar sua gama de recursos para acomodar tanto exigências do mesmo sendo elas pouca ou excessiva.
- Geograficamente escalável - Um sistema é geograficamente escalável quando mantém sua utilidade e usabilidade, independentemente de como são usados os seus recursos.
- Escalabilidade Administrativa - Não importa a variação de informação que diferentes organizações necessitam compartilhar em um único sistema distribuído, este deve permanecer fácil de ser usado e gerenciado.
Por exemplo, um sistema de processamento de transações on-line ou sistema de gerenciamento de banco de dados é escalável quando se pode atualizá-lo, para aumentar o processamento de transações, mediante a adição de novos processadores, mecanismos e dispositivos de estocagem, que podem ser atualizados facilmente e de modo transparente, sem precisar desligar o sistema.
Um protocolo de roteamento é considerável escalável com o tamanho da rede, se o tamanho necessário da tabela de roteamento em cada nó cresce como O(log N), onde N é o número de nós na rede.
Um freqüente foco do planejamento de um sistema de hardware é a sua escalabilidade.
- Escalar verticalmente (scale up) significa adicionar recursos em um único nó do sistema (mais memória ou um disco rígido mais rápido).
- Escalar horizontalmente (scale out) significa adicionar mais nós ao sistema, tais como um novo computador com uma aplicação para clusterizar o software.
Escabilidade em Startups é uma forma de acelerar o crescimento de uma empresa, com pequenos custos e de forma muito rápida.
Notas [editar]
- ↑ André B. Bondi, 'Characteristics of scalability and their impact on performance', Proceedings of the 2nd international workshop on Software and performance, Ottawa, Ontário, Canadá, 2000, ISBN 1-58113-195-X, pagina 195 - 203
- ↑ Veja, por exemplo, Mark D. Hill, 'What is scalability?' no ACM SIGARCH Computer Architecture News, de Dezembro de 1990, Volume 18 Número 4, paginas de 18 a 21, (ISSN 0163-5964) e Leticia Duboc, David S. Rosenblum, Tony Wicks, 'Doctoral symposium: presentations: A framework for modelling and analysis of software sistema escalabilidade' no 28º congresso internacional sobre engenharia de Software ICSE '06, em Maio de 2006. ISBN 1-59593-375-1, paginas de 949 a 952.