SlideShare une entreprise Scribd logo
1  sur  121
Télécharger pour lire hors ligne
2011




                             arquiteturas
                              modernas
                um panorama sobre velhas necessidades
                       e novas oportunidades


                                                @vquaiato
Saturday, September 10, 11
@vquaiato
                       (vinicius quaiato)
                             programador
                              palestrante
                                   pai
                                santista
                               entusiasta
                               consultor
                              etc, etc, etc




Saturday, September 10, 11
@vquaiato
                       (vinicius quaiato)

       http://viniciusquaiato.com
          http://crafters.com.br


    vinicius.quaiato@gmail.com




Saturday, September 10, 11
um blog



Saturday, September 10, 11
vazio e sem retorno
                           de valor



Saturday, September 10, 11
discussão sobre
                    arquitetura e design
                        de software


Saturday, September 10, 11
.NET Architects Days



Saturday, September 10, 11
pensar



Saturday, September 10, 11
o mundo do software
                      é repleto de
                     possibilidades


Saturday, September 10, 11
mas a indústria de
                  software pode sofrer
                     alguns apagões


Saturday, September 10, 11
em software existem
                    muitas soluções



Saturday, September 10, 11
mas muitas vezes não
                   se pagam



Saturday, September 10, 11
há 10 anos você imaginaria
                ter 100 máquinas para
                  rodar seu sistema?



Saturday, September 10, 11
<lembrando>



Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
</lembrando>



Saturday, September 10, 11
há 5 anos você
                              imaginaria?



Saturday, September 10, 11
e se falarmos em
                   infinitas máquinas?



Saturday, September 10, 11
hoje você pode não só
                 imaginar: mas ter!



Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
cloud computing



Saturday, September 10, 11
mas o que é cloud
                               computing?



Saturday, September 10, 11
existem diferentes
                            significados



Saturday, September 10, 11
existem diferentes
                            significados
                          pontos de vista


Saturday, September 10, 11
“Cloud computing é a
              entrega de computação como
               um serviço ao invés de um
               produto...” - (Wikipedia)



Saturday, September 10, 11
“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. Report




Saturday, September 10, 11
“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”
                              - UCBerkeley




Saturday, September 10, 11
“...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 Technology




Saturday, September 10, 11
em comum
                             paga-se pelo uso


                             capacidades elásticas


                             interface self-service


                             recursos são abstraídos


Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
você já se questionou
              sobre armazenamento
                     de dados?


Saturday, September 10, 11
há décadas fazemos
                    da mesma maneira



Saturday, September 10, 11
<lembrar>



Saturday, September 10, 11
o mundo do software
                      é repleto de
                     possibilidades


Saturday, September 10, 11
</lembrar>



Saturday, September 10, 11
estamos tão
                             acostumados com
                                problemas


Saturday, September 10, 11
fechamos os olhos
                                   para
                             (novas) soluções


Saturday, September 10, 11
há algum tempo você
                     tem ouvido um
                        zumbido



Saturday, September 10, 11
opções não
                             relacionais estão
                              ganhando força


Saturday, September 10, 11
@porcelli
Saturday, September 10, 11
cada uma destas
                    opções resolve um
                   problema específico


Saturday, September 10, 11
o objetivo do nosql
                 não é anular o banco
                       relacional


Saturday, September 10, 11
algumas
                             possibilidades



Saturday, September 10, 11
já pensou em realizar
                  o login usando um
                  banco key-value?


Saturday, September 10, 11
os amigos/seguidores do seu
                sistema podem ser feitos
                        com um
               banco orientado a grafos



Saturday, September 10, 11
<reflexão>



Saturday, September 10, 11
atualmente todo sistema
               quer ter o conceito de
                 amigos/seguidores



Saturday, September 10, 11
</reflexão>



Saturday, September 10, 11
aquela aplicação cujo
                   modelo não está bem
                definido pode tirar proveito
                 de um banco schemaless



Saturday, September 10, 11
Saturday, September 10, 11
um dia alguém disse



Saturday, September 10, 11
“um computador em
                     cada casa”(gates, o bill)



