Saltar para o conteúdo

Escalabilidade

Origem: Wikipédia, a enciclopédia livre.

Emtelecomunicações,infraestrutura detecnologia da informaçãoe naengenharia de software,escalabilidadeé uma característica desejável em todo o sistema,redeou processo, que indica a 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 suportar um aumento de carga total quando os recursos (normalmente do hardware) assim requisitam.

Como característica de um sistema, a escalabilidade é normalmente difícil de se 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 dehardware,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, umsistema de processamento de transações on-lineousistema de gerenciamento de banco de dadosé escalável quando pode ser atualizado 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.

Umprotocolo de roteamentoé considerável escalável com o tamanho da rede, se o tamanho necessário databela de roteamentoem cadacresce comoO(logN), ondeNé o número de nós na rede.

Escalabilidade horizontal e vertical

[editar|editar código-fonte]

Métodos de adição de recursos para uma aplicação particular recaem em duas amplas categorias: escalamento horizontal e vertical.[3]

  • Escalar horizontalmente(também chamado descale out/in) significa adicionar mais nós a (ou remover nós de) um sistema, como adicionar um novo computador para uma aplicação de software distribuída. Um exemplo pode envolver escalamento horizontal de um sistema de servidor Web para três. Como os preços de computadores caíram e o desempenho continua a crescer, aplicações de computação de alto desempenho, como análise sísmica e cargas de trabalho de biotecnologia adotaram sistemas "mercadoria"de baixo custo para tarefas que antes exigiamsupercomputadores.Arquitetos de sistema podem configurar centenas de pequenos computadores em umclusterpara obter poder de computação agregada que geralmente excede ao de computadores baseados em um único processador tradicional. O desenvolvimento de interconexões de alto desempenho comoEthernet Gigabit,InfiniBandeMyrinetalimentaram este modelo. Tal crescimento direcionou para demanda por software que possibilita o gerenciamento e manutenção eficientes de vários nós, bem como hardware como armazenamento de dados compartilhado com desempenho de E/S muito maior.Escalabilidade de tamanhoé o número máximo de processadores que um sistema pode acomodar.
  • Escalar verticalmente(também chamado descale up/down) significa adicionar recursos (ou remover recursos de) um único nó em um sistema, normalmente envolvendo a adição de UCPs ou memória para um único computador. Tal escalamento vertical de sistemas existentes também permite-os usar tecnologia devirtualizaçãode forma mais eficiente, uma vez que ele fornece mais recursos para o conjunto hospedado desistema operacionale módulos deaplicaçãoa compartilhar. Tomar vantagem de tais recursos também pode ser chamado de "aumento", como a expansão do número de processos daemonApacheexecutando no momento.Escalabilidade de aplicaçãoé o desempenho melhorado de execução de aplicações em uma versão aumentada (scaled-up) do sistema.

Um frequente 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 paraclusterizarosoftware.

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

Notas e referências

  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?' noACM 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' no28º congresso internacional sobre engenharia de Software ICSE '06,em Maio de 2006.ISBN 1-59593-375-1,paginas de 949 a 952.
  3. Michael, Maged; Moreira, Jose E.; Shiloach, Doron; Wisniewski, Robert W. (26 de março de 2007).Scale-up x Scale-out: A Case Study using Nutch/Lucene.2007 IEEE International Parallel and Distributed Processing Symposium. p. 1.ISBN1-4244-0909-8.doi:10.1109/IPDPS.2007.370631