.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato

7,397 views

Published on

Palestra mostrando novidades da plataforma .NET/Microsoft que possibilitam a criação de arquiteturas modernas resolvendo problemas antigos e frequentes. Panorama sobre a utilização de Cloud Computing, computação paralela, computação assíncrona, mobilidade, nosql e muito mais.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,397
On SlideShare
0
From Embeds
0
Number of Embeds
5,349
Actions
Shares
0
Downloads
61
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato

  1. 1. 2011 arquiteturas modernas um panorama sobre velhas necessidades e novas oportunidades @vquaiatoSaturday, September 10, 11
  2. 2. @vquaiato (vinicius quaiato) programador palestrante pai santista entusiasta consultor etc, etc, etcSaturday, September 10, 11
  3. 3. @vquaiato (vinicius quaiato) http://viniciusquaiato.com http://crafters.com.br vinicius.quaiato@gmail.comSaturday, September 10, 11
  4. 4. um blogSaturday, September 10, 11
  5. 5. vazio e sem retorno de valorSaturday, September 10, 11
  6. 6. discussão sobre arquitetura e design de softwareSaturday, September 10, 11
  7. 7. .NET Architects DaysSaturday, September 10, 11
  8. 8. pensarSaturday, September 10, 11
  9. 9. o mundo do software é repleto de possibilidadesSaturday, September 10, 11
  10. 10. mas a indústria de software pode sofrer alguns apagõesSaturday, September 10, 11
  11. 11. em software existem muitas soluçõesSaturday, September 10, 11
  12. 12. mas muitas vezes não se pagamSaturday, September 10, 11
  13. 13. há 10 anos você imaginaria ter 100 máquinas para rodar seu sistema?Saturday, September 10, 11
  14. 14. <lembrando>Saturday, September 10, 11
  15. 15. Saturday, September 10, 11
  16. 16. Saturday, September 10, 11
  17. 17. Saturday, September 10, 11
  18. 18. Saturday, September 10, 11
  19. 19. Saturday, September 10, 11
  20. 20. </lembrando>Saturday, September 10, 11
  21. 21. há 5 anos você imaginaria?Saturday, September 10, 11
  22. 22. e se falarmos em infinitas máquinas?Saturday, September 10, 11
  23. 23. hoje você pode não só imaginar: mas ter!Saturday, September 10, 11
  24. 24. Saturday, September 10, 11
  25. 25. Saturday, September 10, 11
  26. 26. cloud computingSaturday, September 10, 11
  27. 27. mas o que é cloud computing?Saturday, September 10, 11
  28. 28. existem diferentes significadosSaturday, September 10, 11
  29. 29. existem diferentes significados pontos de vistaSaturday, September 10, 11
  30. 30. “Cloud computing é a entrega de computação como um serviço ao invés de um produto...” - (Wikipedia)Saturday, September 10, 11
  31. 31. “Clouds são serviços que oferecem computação, rede e armazenamento. O gerenciamento do hardware é totalmente abstraído de quem compra o serviço...” - McKinsey & Co. ReportSaturday, September 10, 11
  32. 32. “Cloud computing possui as seguintes características: (1) ilusão de recursos de computação infinitos; (2) não há necessidade de um compromisso inicial; (3) paga-se pelo uso, conforme for preciso” - UCBerkeleySaturday, September 10, 11
  33. 33. “...um modelo onde paga-se pelo uso para ter disponibilidade, praticidade, e acesso sob demanda a um pool de recursos de computação(rede, servidores, armazenamento, aplicações, serviços) que podem ser rapidamente provisionados e liberados com um esforço mínimo” - National Institute of Standards and TechnologySaturday, September 10, 11
  34. 34. em comum paga-se pelo uso capacidades elásticas interface self-service recursos são abstraídosSaturday, September 10, 11
  35. 35. Saturday, September 10, 11
  36. 36. Saturday, September 10, 11
  37. 37. Saturday, September 10, 11
  38. 38. Saturday, September 10, 11
  39. 39. Saturday, September 10, 11
  40. 40. Saturday, September 10, 11
  41. 41. Saturday, September 10, 11
  42. 42. Saturday, September 10, 11
  43. 43. Saturday, September 10, 11
  44. 44. Saturday, September 10, 11
  45. 45. Saturday, September 10, 11
  46. 46. você já se questionou sobre armazenamento de dados?Saturday, September 10, 11
  47. 47. há décadas fazemos da mesma maneiraSaturday, September 10, 11
  48. 48. <lembrar>Saturday, September 10, 11
  49. 49. o mundo do software é repleto de possibilidadesSaturday, September 10, 11
  50. 50. </lembrar>Saturday, September 10, 11
  51. 51. estamos tão acostumados com problemasSaturday, September 10, 11
  52. 52. fechamos os olhos para (novas) soluçõesSaturday, September 10, 11
  53. 53. há algum tempo você tem ouvido um zumbidoSaturday, September 10, 11
  54. 54. opções não relacionais estão ganhando forçaSaturday, September 10, 11
  55. 55. @porcelliSaturday, September 10, 11
  56. 56. cada uma destas opções resolve um problema específicoSaturday, September 10, 11
  57. 57. o objetivo do nosql não é anular o banco relacionalSaturday, September 10, 11
  58. 58. algumas possibilidadesSaturday, September 10, 11
  59. 59. já pensou em realizar o login usando um banco key-value?Saturday, September 10, 11
  60. 60. os amigos/seguidores do seu sistema podem ser feitos com um banco orientado a grafosSaturday, September 10, 11
  61. 61. <reflexão>Saturday, September 10, 11
  62. 62. atualmente todo sistema quer ter o conceito de amigos/seguidoresSaturday, September 10, 11
  63. 63. </reflexão>Saturday, September 10, 11
  64. 64. aquela aplicação cujo modelo não está bem definido pode tirar proveito de um banco schemalessSaturday, September 10, 11
  65. 65. Saturday, September 10, 11
  66. 66. um dia alguém disseSaturday, September 10, 11
  67. 67. “um computador em cada casa”(gates, o bill)Saturday, September 10, 11
  68. 68. hoje mais do que isso temos um computador em cada mãoSaturday, September 10, 11
  69. 69. Saturday, September 10, 11
  70. 70. Saturday, September 10, 11
  71. 71. Saturday, September 10, 11
  72. 72. os dispositivos móveis já fazem(mesmo?) parte das aplicaçõesSaturday, September 10, 11
  73. 73. mantém as aplicações conosco, em qualquer lugarSaturday, September 10, 11
  74. 74. o backend em suas empresas devem se conectar a estes devicesSaturday, September 10, 11
  75. 75. backends registram push-notifications que são recebidas em qualquer lugarSaturday, September 10, 11
  76. 76. sua aplicação deve estar preparada para suportar uma interface simples com menos poder de processamentoSaturday, September 10, 11
  77. 77. processamento na nuvem precisa começar a fazer parte da soluçãoSaturday, September 10, 11
  78. 78. remotamente, deve ser possível tomar decisões importantesSaturday, September 10, 11
  79. 79. Saturday, September 10, 11
  80. 80. quando você fica parado em uma fila está perdendo tempoSaturday, September 10, 11
  81. 81. se tivesse uma forma de ser avisado somente na sua vez tudo seria melhorSaturday, September 10, 11
  82. 82. a forma como fazemos isso(programação assíncrona) pode não ser mais a melhorSaturday, September 10, 11
  83. 83. programação reativa pode nos ajudar a lidar com toda essa complexidadeSaturday, September 10, 11
  84. 84. (Rx)Saturday, September 10, 11
  85. 85. Reactive ExtensionsSaturday, September 10, 11
  86. 86. composição de aplicações assíncronas e baseadas em eventosSaturday, September 10, 11
  87. 87. sequências de dados representadas na forma de observable sequencesSaturday, September 10, 11
  88. 88. o padrão de observers notifica todos interessados sobre mudanças no fluxo de dadosSaturday, September 10, 11
  89. 89. asynchronous method pattern criado de forma bastante simplesSaturday, September 10, 11
  90. 90. opera-se com LINQ sobre estas sequênciasSaturday, September 10, 11
  91. 91. group, select, SelectMany, Throttle, TakeUntil, Retry, etcSaturday, September 10, 11
  92. 92. .NET, WP7, Silverlight e JavascriptSaturday, September 10, 11
  93. 93. além do Rx o futuro do c# é asyncSaturday, September 10, 11
  94. 94. pensar de forma não blocante é importante, necessário e hoje muito viávelSaturday, September 10, 11
  95. 95. Saturday, September 10, 11
  96. 96. se jogarmos todo tráfego da marginal em uma única via: tudo paraSaturday, September 10, 11
  97. 97. por isso criamos mais vias e paralelizamos o tráfegoSaturday, September 10, 11
  98. 98. há 10 anos tínhamos computadores single coreSaturday, September 10, 11
  99. 99. alguns tiveram um poderoso processador com Hyper-ThreadingSaturday, September 10, 11
  100. 100. hoje é quase padrão computadores com 2 ou mais núcleosSaturday, September 10, 11
  101. 101. suas aplicações são pensadas paras tirar o máximo de proveito da máquina?Saturday, September 10, 11
  102. 102. criar aplicações multi threading é complicadoSaturday, September 10, 11
  103. 103. para tirar o máximo de proveito em cenários multi-core podemos usar o PLINQSaturday, September 10, 11
  104. 104. Parallel LINQ é a implementação paralela do LINQ to objectsSaturday, September 10, 11
  105. 105. a intenção é acelerar a execução de operações em ambientes multi-coreSaturday, September 10, 11
  106. 106. nenhum esforço adicional é requeridoSaturday, September 10, 11
  107. 107. se a operação é mais custosa o PLINQ se encarrega de executar da maneira tradicionalSaturday, September 10, 11
  108. 108. Saturday, September 10, 11
  109. 109. pensar fora da caixaSaturday, September 10, 11
  110. 110. estamos vivendo uma quebra de paradigmasSaturday, September 10, 11
  111. 111. nuvem, paralelismo, assíncrono, nosql, mobilidade, etcSaturday, September 10, 11
  112. 112. são realidades e não mais promessasSaturday, September 10, 11
  113. 113. não considerar estas evoluções é voltar para 2001Saturday, September 10, 11
  114. 114. talvez você não precise de todas estas opções sempreSaturday, September 10, 11
  115. 115. é muito importante conhecer a plataforma e seus recursosSaturday, September 10, 11
  116. 116. hoje temos soluções possíveis para antigos desafiosSaturday, September 10, 11
  117. 117. é comum resistirmos às mudanças, às “novidades”Saturday, September 10, 11
  118. 118. mas isso pode custar seu design e/ou arquiteturaSaturday, September 10, 11
  119. 119. abrace as mudançasSaturday, September 10, 11
  120. 120. 2011 obrigado <o/ @vquaiato vinicius.quaiato@gmail.com http://viniciusquaiato.com @vquaiatoSaturday, September 10, 11
  121. 121. • http://www.slideshare.net/alexandre_porcelli/nosql-mstechday-so-paulo/ • http://viniciusquaiato.com/blog/category/windows-azure/ • http://www.microsoft.com/windowsazure/ • http://www.slideshare.net/Guppers/im-cloud-confused • http://www.slideshare.net/jamesbroberg/ introduction-to-cloud-computing- ccgrid-2009 • http://soapatterns.org/ • http://www.slideshare.net/simonguest/ patterns-for-cloud-computing • http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Event-Processing • http://msdn.microsoft.com/en-us/magazine/cc163329.aspx • http://msdn.microsoft.com/en-us/library/dd997399.aspx • http://viniciusquaiato.com/blog/plinq-paralelismo-no-net-4-com-parallel-linq/ • http://weblogs.asp.net/gunnarpeipman/archive/2010/01/31/net-framework-4-0- comparing-linq-and-plinq-performance.aspx • http://msdn.microsoft.com/en-us/library/hh242985(v=VS.103).aspx • http://en.wikipedia.org/wiki/Reactive_programming • http://jesseliberty.com/reactive-extensionsindex/ • http://www.archive.org/web/web.phpSaturday, September 10, 11

×