Saturday, September 10, 11
hoje mais do que isso
              temos um computador
                   em cada mão


Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
Saturday, September 10, 11
os dispositivos móveis
                já fazem(mesmo?)
               parte das aplicações


Saturday, September 10, 11
mantém as
                     aplicações conosco,
                     em qualquer lugar



Saturday, September 10, 11
o backend em suas
                empresas devem se
              conectar a estes devices



Saturday, September 10, 11
backends registram
               push-notifications que são
              recebidas em qualquer lugar



Saturday, September 10, 11
sua aplicação deve estar
                        preparada para suportar
                         uma interface simples
                          com menos poder de
                            processamento


Saturday, September 10, 11
processamento na
              nuvem precisa começar
              a fazer parte da solução


Saturday, September 10, 11
remotamente, deve
                ser possível tomar
              decisões importantes



Saturday, September 10, 11
Saturday, September 10, 11
quando você fica
                   parado em uma fila
                  está perdendo tempo



Saturday, September 10, 11
se tivesse uma forma de
               ser avisado somente na
              sua vez tudo seria melhor




Saturday, September 10, 11
a forma como fazemos
                         isso(programação
                     assíncrona) pode não ser
                           mais a melhor



Saturday, September 10, 11
programação reativa pode
              nos ajudar a lidar com toda
                  essa complexidade




Saturday, September 10, 11
(Rx)
Saturday, September 10, 11
Reactive Extensions




Saturday, September 10, 11
composição de
              aplicações assíncronas
              e baseadas em eventos


Saturday, September 10, 11
sequências de dados
               representadas na forma
              de observable sequences



Saturday, September 10, 11
o padrão de observers
                notifica todos interessados
               sobre mudanças no fluxo de
                          dados



Saturday, September 10, 11
asynchronous method
                 pattern criado de
              forma bastante simples


Saturday, September 10, 11
opera-se com LINQ
                          sobre estas
                          sequências


Saturday, September 10, 11
group, select,
               SelectMany, Throttle,
               TakeUntil, Retry, etc


Saturday, September 10, 11
.NET, WP7, Silverlight
                  e Javascript



Saturday, September 10, 11
além do Rx o futuro
                         do c# é async



Saturday, September 10, 11
pensar de forma não
                             blocante é importante,
                             necessário e hoje muito
                                     viável



Saturday, September 10, 11
Saturday, September 10, 11
se jogarmos todo tráfego
                da marginal em uma
                 única via: tudo para




Saturday, September 10, 11
por isso criamos mais
               vias e paralelizamos
                      o tráfego



Saturday, September 10, 11
há 10 anos tínhamos
                  computadores single
                          core


Saturday, September 10, 11
alguns tiveram um
              poderoso processador
              com Hyper-Threading


Saturday, September 10, 11
hoje é quase padrão
                  computadores com 2
                    ou mais núcleos


Saturday, September 10, 11
suas aplicações são
                         pensadas paras tirar o
                         máximo de proveito da
                              máquina?




Saturday, September 10, 11
criar aplicações multi
                    threading é
                    complicado


Saturday, September 10, 11
para tirar o máximo de
                    proveito em cenários
                  multi-core podemos usar o
                           PLINQ



Saturday, September 10, 11
Parallel LINQ é a
              implementação paralela
                do LINQ to objects


Saturday, September 10, 11
a intenção é acelerar a
               execução de operações
              em ambientes multi-core



Saturday, September 10, 11
nenhum esforço
                 adicional é requerido



Saturday, September 10, 11
se a operação é mais
                       custosa o PLINQ se
                    encarrega de executar da
                      maneira tradicional



Saturday, September 10, 11
Saturday, September 10, 11
pensar fora da caixa




Saturday, September 10, 11
estamos vivendo uma
                    quebra de
                   paradigmas


Saturday, September 10, 11
nuvem, paralelismo,
                    assíncrono, nosql,
                     mobilidade, etc


Saturday, September 10, 11
são realidades e não
                      mais promessas



