fundamentos nazareno andrade universidade federal de campina grande 02/2008 sistemas distribuídos
TRANSCRIPT
![Page 1: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/1.jpg)
Fundamentos
Nazareno AndradeUniversidade Federal de Campina Grande
02/2008
Sistemas Distribuídos
![Page 2: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/2.jpg)
2
FundamentosCoordenando processosConstruíndo sistemasSistemas construídos
![Page 3: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/3.jpg)
3
Fundamentos– O que são sistemas distribuídos– Para que distribuímos sistemas– Referências de sistemas distribuídos– Vocabulário sobre sistemas distribuídos– Arquiteturas de sistemas distribuídos– Modelos de sistemas distribuídos
Coordenando processosConstruíndo sistemasSistemas construídos
![Page 4: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/4.jpg)
4
Objetivos
Idéia clara do que são sistemas distribuídos– Propósito– Vantagens & desvantagens
Repertório de sistemasVisão de questões de projeto
![Page 5: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/5.jpg)
5
Que sistemas distribuídos nós usamos?
![Page 6: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/6.jpg)
6
O que é um sistema distribuído?
![Page 7: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/7.jpg)
7
Em comum:
Componentes independentesCanais de comunicaçãoImagem única
Hardware independente + software unificando
![Page 8: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/8.jpg)
8
“Conjunto de computadores independentes que se apresenta a seus usuários como um sistema único e coerente” -Tanenbaum
“Sistema em que componentes de hardware e software localizados em diferentes computadores interconectados se comunicam e coordenam suas ações trocando mensagens” – CDK
“Sistema onde você não consegue trabalhar por causa de uma falha em um computador que você nunca viu” – Lamport
![Page 9: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/9.jpg)
9
Por que sistemas distribuídos?Compartilhamento
– Documentos, impressoras, telescópios, ...
Escalabilidade– Mais carga → Mais recursos
Custo x benefício– Um PC: dinheiro em dobro ≠ desempenho em dobro
Robustez– Redundância
Limitações da Física– Corpos se movem– Corpos não se movem rápido o suficiente
![Page 10: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/10.jpg)
10
E nós, projetistas?
ConcorrênciaCanais de comunicaçãoFalhas parciaisDescoberta de recursosCoordenação
![Page 11: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/11.jpg)
11
Fundamentos– O que são sistemas distribuídos– Para que distribuímos sistemas– Referências de sistemas distribuídos– Vocabulário sobre sistemas distribuídos– Arquiteturas de sistemas distribuídos– Modelos de sistemas distribuídos
Coordenando processosConstruíndo sistemasSistemas construídos
![Page 12: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/12.jpg)
12
Sistemas de arquivos distribuídos: NFS
Compartilhar arquivos, compartilhar um servidor
![Page 13: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/13.jpg)
13
Web
Compartilhamento de documentos (ao menos inicialmente)Navegadores e servidoresHTTP
http://www.google.com
http://lsd.ufcg.edu.br/~nazareno/xpto.html
LSD
nazareno
xpto.html
![Page 14: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/14.jpg)
14
Sistemas N-camadas
Amazon, Google e quase todo e-commerce que você vir poraí...Tecnologia popular: LAMP - Linux, Apache, MySQL,
Perl/PHP/Python
ApresentaçãoLógica
Banco de dados
![Page 15: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/15.jpg)
15
Computação paralela: clusters
Alta performance, computação paralelaProcessamento numérico, processamento de dados, ...
Tecnologias: PBS, Bewuolf, MapReduce, Hadoop
![Page 16: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/16.jpg)
16
Computação paralela: grids/grades
Alto desempenho, plataforma mais ampla, compartilhamentoTecnologias: Globus, Condor, OurGrid
Domínios administrativos
![Page 17: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/17.jpg)
17
Computação entre-pares, peer-to-peer
Compartilhamento, “bordas” da redeGnutella, Kazaa, BitTorrent, Skype, MSN, ...
![Page 18: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/18.jpg)
18
Computação pervasiva / ubíqua
Computadores estão em todo lugar, e conectados
Celulares, carros, marcapassos, ...
![Page 19: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/19.jpg)
19
Imagem única transparência
![Page 20: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/20.jpg)
20
Fornecendo uma imagem única
Transparência O que é
Acesso Escondemos se recursos são remotos
Localização Escondemos onde eles estão
Migração Escondemos se eles mudam de máquina
Relocação Escondemos se eles se movem
Replicação Escondemos redundância
Concorrência Escondemos compartilhamento
Falha Escondemos falhas
![Page 21: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/21.jpg)
21
Embora isso não seja tão simples
Heterogeneidade– Plataforma, clientes, conexões
Sistemas abertos– Diversas implementações de clientes
Segurança– Nos componentes, nas comunicações, DoS
Escalabilidade – Evitar gargalos
Tolerância a Falhas– Componentes devem lidar com falhas dos demais
Concorrência– Concorrência é a norma
![Page 22: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/22.jpg)
22
Alguns princípios de projeto de SD
![Page 23: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/23.jpg)
23
TransparênciaTransparência para programa, usuário ou programador?
Envolve ao menos:Nomes lógicos
– http://www.google.com– Réplicas têm mesmo nome lógico
Exclusão mútua distribuída– Lembram de SO?Eficiência na comunicação
Transparência é um contínuo, e não binário
Transparência limitada pode ser necessária ou útil– A Física impõe limites– O usuário pode entender melhor o que está acontecendo
![Page 24: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/24.jpg)
24
Desempenho
Medido através de métricas:– Vazão (throughput)– Tempo de resposta (response time, makespan)– Latência– Utilização dos recursos(nem sempre são independentes...)
O custo da comunicação em geral é importante
![Page 25: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/25.jpg)
25
Desempenho e comunicação
Em geral, queremos minimizar comunicação– Overhead de comunicação >> outros overheads
• Canais são recurso mais escasso no sistema– Comunicação == tamanho e freqüência de mensagens
Granulosidade do paralelismo (parallelism granularity)– Fine granularity – grãos pequenos comunicação freqüente– Coarse granularity – grãos grandes comunicação
infreqüente
![Page 26: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/26.jpg)
26
Escalabilidade
Existem SDs em 2, 10 e 10^6 computadores– Google, Amazon EC2, Skype, ...
Métodos para construir sistemas pequenos podem não valer para outras escalas
Escalabilidade == É possível alterar a escala do sistema– Quantidade de usuários ou recursos (custo x benefício)– Escala geográfica– Manter o sistema gerenciável a medida que cresce
Em geral depende de não haver gargalos descentralização
![Page 27: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/27.jpg)
27
Escalabilidade: por que não é simples
Escalabilidade Descentralização Descentralização Complexidade
Princípios de algoritmos descentralizados escaláveis:– Nenhum componente tem informação sobre todo o
sistema– Componentes tomam decisões baseadas em informações
locais– Falhas parciais não inviabilizam resultado– Não há um relógio global único
• Há aproximações bem imperfeitas, como o NTP
![Page 28: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/28.jpg)
28
Mais sobre escalabilidade e o mundo real
Duas lições recentes
1. Quando a escala é grande o suficiente, qualquer coisa acontece
– Mensagens de controle corrompidas na Amazon e no PlanetLab
2. Ações coordenadas de componentes podem ser catastróficas
– Problema do Skype em 2008
![Page 29: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/29.jpg)
29
HeterogeneidadeHardware independente Configurações independentes
Como sempre: níveis de indireçãoNeste caso, middleware
![Page 30: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/30.jpg)
30
Confiabilidade
Confiabilidade = disponibilidade + integridade + segurança
Um sistema distribuído pode ser mais confiável que um monolítico– Tolerância a falhas parciais
Um sistema distribuído não é necessariamente mais confiável– Falhas independentes?– Segurança agora de diversos pontos– Integridade mais complexa
Como resolver tudo isso? Neste curso!
![Page 31: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/31.jpg)
31
Recapitulando
TransparênciaDesempenhoEscalabilidadeHeterogeneidadeConfiabilidade
Vamos usar bastante isso durante o curso...
![Page 32: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/32.jpg)
32
Ciladas em projetos de SD
![Page 33: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/33.jpg)
33
Não assuma que
A rede é confiávelA rede é segura A rede é homogêneaA topologia da rede não mudaA latência é zeroA largura de banda é infinitaO overhead de transporte é zeroHá um só administrador
![Page 34: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/34.jpg)
34
Fim da introdução
![Page 35: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/35.jpg)
35
Recapitulando...
• O que são sistemas distribuídos• Por que distribuir um sistema• Visão geral dos tipos de sistemas distribuídos• Objetivos comuns no projeto de sistemas distribuídos• Desafios particulares nesse projeto• O que não assumir
Em resumo: o que sistemas distribuídos têm de particular
![Page 36: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/36.jpg)
36
Mais sobre esse assunto
End-to-end arguments in computer design– Onde devem ficar as funcionalidades?
A note on distributed computing – Quão transparente deve ser a distribuição para o
programador?
![Page 37: Fundamentos Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos](https://reader036.vdocuments.net/reader036/viewer/2022062512/552fc13c497959413d8dac75/html5/thumbnails/37.jpg)
37
Cenas do próximo capítulo
Quais as formas de dividir responsabilidades em um SD? Qual o espaço de projeto?– Centralizado, descentralizado, peer-to-peer, híbridos...
Como estudamos um sistema distribuído analiticamente?– Modelos, dimensões úteis de SDs, resultados...