Escalabilidade pode ser definida como a habilidade de garantir a qualidade de serviço desejada à medida que a demanda de uso aumenta. Uma solução pode ser considerada escalável se continuar respondendo dentro de limites estabelecidos apesar de um aumento na sua carga.Para compreender o que e escalabilidade, primeiro e preciso entender a capacidade de um sistema, que pode ser definido como a quantidade de processos, ou usuários, que o sistema consegue suportar e ainda assim manter a qualidade do serviço. Se um sistema esta no máximo de sua capacidade e não consegue responder dentro de um limite estabelecido, podemos afirmar que esse sistema ultrapassou o seu limite de escalabilidade. Para escalar um sistema que atingiu a sua capacidade máxima, será preciso adicionar mais hardware. Esse hardware adicional pode ser adicionado verticalmente ou horizontalmente.E importante lembrar que, ao definir a arquitetura de uma solução, será preciso considerar como o sistema ira se comportar no caso do ambiente precisar ser escalado.
Escalabilidade VerticalE alcançada ao aumentar a capacidade em um hardware, entende-se por capacidade a adição de mais processadores, memória ou discos a maquina atual.Escalar de forma vertical dificilmente ira ter algum impacto na sua arquitetura.Apesar disso, não e possível garantir a disponibilidade da aplicação, uma vez que um único hardware representa um ponto único de falha, conhecido como SPOF (Single Point of Failure).Geralmente a escalabilidade vertical é mais barata e demanda um menor esforço de manutenção que a escalabilidade horizontal.
Escalabilidade HorizontalE possível alcançar a escalabilidade horizontal ao adicionar mais maquinas ao ambiente atual, aumentando assim a capacidade do sistema como um todo.Para distribuir a carga de maneira otimizada para cada servidor , você devera usar as técnicas de balanceamento de carga (Load Balancing) e de montagem de clusters.A arquitetura definida para a aplicação deve ser projetada tendo em mente que ela devera funcionar sem problemas em um ambiente que pode escalar horizontalmente.Ao escalar de forma horizontal você consegue garantir a flexibilidade, disponibilidade e confiabilidade para o ambiente e para a aplicação.Em contra partida você aumenta a complexidade e o gerenciamento da estrutura física da aplicação, alem de ser uma solução mais cara que a escalabilidade vertical.
Escalabilidade DiagonalPara implementar uma solução que seja confiável, resiliente, performática, escalável e de alta disponibilidade, que usa de forma inteligente todo o poder disponibilizado pelo hardware, se faz necessário aplicar em conjunto as técnicas de escalabilidade horizontal e vertical, conhecida como escalabilidade diagonal.
ConclusãoEscalabilidade significa adicionar hardware para manter e melhorar a performance de uma solução.Entretanto, apenas adicionar mais hardware pode não representar ganho de performance por parte da aplicação.Antes de escalar o ambiente, e importante validar se todos os gargalos da aplicação foram devidamente eliminados, se o código esta otimizado e o ambiente devidamente configurado e otimizado.Caso estas boas práticas não sejam executadas, escalar o ambiente apenas vai empurrar o problema mais pra frente. Por outro lado, quando a solução está devidamente otimizada, então escalar o ambiente se torna o próximo passo lógico para uma maior capacidade e performance para a solução.
domingo, 28 de setembro de 2008
Técnicas de Escabilidade
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário