Pergunta

G'day,

Eu estava lendo o item Quantificar no livro "97 coisas que cada software Architect deve saber"( Sanitized Amazon ligação ) e ele ficou me perguntando como a escalabilidade quantificar.

Eu projetei dois sistemas para uma grande empresa de radiodifusão britânicos que são usados ??para:

  1. detectar o país de origem para solicitações HTTP de entrada, ou
  2. determinar os formatos de vídeo adequados para a geometria da tela de um celular da telefones e tipo de conexão atual.

Ambos os projetos foram obrigados a fornecer escalabilidade.

Meu design para ambos os sistemas são escaláveis ??horizontalmente por trás de cache camadas de balanceamento de carga que são usados ??para lidar com solicitações de entrada para ambos os serviços e distribuí-los entre vários servidores que fornecem o serviço em si. aumentos iniciais na capacidade de serviço são feitas pela adição de mais servidores atrás da camada de carga de equilíbrio, portanto, a escalabilidade horizontal prazo.

Há um limite para a escalabilidade dessa arquitetura no entanto, se a camada de equilíbrio de carga começa a ter dificuldade em lidar com o tráfego de solicitação de entrada.

Assim, é possível quantificar escalabilidade? Seria uma estimativa de quantos servidores adicionais que você pode adicionar para escalar horizontalmente a solução?

Foi útil?

Solução

Eu acho que é possível em alguns contextos - por exemplo escalabilidade de uma aplicação web pode ser quantificado em termos de número de usuários, números de solicitações simultâneas, média e desvio padrão do tempo de resposta, etc Você também pode entrar em geral números para largura de banda e armazenamento, transações por segundo, e os tempos de recuperação (para backup e DR).

Você também pode muitas vezes dar números dentro do domínio da aplicação -. Digamos que o sistema oferece suporte comentando, você pode quantificar o que é a ordem de grandeza do número de comentários que ele precisa ser capaz de loja

No entanto, é importante ter em mente que nem tudo o que importa pode ser medido, e nem tudo que pode ser medido assuntos. : -)

Outras dicas

Eu acho que isso se resume ao que escalabilidade meio em um determinado contexto e, portanto, a resposta seria isso depende .

Eu vi escalabilidade em requisitos para as coisas que simplesmente não existiam ainda. Por exemplo, uma nova ferramenta de pedido de empréstimo que, especificamente, chamou a necessidade de trabalho no iPhone e outros dispositivos móveis no futuro.

escalabilidade

Eu também vi usado para descrever potencial de expansão de mais centros de dados e servidores web em diferentes áreas do mundo para melhorar o desempenho.

Ambos os exemplos acima podem ser quantificáveis ??se houver um alvo conhecida para o futuro. Mas escalabilidade pode não ser quantificável, se não há realmente nenhuma alvo conhecido ou plano que o torna um alvo em movimento.

A medida adequada de escalabilidade (não a mais simples ;-) é um conjunto de curvas que definem recursos exigidos (CPUs, memória, armazenamento, largura de banda local, ...), e desempenho (por exemplo, latência) entregue, como a carga cresce (por exemplo em termos de consultas por segundo, mas outras medidas, tais como os dados de taxa de transferência total de exigidos podem também ser apropriados para algumas aplicações). Os tomadores de decisão, normalmente exigem que tais medidas precisas, mas complexos ser resumida a alguns números-chave (pontos específicos sobre algumas das várias curvas), mas eu sempre tentar negociar para mais precisas em relação a mais simples de entender medições de tais métricas-chave -!)

Quando penso em escalabilidade penso em:

  • performance - como as necessidades de aplicativos responsivo a ser para uma determinada carga
  • como carga grande o aplicativo pode crescer em ea que custo unitário (se o seu servidor por incluem software, suporte, etc)
  • o quão rápido você pode escalar o aplicativo se e quanto tampão você quer sobre o uso período de pico (podemos adicionar 50% mais largura de banda em 2-3 horas e exigem um 30% tampão pico de uso ao longo do planejado)

A redundância é outra coisa, mas também devem ser incluídos e considerados.

"O sistema deve dimensionar a manter uma relação linear de X para o custo / user".

Aqui está uma maneira:

"supor que um único processador pode processar 100 unidades de trabalho por segundo ..."

A partir http://www.information-management.com/ problemas / 19971101 / 972-1.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top