![Page 1: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/1.jpg)
Arquiteturas de Processamento em Tempo Real
Campus Party 2011Leandro C. A. Lima
![Page 2: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/3.jpg)
Cenário
Wow! 5Mb!!!
![Page 4: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/4.jpg)
Oh! Really ?!
Bill Gates em 1981
“640K ought to be enough for anybody”
![Page 5: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/6.jpg)
Text
http://www.mocom2020.com/data/2009/05/computer-power-future.gif
![Page 7: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/8.jpg)
Hoje em dia ...
![Page 9: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/16.jpg)
Isto é um arquivo
Esse é o arquivista!
![Page 17: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/19.jpg)
Resultado:
Saldo zerado por várias horas
Batch rodou às 21h, compra às 21:30
![Page 20: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/20.jpg)
![Page 21: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/22.jpg)
Resultado:
Cliente notificado na hora
Minutos depois compra efetuada
![Page 23: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/23.jpg)
![Page 24: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/26.jpg)
É, 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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/27.jpg)
Os meios
![Page 28: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/31.jpg)
Plataforma
Java (Spring, Struts, vRaptor, Grails)
PHP
Python (django, etc.)
Arquitetura é importante
![Page 32: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/33.jpg)
![Page 34: Palestra arquitetura de processamento em tempo real](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022070316/555ad646d8b42a024a8b4bd1/html5/thumbnails/37.jpg)
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