Palestra arquitetura de processamento em tempo real

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

Transcript of Palestra arquitetura de processamento em tempo real

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