SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Sistemas distribuídos
Uma breve introdução
O que é um sistema distribuído?
"Uma coleção de computadores
independentes que aparentam ser um
único sistema coeso para o usuário"
O que é um sistema distribuído?
O que é um sistema distribuído?
O que é um sistema distribuído?
...
O que é um sistema distribuído?
O que é um sistema distribuído?
O que é um sistema distribuído?
O que é um sistema distribuído?
O que é um sistema distribuído?
INTERNET
Por que construir um sistema distribuído?
Por que construir um sistema distribuído?
Por que construir um sistema distribuído?
● Avaliabilidade / Tolerância a erros
Por que construir um sistema distribuído?
● Avaliabilidade / Tolerância a erros
Por que construir um sistema distribuído?
● Avaliabilidade / Tolerância a erros
Por que construir um sistema distribuído?
● Avaliabilidade / Tolerância a erros
Por que construir um sistema distribuído?
● Avaliabilidade / Tolerância a erros
Por que construir um sistema distribuído?
● Avaliabilidade / Tolerância a erros
Por que construir um sistema distribuído?
● Avaliabilidade / Tolerância a erros
Por que construir um sistema distribuído?
● Avaliabilidade / Tolerância a erros
Por que construir um sistema distribuído?
● Performance / "Dividir para conquistar"
Por que construir um sistema distribuído?
● Performance / "Dividir para conquistar"
24h
Por que construir um sistema distribuído?
● Performance / "Dividir para conquistar"
Por que construir um sistema distribuído?
● Performance / "Dividir para conquistar"
2h
Características de sistemas distribuídos
● Um único "sistema"
● Um ou vários subsistemas
● Uma coleção de processadores
○ processamento paralelo
○ aumento da performance, confiabilidade e tolerância a erros
● Particionamento e/ou replicação de dados
○ aumento da performance, confiabilidade e tolerância a erros
Falácias de sistemas distribuídos
● A rede é confiável.
● Não há latência.
● A largura de banda é infinita.
● A rede é segura.
● A topologia da rede não muda.
● Há apenas um administrador.
● O custo de transporte é zero.
● A rede é homogênea.
Consistência
Disponibilidade / Avaliabilidade
Tolerância a Particionamento
Teorema CAP
C
A P
Consistência
Disponibilidade / Avaliabilidade
Tolerância a Particionamento
Teorema CAP
C
A Pvulgo "você falhará miseravelmente em manter
as três características ao mesmo tempo"
Ok, entendi a teoria…
mas e na prática?
Frontends
Como mostrar os recursos HTTP rapidamente?
Frontends
Como mostrar os recursos HTTP rapidamente?
- CDNs (Content Delivery Networks)
Frontends
Frontends
Backends
"Big data"
Backends
"Big data"
- Ecossistema Hadoop
Backends
Backends
O problema dos contadores
Para saber mais...
https://www.cs.helsinki.fi/u/jakangas/Teaching/DistSys/DistSys-08f-1.pdf
https://pt.wikipedia.org/wiki/Sistema_de_processamento_distribu%C3%ADdo
https://www.dcc.fc.up.pt/~ines/aulas/0910/CG/revDist.pdf
https://www.amazon.com/Distributed-Systems-Principles-Andrew-Tanenbaum/
dp/153028175X
Obrigado !
danielbpdias@gmail.com
https://github.com/danielbdias
https://www.slideshare.net/DanielDias10

Mais conteúdo relacionado

Semelhante a Introdução a sistemas distribuídos

As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)Bruno Camara
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Messias Batista
 
Onix, uma plataforma de desenvolvimento para controle distribuído
Onix, uma plataforma de desenvolvimento para controle distribuídoOnix, uma plataforma de desenvolvimento para controle distribuído
Onix, uma plataforma de desenvolvimento para controle distribuídowelingtonms
 
01-Introdução a Sistemas Distribuídos.pptx
01-Introdução a  Sistemas Distribuídos.pptx01-Introdução a  Sistemas Distribuídos.pptx
01-Introdução a Sistemas Distribuídos.pptxRoberto Aragy
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdM Serafim
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesRodrigo Cândido da Silva
 
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014MySQL Brasil
 
Introdução a Gerência de Redes
Introdução a Gerência de RedesIntrodução a Gerência de Redes
Introdução a Gerência de RedesFrederico Madeira
 
Cap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfCap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfHurgelNeto
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15MySQL Brasil
 
