SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Tecnologiasparasistemasdistribuídos
escaláveis

MongoDB, Redis, Hadoop, Storm
Cesar Schneider
Eworks Tecnologia
Quemsoueu
•
•
•
•
•
•
•

Inventor desde 1988
Programadordesde 1998
Analistadesde 2003
Gerente/Consultordesde 2008
“Canivetesuiço”desde 2010
“Hacker” desde 2012
Arquiteto/Designer desde 2013
O quejáaprendievivi
• C/C++, PHP, Java, Ruby, JavaScript, HTML, CSS, Action Script, Bash,
Linux.
• Trabalheiemdiferentesprojetos no Brasil, EmiradosÁrabes, Chile e
USA.
• Experiência com osmercados de gerenciamento de risco,
rastreamento de veículos, geolocalização, GIS, e-commerce,
aplicaçõesmóveis, integração de sistemas, Web Services
eadministração de servidores Linux.
• Apaixonadoporesportesradicais, músicaeletrônicaeautomobilismo.
ComputaçãoDistribuída
• É
umareferênciaàcomputaçãoparalelaedescentr
alizada,
realizadapordoisoumaiscomputadoresconecta
dosatravés de umarede,
cujoobjetivoéconcluirumatarefaemcomum.
• Umacoleção de
computadoresindependentesqueaparecempar
aousuáriocomo um únicosistema.
ComputaçãoDistribuída
SistemasEscaláveis
• Um sistemaédescritocomoescalável se
permaneceeficientequandohá um
aumentosignificativo no número de recursos
(dados) e no número de usuários
• São construídos com base
numaarquiteturadistribuídaequepermiteadiçã
o de novosnóssemque a aplicaçãonecessite
ser modificada
ArquiteturaEscalável
Tecnologiasescaláveis
• MongoDB: banco de dados
orientadoàdocumentosou“NoSQL”
• Redis: armazenamento de dados emmemória
RAM com replicaçãoem disco
• Hadoop: processamento de grandes volumes
de dados usando Map/Reduce
eoutrosalgoritmos
• Storm: processamento de dados em tempo
real através de topologiasbaseadasemgrafos
Banco de dados orientado a
documentoquepermitearmazenarestruturas de
dados com alta performance,
disponibilidade,escalabilidadeeesquemasflexívei
s.
Um banco de dados possuiváriascoleções
(tabelas). Umacoleçãopossuiváriosdocumentos
(registro). Um documentopossuivários pares
chave/valor.
• Flexibilidade: dados armazenados no formato
JSON
• Velocidade:
consultassãomaisrápidasporquenãoexistem
“joins”
• Escalabilidade: capacidade de cargapode ser
aumentadafacilmenteusando“shards”
• Recursos: indices geoespaciais, queries
dinâmicas, ordenação, agregação, replicação
{

name: “Cesar Schneider”,
email: “cesar@eworks.com.br”,
age: 34,
skills: *“C”, “PHP”, “Java”+,
availableForConsulting: true
}
Relacional

Documento

Escalonamento

Possívelporémcomplexode
vido a arquitetura

Principalvantagemporter
um
arquiteturaflexívelesemesq
uemadefinido

Consistência

Ponto forte.
Estruturarígidagarante a
consistência dos dados

Eventual,
masgaranteacessoaoúltimo
valor atualizado

Disponibilidade

Podenãosuportarumagrand Fator
edemanda de dados
fundamental.Algograu de
distribuiçãopermitemaiorn
úmero de consultas
Tecnologias para sistemas distribuidos escalaveis
Servidor de estruturasda dados complexas,
armazenadasemmemória RAM, quepermitem a
execução de operaçõescomplexasemanipulação
de dados com baixalatência.
Possibilita a execução de
operaçõesatômicascomoconcatenar strings,
incrementarcontadores, ordenarlistas,
computarinterseções, uniõesediferenças.
•
•
•
•
•
•

Twitter
Instagram
Digg
Stack Overflow
Flickr
Mercado Livre
Data types
•
•
•
•
•

Strings (“string”)
Lists (“a”, “a”, “b”, “b”, ”c”, ”c”)
Sets (“a”, ”b”, “c”)
Hashes (“username cesar password 12345”)
Sorted sets (cadaelementopossui um score)
$ redis-cli set mykey "my binary safe value"
OK
$ redis-cli get mykey
my binary safe value
$ redis-cli set counter 100
OK
$ redis-cliincr counter
(integer) 101
$ redis-cliincr counter
(integer) 102
Use cases
•
•
•
•
•
•

Auto complete
Message queue
Publish/subscribe
Notification center
Sorting/Ranking
Timeline
Tecnologias para sistemas distribuidos escalaveis
É framework mantidopela Apache Foundation
quepermiteprocessamentode grandes volumes de
dados distribuídosem um cluster
quepodeconteralgumasdezenasoumilhares de nós,
ondecadanósexecutaearmazena dados de localmente.
Aoinvés de utilizarhardwarescarose com
altadisponibilidade, épossívelmontar um cluster
Hadoop com qualquertipo de
máquinaporquefoidesenhado com estafinalidade.
•
•
•
•

