0
Distribuindo SistemasLições (re)aprendidas na construção de um Sistema de Sistemas1Friday, June 14, 13
br.linkedin.com/lsdrochaLuiz Rocha{github.com/lsdrtwitter.com/lsdrlsdr.net2Friday, June 14, 13
Sistemasdistribuídos sãolegais3Friday, June 14, 13
p2p4Friday, June 14, 13
client-server5Friday, June 14, 13
clusteringn-tier6Friday, June 14, 13
a webhttp://www.flickr.com/photos/gwgwijnands/5018129073/sizes/o/in/photostream/7Friday, June 14, 13
• Você está cercado de sistemasdistribuídos• Diversos “estilos” de arquitetura• Sistema de Sistemasrecapitulando8Friday, J...
Fatos Públicos eNotórios9Friday, June 14, 13
1960 - 197010Friday, June 14, 13
clássica“Um sistema distribuído é aquele no qualcomponentes localizados emcomputadores interligados em rede secomunicam e ...
ConcorrênciaDesacoplamento de ComponentesAusência de Memória CompartilhadaRelógios IndependentesPropagação de Falhas12Frid...
“Um sistema distribuído é aquele ondeuma falha em um computador que vocênunca imaginou que existisse te impedede usar seu ...
Princípio da Robustez“Seja conservadorno que você faz,seja liberal com oque aceita dosoutros.”Jon Postel14Friday, June 14,...
A rede é confiávelA latência é zeroA banda é infinitaA rede é seguraTopologias não mudamExiste um administradorCusto de tr...
• Sistemas distribuídos não sãonovidade!• Ainda assim, todo mundo deslizana hora H• “Aqueles que desconhecem opassado estã...
Sistemas de Sistemas17Friday, June 14, 13
18Friday, June 14, 13
OutroPublicador?WTF?19Friday, June 14, 13
20Friday, June 14, 13
requisitosnegóciospessoasorçamentosprioridadesculturasindependênciaescalasimplicidademanutenção21Friday, June 14, 13
Lei de Gall“Um sistema complexo que funcionainvariavelmente evoluiu de um sistemasimples que funcionava.”22Friday, June 14...
CMSCDSWKS23Friday, June 14, 13
CMScriação/gestãoCDSWKS24Friday, June 14, 13
CMSCDSdistribuiçãoWKS25Friday, June 14, 13
CMSCDSWKSinteligência26Friday, June 14, 13
+40sistemasrecursos, APIs,serviços, sites, ...27Friday, June 14, 13
28Friday, June 14, 13
http://j.mp/rest-na-abril29Friday, June 14, 13
• Componentização eindependência das partes• Construção por composição• Emerge da necessidade, não dedesenho préviorecapit...
Lições(re)aprendidas31Friday, June 14, 13
Não existem exceçõespara a Lei de Postel32Friday, June 14, 13
APIcase http.status_codewhen 200faz_alguma_coisawhen 404mostre_erroCliente200 OK33Friday, June 14, 13
APIcase http.status_codewhen 200faz_alguma_coisawhen 404mostre_erroCliente410 Gone?? 34Friday, June 14, 13
APIcase http.status_codewhen 200faz_alguma_coisawhen 404mostre_erroCliente984 Oi??? 35Friday, June 14, 13
for tag in tags:processe_tag(tag)API Cliente{“titulo”: “Distribuindo Sistemas”,“tags”: [“sistemas”, “diversão”],“nota”: 6}...
{“titulo”: “Distribuindo Sistemas”,“tags”: [“sistemas”, “diversão”],“nota”: 6}for tag in tags:processe_tag(tag)API Cliente...
API Cliente{“titulo”: “Distribuindo Sistemas”,“tags”: [“sistemas”, “diversão”],“nota”: 6}persistir(doc)38Friday, June 14, 13
API Cliente{“titulo”: “Distribuindo Sistemas”,“tags”: [“sistemas”, “diversão”],“nota”: 6}??persistir(doc)39Friday, June 14...
Sempre existem ruídos40Friday, June 14, 13
• complicado propagar custo demanutenção para clientes• client-first - a exemplo da web• causo: application/xhtml+xmlversu...
Esteja preparado parafalhas42Friday, June 14, 13
43Friday, June 14, 13
?? 44Friday, June 14, 13
Cache?? 45Friday, June 14, 13
Cache não é só paraperformance46Friday, June 14, 13
• independência entre cliente eservidor• cópias locais podem introduzirinconsistências, mas adicionamresiliência• invalida...
Redes não sãomágicas48Friday, June 14, 13
Toda rede falha49Friday, June 14, 13
Toda rede oscila50Friday, June 14, 13
Pacotes se perdem51Friday, June 14, 13
API ClienteAPI ClienteAPI Cliente10 ms10 segtimeout?semresposta?52Friday, June 14, 13
Se a rede cair, quantotempo seu clientepermanece vivo?53Friday, June 14, 13
54Friday, June 14, 13
DDoS auto-inflingido55Friday, June 14, 13
Graceful Degradation56Friday, June 14, 13
• considere sempre caso em que arede falha• considere sempre que asmensagens vão crescer de tamanho• não faça requisições ...
Perguntas?58Friday, June 14, 13
Obrigado!59Friday, June 14, 13
http://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/http://en.wikipedia.org/wiki/Fall...
Upcoming SlideShare
Loading in...5
×

Distribuindo Sistemas

294

Published on

Palestra sobre sistemas distribuídos e a experiência com o Alexandria no 2o ENCATEC

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
294
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Distribuindo Sistemas"

  1. 1. Distribuindo SistemasLições (re)aprendidas na construção de um Sistema de Sistemas1Friday, June 14, 13
  2. 2. br.linkedin.com/lsdrochaLuiz Rocha{github.com/lsdrtwitter.com/lsdrlsdr.net2Friday, June 14, 13
  3. 3. Sistemasdistribuídos sãolegais3Friday, June 14, 13
  4. 4. p2p4Friday, June 14, 13
  5. 5. client-server5Friday, June 14, 13
  6. 6. clusteringn-tier6Friday, June 14, 13
  7. 7. a webhttp://www.flickr.com/photos/gwgwijnands/5018129073/sizes/o/in/photostream/7Friday, June 14, 13
  8. 8. • Você está cercado de sistemasdistribuídos• Diversos “estilos” de arquitetura• Sistema de Sistemasrecapitulando8Friday, June 14, 13
  9. 9. Fatos Públicos eNotórios9Friday, June 14, 13
  10. 10. 1960 - 197010Friday, June 14, 13
  11. 11. clássica“Um sistema distribuído é aquele no qualcomponentes localizados emcomputadores interligados em rede secomunicam e coordenam suas açõesapenas passando mensagens”1988 - Coulouris, Dollimore, Kindberg11Friday, June 14, 13
  12. 12. ConcorrênciaDesacoplamento de ComponentesAusência de Memória CompartilhadaRelógios IndependentesPropagação de Falhas12Friday, June 14, 13
  13. 13. “Um sistema distribuído é aquele ondeuma falha em um computador que vocênunca imaginou que existisse te impedede usar seu próprio computador.”Leslie Lamport13Friday, June 14, 13
  14. 14. Princípio da Robustez“Seja conservadorno que você faz,seja liberal com oque aceita dosoutros.”Jon Postel14Friday, June 14, 13
  15. 15. A rede é confiávelA latência é zeroA banda é infinitaA rede é seguraTopologias não mudamExiste um administradorCusto de transporte é zeroA rede é homogênea8Falácias daComputaçãoDistribuídaPeter Deutsch199415Friday, June 14, 13
  16. 16. • Sistemas distribuídos não sãonovidade!• Ainda assim, todo mundo deslizana hora H• “Aqueles que desconhecem opassado estão fadados à repetí-lo.”recapitulando16Friday, June 14, 13
  17. 17. Sistemas de Sistemas17Friday, June 14, 13
  18. 18. 18Friday, June 14, 13
  19. 19. OutroPublicador?WTF?19Friday, June 14, 13
  20. 20. 20Friday, June 14, 13
  21. 21. requisitosnegóciospessoasorçamentosprioridadesculturasindependênciaescalasimplicidademanutenção21Friday, June 14, 13
  22. 22. Lei de Gall“Um sistema complexo que funcionainvariavelmente evoluiu de um sistemasimples que funcionava.”22Friday, June 14, 13
  23. 23. CMSCDSWKS23Friday, June 14, 13
  24. 24. CMScriação/gestãoCDSWKS24Friday, June 14, 13
  25. 25. CMSCDSdistribuiçãoWKS25Friday, June 14, 13
  26. 26. CMSCDSWKSinteligência26Friday, June 14, 13
  27. 27. +40sistemasrecursos, APIs,serviços, sites, ...27Friday, June 14, 13
  28. 28. 28Friday, June 14, 13
  29. 29. http://j.mp/rest-na-abril29Friday, June 14, 13
  30. 30. • Componentização eindependência das partes• Construção por composição• Emerge da necessidade, não dedesenho préviorecapitulando30Friday, June 14, 13
  31. 31. Lições(re)aprendidas31Friday, June 14, 13
  32. 32. Não existem exceçõespara a Lei de Postel32Friday, June 14, 13
  33. 33. APIcase http.status_codewhen 200faz_alguma_coisawhen 404mostre_erroCliente200 OK33Friday, June 14, 13
  34. 34. APIcase http.status_codewhen 200faz_alguma_coisawhen 404mostre_erroCliente410 Gone?? 34Friday, June 14, 13
  35. 35. APIcase http.status_codewhen 200faz_alguma_coisawhen 404mostre_erroCliente984 Oi??? 35Friday, June 14, 13
  36. 36. for tag in tags:processe_tag(tag)API Cliente{“titulo”: “Distribuindo Sistemas”,“tags”: [“sistemas”, “diversão”],“nota”: 6}36Friday, June 14, 13
  37. 37. {“titulo”: “Distribuindo Sistemas”,“tags”: [“sistemas”, “diversão”],“nota”: 6}for tag in tags:processe_tag(tag)API Cliente?? 37Friday, June 14, 13
  38. 38. API Cliente{“titulo”: “Distribuindo Sistemas”,“tags”: [“sistemas”, “diversão”],“nota”: 6}persistir(doc)38Friday, June 14, 13
  39. 39. API Cliente{“titulo”: “Distribuindo Sistemas”,“tags”: [“sistemas”, “diversão”],“nota”: 6}??persistir(doc)39Friday, June 14, 13
  40. 40. Sempre existem ruídos40Friday, June 14, 13
  41. 41. • complicado propagar custo demanutenção para clientes• client-first - a exemplo da web• causo: application/xhtml+xmlversus text/html para servirXHTML 1.041Friday, June 14, 13
  42. 42. Esteja preparado parafalhas42Friday, June 14, 13
  43. 43. 43Friday, June 14, 13
  44. 44. ?? 44Friday, June 14, 13
  45. 45. Cache?? 45Friday, June 14, 13
  46. 46. Cache não é só paraperformance46Friday, June 14, 13
  47. 47. • independência entre cliente eservidor• cópias locais podem introduzirinconsistências, mas adicionamresiliência• invalidar cache é insano, deixeexpirar47Friday, June 14, 13
  48. 48. Redes não sãomágicas48Friday, June 14, 13
  49. 49. Toda rede falha49Friday, June 14, 13
  50. 50. Toda rede oscila50Friday, June 14, 13
  51. 51. Pacotes se perdem51Friday, June 14, 13
  52. 52. API ClienteAPI ClienteAPI Cliente10 ms10 segtimeout?semresposta?52Friday, June 14, 13
  53. 53. Se a rede cair, quantotempo seu clientepermanece vivo?53Friday, June 14, 13
  54. 54. 54Friday, June 14, 13
  55. 55. DDoS auto-inflingido55Friday, June 14, 13
  56. 56. Graceful Degradation56Friday, June 14, 13
  57. 57. • considere sempre caso em que arede falha• considere sempre que asmensagens vão crescer de tamanho• não faça requisições em série57Friday, June 14, 13
  58. 58. Perguntas?58Friday, June 14, 13
  59. 59. Obrigado!59Friday, June 14, 13
  60. 60. http://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computinghttp://en.wikipedia.org/wiki/Galls_lawhttp://en.wikipedia.org/wiki/Robustness_principlehttp://www.rgoarchitects.com/Files/fallacies.pdfhttp://nighthacks.com/roller/jag/resource/Fallacies.htmlhttp://www.artima.com/weblogs/viewpost.jsp?thread=46706http://www.amundsen.com/blog/archives/1089http://en.wikipedia.org/wiki/Two_Generals%27_Problemhttp://en.wikipedia.org/wiki/Byzantine_fault_tolerancehttp://www.amazon.com/Distributed-Systems-Concepts-Design-Edition/dp/0321263545/60Friday, June 14, 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×