TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Escalabilidade em sistemas distribuidos

Por:   •  5/9/2017  •  Trabalho acadêmico  •  1.172 Palavras (5 Páginas)  •  1.736 Visualizações

Página 1 de 5

1 ESCALABILIDADE

Um sistema é definido como escalável se permanecer eficiente mesmo quando há

um aumento considerável no número de usuários e/ou na quantidade de recursos

utilizados. Por definição escalabilidade dentro da informática é a capacidade de um

sistema crescer de forma significativa sem sofrer quedas em seu desempenho. Projetos de

sistemas distribuídos escaláveis buscam contemplar os seguintes desafios: Controlar

custos de recursos; evitar queda no desempenho; evitar gargalos de desempenho.

Partindo desta definição sempre em que projetarmos um sistema, quer seja

hardware ou software devemos sempre nos atentar a planejar grandes crescimentos e

sempre estarmos prontos para aumentar a carga de maneira súbita. Como exemplo

podemos imaginar um Webserver que foi projetado inicialmente para atender cerca de

mil requisições por hora e com o passar do tempo passou a tender duas mil requisições.

A princípio este servidor sofrera uma queda significativa de desempenho que poderá ser

sanado alocando mais recursos, como memória e processamento, contudo ao longo do

tempo este serviço continua a crescer e passa a atender centenas de milhares de

requisições a ponto de seu hardware não possuir formas de crescer assim como seu

software oque causara constantes falhas e lentidão.

O senso comum tende a pensar que um sistema nunca chegara a crescer muito

além daquilo para o que foi projetado, entretanto temos vários exemplos históricos que

mostram o contrário.

Durante a década de 1980 com o surgimento da internet foi criado o protocolo

IPv4 e este protocolo tinha por objetivo criar um endereço IP para todos os computadores

conectados à internet. O protocolo consistia em um grupo de 32 bits divididos em 4

subgrupos de 8 bits cada. Este protocolo a princípio poderia suportar 4.294.967.296

endereços únicos o que na época parecia ser uma quantidade quase “infinita” de

endereços, entretanto na década de 2000 a internet banda larga se popularizou e em pouco

tempo já havia mais dispositivos conectados na rede do que sua estrutura inicial poderia

ter planejado, segundo a IHS hoje existem cerca de 8,2 bilhões de dispositivos que

reproduzem vídeo conectados à internet, sem conectar outros dispositivos como câmeras

de segurança por exemplo. Este valor já supera em muito o proposito inicial do protocolo

e como consequência houve a necessidade da criação de outro protocolo com ainda mais

endereços este é o protocolo IPv6 que possui um endereço de 128 bits que pode conter

340.282.366.920.938.463.463.374.607.431.768.211.456 endereços únicos. Este talvez

seja um valor absurdo, entretanto apenas o tempo poderá mostrar se é suficiente.

Tendo em vista este exemplo podemos perceber a necessidade de planejamento

quando construímos um sistema devemos sempre planejar um crescimento exponencial.

E este planejamento pode ser feito de duas maneiras, verticalmente o horizontalmente.

2 ECALABILIDADE VERTICAL E HORIZONTAL

2.1 Escalabilidade vertical

A escalabilidade vertical é a mais simples, consiste em simplesmente alocar mais

recurso para o sistema, melhorando individualmente cada nó do sistema, por exemple

alocar mais memória e processamento para as maquinas responsáveis pelo sistema. Este

método normalmente e eficaz, mas nem sempre é eficiente, pois muitas vezes gera um

custo muito alto e possui um limite estipulado de crescimento uma vez que todo hardware

possui um limite de slots e barramentos.

2.2 Escalabilidade horizontal

Já a escalabilidade horizontal é um pouco mais complexa que a vertical uma vez

que não cresce os nós individuais e sim divide a carga para outros nós. Por exemplo ao

invés de alocar mais memória para uma máquina responsável por um serviço cria-se um

clone dessa máquina e metade das requisições são enviadas para uma máquina e metade

para outra e caso o serviço continue a crescer mais maquinas podem ser criadas e ter suas

cargas divididas. Esta técnica é muito eficiente porem envolve um alto grau de

complexidade de desenvolvimento e mal planejado pode causar vários erros e falhas,

entretanto hoje talvez seja o melhor método para se desenvolver um sistema altamente

escalável.

3 CLOUD COMPUTING

Tendo em vista as dificuldades relacionadas a criação de sistemas altamente

escaláveis foi desenvolvido uma solução que alia as vantagens de ambos os métodos, esta

solução é chamada de cloud computing (computação em nuvem). Este conceito refere-se

a um sistema onde é possível acessar aplicativos e serviços através da internet, os dados

são armazenados de forma segura e abstrata. Hoje podemos identificar, segundo o blog

da salesforce, algumas características

...

Baixar como (para membros premium)  txt (8.1 Kb)   pdf (50.9 Kb)   docx (15.9 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com