Hadoop Common
Hadoop Distributed File System (HDFS)
Hadoop YARN (job scheduling and cluster resource management)
HadoopMapReduce (YARN based parallel data processing)

•
•
•
•
•
•
•
•

Ambari (web-based monitoring, management and provisioning)
AVRO (data serialization system)
Cassandra (multi-master database sem SPF)
Hbase (distributed database for structured data and big tables)
Hive (datawarehouse infrastructure for data summarization)
Pig (data-flow language and execution framework)
Mahout (machine learning e data mining)
Zookeeper (serviço de coordenaçãoparaaplicaçõesdistribuídas)
•
•
•
•

Indexação de busca de produtos (Amazon)
Sistema de recomendação (Netflix)
Analise de logs erelatóriosanalíticos (Facebook)
Analise de metadados de arquivos de audio
(last.fm)
• Pessoasquetalvezvocêconheça (LinkedIn)
• Previsão de resultados (Obama)
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveis
Storm
Sistemadistribuído de processamento de dados
em tempo real a partir de “streams” de dados.
Umatopologia Storm consume “streams” de
dados
realizandoprocessamentoscomplexosdestasinfor
mações, reparticionandoestes dados
emdiversarfases de processamento de acordo
com a necessidade do resultado final.
Storm Use Cases
•
•
•
•
•
•

Twitter
Groupon
Rubicon Project
Full Contact
Alibaba
Mercado Livre
Storm Architecture
Storm Concepts
• Topologies (grafos de transformações de
dados compostopornósquepodem ser
“spouts” ou “bolts”)
• Streams (compostosporfontes de dados
eprocessadores de dados)
• Data Models (definição dos camposetipos de
dados do resultado final)
Storm Topology
Storm Topology
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("sentences", new RandomSentenceSpout(), 5);
builder.setBolt("split", new SplitSentence(), 8)
.shuffleGrouping("sentences");
builder.setBolt("count", new WordCount(), 12)
.fieldsGrouping("split", new Fields("word"));
That’s all, folks!

Mais conteúdo relacionado

Semelhante a Tecnologias para sistemas distribuidos escalaveis

Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsHoracio Ibrahim
 
DeskMetrics - Arquitetura, Python e NoSQL
DeskMetrics - Arquitetura, Python e NoSQLDeskMetrics - Arquitetura, Python e NoSQL
DeskMetrics - Arquitetura, Python e NoSQLHerberth Amaral
 
Terraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWSTerraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWSLeandro Freitas
 
Tornando se um DevOps sem perder a cabeça #SE7I2016
Tornando se um DevOps sem perder a cabeça #SE7I2016Tornando se um DevOps sem perder a cabeça #SE7I2016
Tornando se um DevOps sem perder a cabeça #SE7I2016Camilla Gomes
 
AWS - Conceitos, Segurança e Demonstração
AWS - Conceitos, Segurança e DemonstraçãoAWS - Conceitos, Segurança e Demonstração
AWS - Conceitos, Segurança e DemonstraçãoMaurício Harley
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 
Allen apresentação365 & azure
Allen apresentação365 & azureAllen apresentação365 & azure
Allen apresentação365 & azureAllen Informática
 
Introdução ao Apache Hadoop
Introdução ao Apache HadoopIntrodução ao Apache Hadoop
Introdução ao Apache HadoopVinícius Barros
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)Caio Candido
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATALeonardo Dias
 
Arquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceArquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceFelipe RENZ - MBA TI / Big
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Ambiente Livre
 
Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Mario Guedes
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureFabrício Lopes Sanchez
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Thiago Santiago
 

Semelhante a Tecnologias para sistemas distribuidos escalaveis (20)

Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
BIG DATA na UFSM
BIG DATA na UFSMBIG DATA na UFSM
BIG DATA na UFSM
 
DeskMetrics - Arquitetura, Python e NoSQL
DeskMetrics - Arquitetura, Python e NoSQLDeskMetrics - Arquitetura, Python e NoSQL
DeskMetrics - Arquitetura, Python e NoSQL
 
Terraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWSTerraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWS
 
Tornando se um DevOps sem perder a cabeça #SE7I2016
Tornando se um DevOps sem perder a cabeça #SE7I2016Tornando se um DevOps sem perder a cabeça #SE7I2016
Tornando se um DevOps sem perder a cabeça #SE7I2016
 
AWS - Conceitos, Segurança e Demonstração
AWS - Conceitos, Segurança e DemonstraçãoAWS - Conceitos, Segurança e Demonstração
AWS - Conceitos, Segurança e Demonstração
 
Pres clusterpdf
Pres clusterpdfPres clusterpdf
Pres clusterpdf
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
Allen apresentação365 & azure
Allen apresentação365 & azureAllen apresentação365 & azure
Allen apresentação365 & azure
 
Introdução ao Apache Hadoop
Introdução ao Apache HadoopIntrodução ao Apache Hadoop
Introdução ao Apache Hadoop
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Arquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceArquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open source
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre
 
Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014
 

Tecnologias para sistemas distribuidos escalaveis