net e arquiteturas modernas - qconsp 2011 - vinicius quaiato

Post on 14-Jan-2015

7.015 Views

Category:

Technology

10 Downloads

Preview:

Click to see full reader

DESCRIPTION

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.

TRANSCRIPT

arquiteturas modernas

um panorama sobre velhas necessidades e novas oportunidades

2011

@vquaiatoSaturday, September 10, 11

@vquaiato(vinicius quaiato)

programadorpalestrante

paisantista

entusiastaconsultor

etc, etc, etc

Saturday, September 10, 11

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

vinicius.quaiato@gmail.com

@vquaiato(vinicius quaiato)

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

@porcelliSaturday, 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

obrigado <o/@vquaiato

vinicius.quaiato@gmail.comhttp://viniciusquaiato.com

2011

@vquaiatoSaturday, 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

top related