Microserviços: uma introdução
Microserviços: uma introduçãoMicroserviços: uma introdução
Microserviços: uma introduçãoDaniel Baptista Dias
 

Semelhante a Introdução a sistemas distribuídos (20)

As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
 
Aula 7 (clouter)
Aula 7 (clouter)Aula 7 (clouter)
Aula 7 (clouter)
 
Aula 2
Aula 2Aula 2
Aula 2
 
Onix, uma plataforma de desenvolvimento para controle distribuído
Onix, uma plataforma de desenvolvimento para controle distribuídoOnix, uma plataforma de desenvolvimento para controle distribuído
Onix, uma plataforma de desenvolvimento para controle distribuído
 
01-Introdução a Sistemas Distribuídos.pptx
01-Introdução a  Sistemas Distribuídos.pptx01-Introdução a  Sistemas Distribuídos.pptx
01-Introdução a Sistemas Distribuídos.pptx
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Apresentação do Curso
Apresentação do CursoApresentação do Curso
Apresentação do Curso
 
Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bd
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
Windows Vista , Seven , Server 2008 r2
Windows Vista , Seven , Server 2008 r2Windows Vista , Seven , Server 2008 r2
Windows Vista , Seven , Server 2008 r2
 
Mulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit BrazilMulesoft Meetup Latam Summit Brazil
Mulesoft Meetup Latam Summit Brazil
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura Microservices
 
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
 
Introdução a Gerência de Redes
Introdução a Gerência de RedesIntrodução a Gerência de Redes
Introdução a Gerência de Redes
 
Cap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfCap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdf
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15
 
Microserviços: uma introdução
Microserviços: uma introduçãoMicroserviços: uma introdução
Microserviços: uma introdução
 

Mais de Daniel Baptista Dias

AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
 
De 0 ao infinito - Evoluindo um aplicativo Node.js em produção
De 0 ao infinito - Evoluindo um aplicativo Node.js em produçãoDe 0 ao infinito - Evoluindo um aplicativo Node.js em produção
De 0 ao infinito - Evoluindo um aplicativo Node.js em produçãoDaniel Baptista Dias
 
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaTDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
 
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDomain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDaniel Baptista Dias
 
Domain Driven Design - Uma introdução
Domain Driven Design - Uma introduçãoDomain Driven Design - Uma introdução
Domain Driven Design - Uma introduçãoDaniel Baptista Dias
 
Processamento de dados com Node.js, AWS Lambda e Kinesis Streams
Processamento de dados com Node.js, AWS Lambda e Kinesis StreamsProcessamento de dados com Node.js, AWS Lambda e Kinesis Streams
Processamento de dados com Node.js, AWS Lambda e Kinesis StreamsDaniel Baptista Dias
 
Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...
Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...
Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...Daniel Baptista Dias
 
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDPPlanejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDPDaniel Baptista Dias
 

Mais de Daniel Baptista Dias (13)

Object calisthenics
Object calisthenicsObject calisthenics
Object calisthenics
 
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
 
De 0 ao infinito - Evoluindo um aplicativo Node.js em produção
De 0 ao infinito - Evoluindo um aplicativo Node.js em produçãoDe 0 ao infinito - Evoluindo um aplicativo Node.js em produção
De 0 ao infinito - Evoluindo um aplicativo Node.js em produção
 
Domain Driven Design Tático
Domain Driven Design TáticoDomain Driven Design Tático
Domain Driven Design Tático
 
Microservices: an introduction
Microservices: an introductionMicroservices: an introduction
Microservices: an introduction
 
Serverless API
Serverless APIServerless API
Serverless API
 
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaTDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
 
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDomain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
 
Domain Driven Design - Uma introdução
Domain Driven Design - Uma introduçãoDomain Driven Design - Uma introdução
Domain Driven Design - Uma introdução
 
Processamento de dados com Node.js, AWS Lambda e Kinesis Streams
Processamento de dados com Node.js, AWS Lambda e Kinesis StreamsProcessamento de dados com Node.js, AWS Lambda e Kinesis Streams
Processamento de dados com Node.js, AWS Lambda e Kinesis Streams
 
Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...
Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...
Programação dinâmica em tempo real para Processos de Decisão Markovianos com ...
 
Iteração de política
Iteração de políticaIteração de política
Iteração de política
 
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDPPlanejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
Planejamento Probabilístico - Uma introdução aos MDPs e aos algoritmos IV e RTDP
 

Introdução a sistemas distribuídos