Saturday, September 10, 11
não considerar estas
                   evoluções é voltar
                       para 2001


Saturday, September 10, 11
talvez você não
               precise de todas estas
                  opções sempre


Saturday, September 10, 11
é muito importante
              conhecer a plataforma
                 e seus recursos


Saturday, September 10, 11
hoje temos soluções
              possíveis para antigos
                     desafios


Saturday, September 10, 11
é comum resistirmos
                    às mudanças, às
                      “novidades”


Saturday, September 10, 11
mas isso pode custar
                    seu design e/ou
                      arquitetura



Saturday, September 10, 11
abrace as mudanças




Saturday, September 10, 11
2011




                             obrigado <o/
                                      @vquaiato
                             vinicius.quaiato@gmail.com
                             http://viniciusquaiato.com

                                                          @vquaiato
Saturday, September 10, 11
•          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.php



Saturday, September 10, 11

Contenu connexe

Similaire à .Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato

[cv - 2011.2] 13 - layout e proporção áurea
[cv - 2011.2] 13 - layout e proporção áurea[cv - 2011.2] 13 - layout e proporção áurea
[cv - 2011.2] 13 - layout e proporção áurea
Eduardo Novais
 

Similaire à .Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato (7)

[cv - 2011.2] 13 - layout e proporção áurea
[cv - 2011.2] 13 - layout e proporção áurea[cv - 2011.2] 13 - layout e proporção áurea
[cv - 2011.2] 13 - layout e proporção áurea
 
1,2,3 live! fronted optimizations @ guru sc - 2011.10.01
1,2,3 live! fronted optimizations @ guru sc - 2011.10.011,2,3 live! fronted optimizations @ guru sc - 2011.10.01
1,2,3 live! fronted optimizations @ guru sc - 2011.10.01
 
iOS, APIs e sincronização de dados
iOS, APIs e sincronização de dadosiOS, APIs e sincronização de dados
iOS, APIs e sincronização de dados
 
Patterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud ComputingPatterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud Computing
 
Joomla para dispositivos móveis
Joomla para dispositivos móveisJoomla para dispositivos móveis
Joomla para dispositivos móveis
 
HTML/CSS tips to improve the accessibility of your websites
HTML/CSS tips to improve the accessibility of your websitesHTML/CSS tips to improve the accessibility of your websites
HTML/CSS tips to improve the accessibility of your websites
 
Seu site voando
Seu site voandoSeu site voando
Seu site voando
 

Plus de Vinicius Quaiato

Plus de Vinicius Quaiato (20)

Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?
 
Throughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DBThroughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DB
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017
 
Microsoft loves open source
Microsoft loves open sourceMicrosoft loves open source
Microsoft loves open source
 
Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)
 
IdentityServer 4
IdentityServer 4IdentityServer 4
IdentityServer 4
 
Azure WebJobs
Azure WebJobsAzure WebJobs
Azure WebJobs
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Windows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureWindows Phone 7 & Windows Azure
Windows Phone 7 & Windows Azure
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do Windows
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do Windows
 
YAGNI, KISS e Over Patternization
YAGNI, KISS e Over PatternizationYAGNI, KISS e Over Patternization
YAGNI, KISS e Over Patternization
 
MSTechDay Lavras - Orientação a Objetos e Princípios Solid
MSTechDay Lavras - Orientação a Objetos e Princípios SolidMSTechDay Lavras - Orientação a Objetos e Princípios Solid
MSTechDay Lavras - Orientação a Objetos e Princípios Solid
 
Orientação a Objetos e Design Patterns
Orientação a Objetos e Design PatternsOrientação a Objetos e Design Patterns
Orientação a Objetos e Design Patterns
 
TDD no ASP.NET MVC
TDD no ASP.NET MVCTDD no ASP.NET MVC
TDD no ASP.NET MVC
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
Unit Testing em .NET - VDD 2011
Unit Testing em .NET - VDD 2011Unit Testing em .NET - VDD 2011
Unit Testing em .NET - VDD 2011
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 

Dernier

Dernier (8)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 

.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato