Tecnologiasparasistemasdistribuídos
escaláveis

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

Inventor desde 1988
Programadordesde 1998
Analistadesde 2003
Gerente/Consultordesde 2008
“Canivet...
O quejáaprendievivi
• C/C++, PHP, Java, Ruby, JavaScript, HTML, CSS, Action Script, Bash,
Linux.
• Trabalheiemdiferentespr...
ComputaçãoDistribuída
• É
umareferênciaàcomputaçãoparalelaedescentr
alizada,
realizadapordoisoumaiscomputadoresconecta
dos...
ComputaçãoDistribuída
SistemasEscaláveis
• Um sistemaédescritocomoescalável se
permaneceeficientequandohá um
aumentosignificativo no número de r...
ArquiteturaEscalável
Tecnologiasescaláveis
• MongoDB: banco de dados
orientadoàdocumentosou“NoSQL”
• Redis: armazenamento de dados emmemória
RA...
Banco de dados orientado a
documentoquepermitearmazenarestruturas de
dados com alta performance,
disponibilidade,escalabil...
• Flexibilidade: dados armazenados no formato
JSON
• Velocidade:
consultassãomaisrápidasporquenãoexistem
“joins”
• Escalab...
{

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

Documento

Escalonamento

Possívelporémcomplexode
vido a arquitetura

Principalvantagemporter
um
arquiteturafl...
Servidor de estruturasda dados complexas,
armazenadasemmemória RAM, quepermitem a
execução de operaçõescomplexasemanipulaç...
•
•
•
•
•
•

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...
$ redis-cli set mykey "my binary safe value"
OK
$ redis-cli get mykey
my binary safe value
$ redis-cli set counter 100
OK
...
Use cases
•
•
•
•
•
•

Auto complete
Message queue
Publish/subscribe
Notification center
Sorting/Ranking
Timeline
É framework mantidopela Apache Foundation
quepermiteprocessamentode grandes volumes de
dados distribuídosem um cluster
que...
•
•
•
•

Hadoop Common
Hadoop Distributed File System (HDFS)
Hadoop YARN (job scheduling and cluster resource management)
...
•
•
•
•

Indexação de busca de produtos (Amazon)
Sistema de recomendação (Netflix)
Analise de logs erelatóriosanalíticos (...
Storm
Sistemadistribuído de processamento de dados
em tempo real a partir de “streams” de dados.
Umatopologia Storm consum...
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 (...
Storm Topology
Storm Topology
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("sentences", new RandomSentenceSpout(), 5...
That’s all, folks!
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveis
Prochain SlideShare
Chargement dans…5
×

Tecnologias para sistemas distribuidos escalaveis

301 vues

Publié le

Apresentação de tecnologias escaláveis aos candidatos do programa de estágio da FluxoTI em Guarapuava.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Tecnologias para sistemas distribuidos escalaveis

  1. 1. Tecnologiasparasistemasdistribuídos escaláveis MongoDB, Redis, Hadoop, Storm Cesar Schneider Eworks Tecnologia
  2. 2. Quemsoueu • • • • • • • Inventor desde 1988 Programadordesde 1998 Analistadesde 2003 Gerente/Consultordesde 2008 “Canivetesuiço”desde 2010 “Hacker” desde 2012 Arquiteto/Designer desde 2013
  3. 3. 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.
  4. 4. ComputaçãoDistribuída • É umareferênciaàcomputaçãoparalelaedescentr alizada, realizadapordoisoumaiscomputadoresconecta dosatravés de umarede, cujoobjetivoéconcluirumatarefaemcomum. • Umacoleção de computadoresindependentesqueaparecempar aousuáriocomo um únicosistema.
  5. 5. ComputaçãoDistribuída
  6. 6. 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
  7. 7. ArquiteturaEscalável
  8. 8. 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
  9. 9. 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.
  10. 10. • 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
  11. 11. { name: “Cesar Schneider”, email: “cesar@eworks.com.br”, age: 34, skills: *“C”, “PHP”, “Java”+, availableForConsulting: true }
  12. 12. 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
  13. 13. 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.
  14. 14. • • • • • • Twitter Instagram Digg Stack Overflow Flickr Mercado Livre
  15. 15. 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)
  16. 16. $ 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
  17. 17. Use cases • • • • • • Auto complete Message queue Publish/subscribe Notification center Sorting/Ranking Timeline
  18. 18. É 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.
  19. 19. • • • • 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)
  20. 20. • • • • 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)
  21. 21. 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.
  22. 22. Storm Use Cases • • • • • • Twitter Groupon Rubicon Project Full Contact Alibaba Mercado Livre
  23. 23. Storm Architecture
  24. 24. 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)
  25. 25. Storm Topology
  26. 26. 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"));
  27. 27. That’s all, folks!

×