38
Arquiteturas de Processamento em Tempo Real Campus Party 2011 Leandro C. A. Lima

Palestra arquitetura de processamento em tempo real

Embed Size (px)

Citation preview

Page 1: Palestra arquitetura de processamento em tempo real

Arquiteturas de Processamento em Tempo Real

Campus Party 2011Leandro C. A. Lima

Page 2: Palestra arquitetura de processamento em tempo real

Objetivos

Pensar um pouco sobre a evolução dos sistemas

Refletir sobre os recursos computacionais disponíveis

Ponderar benefícios em sistemas de resultados em Tempo Real

Ver um exemplo prático dos pontos abordados.

Page 3: Palestra arquitetura de processamento em tempo real

Cenário

Wow! 5Mb!!!

Page 4: Palestra arquitetura de processamento em tempo real

Oh! Really ?!

Bill Gates em 1981

“640K ought to be enough for anybody”

Page 5: Palestra arquitetura de processamento em tempo real

Cenário

"The number of transistors incorporated in a chip will approximately double every 24 months." — Gordon Moore, Intel Co-Founder

Intel has kept that pace for over 40 years, providing more functions on a chip at significantly lower cost per function.

Page 6: Palestra arquitetura de processamento em tempo real

Text

http://www.mocom2020.com/data/2009/05/computer-power-future.gif

Page 7: Palestra arquitetura de processamento em tempo real

O que mudou no caminho ?

Custo computacional caiu consideravelmente

Memória e discos aumentaram consideravelmente

Conectividade e banda aumentaram drásticamente

Usuários que fazer e acontecer “na hora”.

Computação elástica, nuvem, etc.

Page 8: Palestra arquitetura de processamento em tempo real

Hoje em dia ...

Page 9: Palestra arquitetura de processamento em tempo real

Mobilidade

http://twitpic.com/135xa

http://www.editorsweblog.org/multimedia/2009/01/twitter_first_off_the_mark_with_hudson_p.php

Page 10: Palestra arquitetura de processamento em tempo real

Imagine o mundo assim

Seu email enviado hoje, chega só amanhã na caixa postal do destinatário

Tweets só são agregados e distribuídos uma vez por dia à meia-noite

Foursquare só mostra amanhã os lugares onde vc esteve hoje

Page 11: Palestra arquitetura de processamento em tempo real

Não faz sentido

A informação deve ser entregue na hora

Os usuários esperam isso, é o natural

Certamente você já ficou impaciente com um email de confirmação de cadastro que não chega “nunca”

Page 12: Palestra arquitetura de processamento em tempo real

Então, porque ...

Seu extrato do banco tem que ficar pronto amanhã ?

Sua compra de créditos não é processada na hora ?

Seu WebAnalytics te conta amanhã o que aconteceu hoje ?

Page 13: Palestra arquitetura de processamento em tempo real

Se a informação é

Entregue em tempo real (tv, internet, rádio, etc.)

Disseminada, comentada, criticada dinâmicamente milhares de vezes por segundo

Page 14: Palestra arquitetura de processamento em tempo real

A sua resposta ...

Deve ser instantânea

Informação é poder

Vantagem competitiva

Quem sabe antes, resolve antes e sai na frente

Page 15: Palestra arquitetura de processamento em tempo real

Procrastinação

Não adianta deixar para depois

Se pode ser feito “agora”, melhor fazê-lo

Processos em batch desnecessários

Analogia com o arquivista

Page 16: Palestra arquitetura de processamento em tempo real

Isto é um arquivo

Esse é o arquivista!

Page 17: Palestra arquitetura de processamento em tempo real

Exemplo:

Um sistema que notifique o usuário quando seu saldo está zerado

Intenção é que o cliente compre mais créditos

Para o usuário é importante manter o serviço ativo

Page 18: Palestra arquitetura de processamento em tempo real

Processo Batch

Uma ou duas vezes por dia

Verifica quem tem Saldo <=0

Manda e-mail/SMS para o cliente

NOT OK! Ritmo de consumo é alto

A empresa perde receita

O cliente perde oportunidades

Page 19: Palestra arquitetura de processamento em tempo real

Resultado:

Saldo zerado por várias horas

Batch rodou às 21h, compra às 21:30

Page 20: Palestra arquitetura de processamento em tempo real
Page 21: Palestra arquitetura de processamento em tempo real

