Escalabilidade

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Wikitext.svg
Este artigo ou seção precisa ser wikificado.
Por favor ajude a formatar este artigo de acordo com as diretrizes estabelecidas no livro de estilo.
Editor: considere colocar o Mês e o Ano da marcação. Isso pode ser feito automaticamente, substituindo essa predefinição por {{subst:wkf}}

Em telecomunicações, infraestrutura de tecnologia da informação 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 –  É a facilidade com que um sistema distribuído pode ser expandido usando todos os seus recursos para acomodar as demandas, sejam altas ou baixas. 
  • Escalabilidade geográfica - Um sistema é geograficamente escalável quando mantém sua utilidade e desempenho, independentemente dos pontos geográficos que compõem sua extensão ou como são usados os seus recursos.
  • Escalabilidade Administrativa - Não importa a variação de informação que diferentes organizações necessitem 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 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.

Escalabilidade em startups é uma forma de acelerar o crescimento de uma empresa, com pequenos custos e de forma muito rápida.

Notas[editar | editar código-fonte]

  1. 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
  2. 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.

Ver também[editar | editar código-fonte]