Arquiteturas de sistemas reais

11
Arquitetura de Sistemas Reais Bruno Marquete da Silva Geovane Pazine Filho Igor Vinicius dos Santos Silva Inael Rodrigues de Oliveira Neto Jackeline Neves de Almeida Vinícius Gonçalves Braga

Transcript of Arquiteturas de sistemas reais

Page 1: Arquiteturas de sistemas reais

Arquitetura de Sistemas Reais

Bruno Marquete da SilvaGeovane Pazine Filho

Igor Vinicius dos Santos SilvaInael Rodrigues de Oliveira Neto

Jackeline Neves de AlmeidaVinícius Gonçalves Braga

Page 2: Arquiteturas de sistemas reais

Agenda

● Visão geral de arquiteturas;● Node.js● Facebook● Twitter● Google (Search)● Exemplo de código

Page 3: Arquiteturas de sistemas reais

Visão GeralA arquitetura de Software é a estrutura do sistema que compreende:

● Os elementos que o compõem● Os relacionamentos entre eles● Seus relacionamentos com o ambiente

Page 4: Arquiteturas de sistemas reais

Node.js

Objetivo:Fornecer uma maneira fácil de criar programas

de rede escaláveisComo:

JavaScript do lado do servidor

Page 5: Arquiteturas de sistemas reais

Node.js

● O Node soluciona o problema de gargalo de arquitetura de aplicativos da web mudando a forma como uma conexão é feita no servidor.

● Nunca ocorrerá um impasse de bloqueios.● Um servidor que o execute pode suportar dezenas de milhares de

conexões simultâneas.● Programação direcionada a eventos.

Page 6: Arquiteturas de sistemas reais

Node.jsPara o que ele é bom?

● Uma API RESTful - Um serviço da Web que forneça uma API RESTful recebe alguns parâmetros, interpreta-os, monta uma resposta e envia-a de volta ao usuário.

● Fila do Twitter - A função do Node é rapidamente coletar o tweet e passar essa informação para outro processo, responsável por gravá-lo.

● Servidor de arquivos de imagem - (pense no Facebook ou Flickr) a empresa pode usá-lo para codificar um recuperador de arquivos fácil e, a seguir, tratar dezenas de milhares de conexões.

Page 7: Arquiteturas de sistemas reais

● MySQL/InnoDB para armazenamento;● Multifeed - um sistema desenvolvido pelo Facebook

responsável por notificar e ranquear as atualizações dos perfis;

● Thrift para comunicação;● Memcached - sistema de cache distribuído, utilizado

para manter as informações do Timeline.

Facebook (Timeline)

Page 8: Arquiteturas de sistemas reais

Facebook (Timeline)

Page 9: Arquiteturas de sistemas reais

● Tudo na RAM○ Banco de dados é Backup (Cassandra)

● Ruby em front-end, Scala em back-end● Modelo de Mensagem e processo

assincrono● Niveis de cache

○ Fragment cache (Versões serializadas dos tweets)○ Row cache (Usuários e Tweets)○ Vector cache (Array de IDs de Tweet)

● Middleware é uma mistura de C com Scala

Twitter

Page 10: Arquiteturas de sistemas reais

Como já sabemos, o Google tem uma história na busca de recursos

computacionais que suportem a sua missão, de forma confiável e eficiente,

com o menor custo.

"Organizar as informações do mundo e torná-las mundialmente acessíveis e úteis.

Missão do Google

Google (Search)

Page 11: Arquiteturas de sistemas reais

Google (Search)