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 capacidade 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 de 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 de 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]