Batchless

Serviço de controle de saldo

Componente intercepta os eventos

Resultado é saldo <=0 : notifica

O sistema envia e-mail/SMS na hora que interessa para o cliente

Potencializa a receita da empresa

Oportunidades relevantes para o cliente

Page 22: Palestra arquitetura de processamento em tempo real

Resultado:

Cliente notificado na hora

Minutos depois compra efetuada

Page 23: Palestra arquitetura de processamento em tempo real
Page 24: Palestra arquitetura de processamento em tempo real

Real Time

Como assim ?

Definição de Real Time Computing

Mas é ? Ou não é ?

Mercado, negócios e os termos: depende do contexto

Page 25: Palestra arquitetura de processamento em tempo real

Mas... Batchless ?

É a arte de fazer "agora", não deixar para depois

É um convite à racionalização, à busca de alternativas, à entrega mais breve de valor ao cliente

Não é o “caminho mais fácil”

Page 26: Palestra arquitetura de processamento em tempo real

É, Batchless.

Encontre a verdade, não tenha medo

Problemas acontecem e é melhor que sejam notados o quanto antes (por você, não pelo cliente)

É seu desafio desenvolver arquiteturas e sistemas robustos e que saibam comunicar seu estado e se recuperar de falhas

Page 27: Palestra arquitetura de processamento em tempo real

Os meios

Page 28: Palestra arquitetura de processamento em tempo real

Cloud Computing

Reforça o conceito de commodity computing

Deploy ágil de infra-estrutura

Infra-estrutura elástica = Custo variável

Page 29: Palestra arquitetura de processamento em tempo real

Opções

Amazon EC2, AWS, Elastic Beanstalk

Google App Engine

VPS`s no Brasil - UOLHost, Locaweb, etc.

Page 30: Palestra arquitetura de processamento em tempo real

Nem sempre

Ponderar peso dos fatores

Custo de banda pode ser um problema

Melhor benefício, pelo menor custo

Batido, mas é verdade: There’s no silver bullet.

Page 31: Palestra arquitetura de processamento em tempo real

Plataforma

Java (Spring, Struts, vRaptor, Grails)

PHP

Python (django, etc.)

Arquitetura é importante

Page 32: Palestra arquitetura de processamento em tempo real

SQL, NoSQL, ?

Bancos relacionais

Schemaless

O que precisamos em cada projeto ?

Muitas operações de escrita ?

Muitas buscas ?

Page 33: Palestra arquitetura de processamento em tempo real
Page 34: Palestra arquitetura de processamento em tempo real

Arquitetura

BBufuffeferr

BBufuffeferr

BBufuffeferr

BBufuffeferr

DC1 DC2 DC3

Redundância de

Data-Centers

Redundância de

Data-Centers

Escalabilidade Horizontal

Escalabilidade Horizontal

Alta Disponibilidad

e

Alta Disponibilidad

e

Plano BPlano B

Escalabilidade Horizontal

Sharding

Escalabilidade Horizontal

Sharding

RedundânciaReplicação

RedundânciaReplicação

Page 35: Palestra arquitetura de processamento em tempo real

Case

Click analysis - Tempo Real

Uso em sites e grandes portais

Picos de 150 req/seg para um único cliente

Benchmark de 1800 req/seg

Demanda variável

Page 36: Palestra arquitetura de processamento em tempo real

Ao redor

IPTables - parar o estrago o quanto antes

Websocket - conteúdo sob demanda para o browser

Cache - Local storage, memcache, etc.

Javascript - Ajax, e muito mais pela sua imaginação

Page 37: Palestra arquitetura de processamento em tempo real

Bibliografia

http://www.intel.com/technology/mooreslaw/

http://www.intel.com/about/companyinfo/museum/exhibits/moore.htm

http://en.wikipedia.org/wiki/Moore's_law

http://www.mocom2020.com/2009/05/evolution-of-computer-capacity-and-costs/

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

http://en.wikipedia.org/wiki/Real-time_computing

http://en.wikipedia.org/wiki/WebSockets

http://www.drbyterecuperacaodedados.com.br/hard-disk.htm

Page 38: Palestra arquitetura de processamento em tempo real

Perguntas ?

@leandrocl

[email protected]

www.leandrolima.eti.br