SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
•
•
•
•
•
•
•

Mestre em Tecnologia (UTFPR)
Bacharel em Processamento de Dados
Desenvolvedor a mais de 18 anos....
Mono Hacker desde 2003
Linguagens Fluente: C#, Java, PHP,
Outras: C++, C , Pascal, Python, Ruby, Boo, etc.
Atualmente atua como desenvolvedor/consultor para algumas empresas:
• O conceito de computação em nuvem refere-se à
utilização da memória, processamento e das
capacidades de armazenamento e cálculo de
servidores compartilhados e interligados por meio da
Internet, seguindo um modelo computacional (Grid
Computing) capaz de alcançar uma alta taxa de
processamento dividindo as tarefas entre diversas
máquinas.
•
•
•
•
•

Alta disponibilidade
Recuperação de Falhas
Backup é inerente ao sistema
Segurança dos dados
Escalonamento sob demanda
• DaaS - Development as a Service ou Desenvolvimento
como Serviço :
– as ferramentas de desenvolvimento tomam forma no cloud
computing como ferramentas compartilhadas, ferramentas de
desenvolvimento web-based e serviços baseados em mashup.

• SaaS - Software as a Service ou Software como Serviço :
– uso de um software em regime de utilização web (p.ex.: Google
Docs , Microsoft Sharepoint Online).

• CaaS - Communication as a Service ou Comunicação como
Serviço :
– uso de uma solução de Comunicação Unificada hospedada em
Data Center do provedor ou fabricante.
Cloud Computing é dividida em cinco tipos:
• IaaS - Infrastructure as a Service ou Infraestrutura como Serviço:
– quando se utiliza uma porcentagem de um servidor,
geralmente com configuração que se adeque à sua
necessidade.(p. Ex: Hadoop)

• PaaS - Plataform as a Service ou Plataforma como
Serviço (em português):
– utilizando-se apenas uma plataforma como um banco
de dados, um web-service, etc. (p.ex.: Windows
Azure).
• Um plataforma como serviços
– Aplicações distribuídas com framework
consistente
– Armazenamento de Dados
• TABLE, BLOBs e SQL Azure

– Pagamento sob Demanda
– Escalonamento sob Demanda
– 7 Mega Datacenters já construídos
Suas Aplicações

Service
Bus

Workflow

Database

Analytics

Identity

Contacts

Access
Control

…

Reporting

…

Devices

…

Compute

Storage

Manage

…

…
• Blobs – prover uma interface simples para
armazenamento de arquivosnomeados
com metadados para o arquivo
• Tables –armazenamento estruturado. Uma
tabela é um conjunto de entidades, que
contêm um conjunto de propriedades
• Queues – Fornecer armazenamento confiável
e entrega de mensagens para uma aplicação
Account

Container

Blob

Block

IMG001.JPG
Pictures
IMG002.JPG

Account

Block AAAA
Movies

MOV1.AVI

Block AAAB
Block AAAC
Account

Queue

Message

128x128, http://…
Thumbnail Jobs
256x256, http://…
Account
http://…
Indexing Jobs
http://…
Account

Table

Entity

Name=…hash=…

Users
Name=…hash=…
Account
Tag=…id=…
PhotoIndex
Tag=…,id=…
•
•
•
•

Grandes volumes de dados (Tera Bytes)
Processamento dos dados
Tolerância a falha
Distribuição do serviço
• Requisitos
–
–
–
–

500M+ usuário únicos por mês
Bilhões de eventos interessantes por dia
Necessidade de scalabilidade massiva
PB’s de storage, milhares de arquivos, 1000’s de nós

• Necessidade de ter baixo custo
– Uso de hardware comum
– Compartilhar recursos com vários projetos
– Fornecer escala quando necessário

• Precisa de infraestrutura confiável
– Deve ser capaz de lidar com falhas - hardware, software, networking
• A falha é esperada, e não uma exceção

– Transparente para as aplicações
• muito caro para construir confiabilidade em cada aplicação

• A infra-estrutura do Hadoop prove essas capacidade.
• Histórico
–
–
–
–

Em 2004: Google publica um artigo sobre MapReduce
2005: Doug Cutting integra MapReduce no Hadoop
2006: Doug Cutting contratado pelo Yahoo
Yahoo! tornou-se o promeiro contribuidor em 2006
• Escalou de 20 node para 4000 node clusters em 2010

– 2008: Cloudera é Fundada (www.cloudera.com)

• Características
– Escrito em Java, OpenSource
– Roda em hardware comum
– Linux, Mac OS/X, Windows, and Solaris
• O Apache Hadoop é um projeto desenvolvimento como
open-source software para escalavel , confiável e
processamento distribuído. Inclui:
– MapReduce e Sistema de arquivos distribuído framework para
for large commodity clusters
– Master/Slave
– JobTracker organiza todas as tarefas e coordena o fluxo de
dados entre os TaskTrackers
– TaskTracker manipula todos os worker no node
– Worker Task executa as operações de map ou reduce
– Integra-se com HDFS com os dados localmente
• Um sistema escalável e confiável para
armazenamento compartilhado e análises.
• Ele automaticamente trata da replicação de
dados e da falhas em cada nó.
• Ele faz o trabalho duro - desenvolvedor pode se
concentrar em processamento da lógica de dados
• Permite que os aplicativos usem petabytes de
dados em paralelo
• Hadoop Core
– Distributed File System
– MapReduce Framework

• Pig (criado pelo Yahoo!)
– Parallel Programming Language e Runtime

• Hbase (criado pelo Powerset)
– Table storage for semi-structured data

• Zookeaper (criado pelo Yahoo!)
– Coordinating distributed systems

• Hive (criado pelo Facebook)
– SQL-like query language and metastore
•
•
•
•
•

Buscapé / Ebehavior
Amazon/A9
Facebook
Google
IBM

•
•
•
•
•
•

Joost
Last.fm
New York Times
PowerSet
Veoh
Yahoo!
• Colaboração com grandes universidades de
pesquisa(via open cirrus)
–
–
–
–

Carnegie Mellon University
The University of California at Berkeley
Cornell University
The University of Massachusetts at Amherst joined

• Seed Facility:

Datacenter na caixa (DiB)

– 500 nodes, 4000 cores, 3TB RAM, 1.5PB disk
– Conexão de alta velocidade com a internet
– Localizado no Yahoo no campu Coorporativo

• Roda Hadoop
• Tem sido usado no últimos 2 anos
• Cluster em produção
–
–
–
–
–

4800 cores, 600 máquina, 16GB por máquina – Abril/2009
8000 cores, 1000 máquinas, 32 GB por máquina – julho/2009
4 SATA discos de 1 TB por máquina
2 níveis de rede hierarquica, 40 máquinas por rack
Total do tamanho do cluster 2 PB, projetado para 12 PB no Q3 2009

• Cluster de Teste
• 800 cores, 16GB cada
Tipicamente em 2 níveis
– Nós são PCs comuns
– 30-40 nodes/rack
– Rack em Uplink de 3-4 gigabit
– Rack-interno de 1 gigabit
• Inspirado em GFS
• Projetado para trabalhar com arquivos muito
grandes
• Executado em hardware commodity
• Streaming de acesso a dados
• Replicação e localidade
• Projetado para escalar a petabytes de armazenamento, e
correr em cima dos sistemas de arquivos do sistema
operacional subjacente.
• “NameNode” - Master

– Gerencia o sistema de arquivos namespace
Conhece todos os blocos de localização
– lida com a replicação, exclusão, criação

• “DataNode” - Slave (workers)

– Manter os blocos de dados
– Relatório de volta para namenode suas listas de blocos
periodicamente
– lida com a recuperação de dados
• Dados de entrada é
copiado para HDFS é
dividido em blocos
• Cada blocos de dados é
replicado para várias
máquinas
• Sistema de Arquivos Distribuído para grande
Volumes
– 10K nodes, 100 milhões de arquivos, 10 PB

• Hardware Comum (comodite)
– Os arquivos são replicados esperando falha de
hardware
– Detecção de falhas e recuperação
• Otimizado para Batch Processing
– Os dados ficam expostos, a computação pode
ser movida onde os dados estiverem
• Roda em diversos OS (win, linux, mac)
• MapReduce é um modelo de programação e
implementação associados para o
processamento e geração de grandes conjuntos
de dados (Jeffrey Dean e Sanjay Ghemawat, 2004)
– A ideia tem mais de 40 anos
– Baseado em um modelo de programação funcional
(como Lisp, Ml, etc)
– Processamento de dados base em batch
– A abstração limpa para programadores
– Paralelização automática e distribuição
– Tolerância a falhas
• Input:
– Registros de alguma fonte de dados (por exemplo,
linhas de arquivos, linhas de um banco de dados,
...) estão associados no par (chave, valor)

• Output:
– Um ou mais valores intermediários no formato
(chave, valor)
• Exemplo: (palavra, numero_de_ocorrencias)
map (k, v):
if (isPrime(v)) then emit (k, v)

(“foo”, 7) (“foo”, 7)
(“test, 10) (nothing)
Depois que a fase de mapeamento terminar, todos
os valores intermediários vão para uma chave de
saída, estes são combinadas em uma lista
• Input
– Valores Intermediários :
– Example: (“A”, [42, 100, 312])

• Output
– Normalmente, apenas um valor final por chave
– Exemplo (“a”, 454)
reduce (k, vals):
sum = 0
foreach int v in vals:
sum += v
emit (k, sum)
(“A”, [42, 100, 312]) (“A”, 454)
(“B”, [12, 6, -2]) (“B”, 16)
map (String key, String value):
// key: nome do documento
// value: conteudo do documento
for each word w in value:
EmitIntermediate(w, "1");
reduce(String key, Iterator values):
// key: a palavra
// values: a lista de valores
int result = 0;
for each v in values:
result += ParseInt(v);
Emit(AsString(result));
• Os passos básicos para a execução de um
trabalho Hadoop são:
– Compile o seu trabalho em um arquivo JAR
– Copiar dados de entrada no HDFS
– Execute hadoop passando para o JAR
os parametros relevantes
– Monitorar tarefas via interface Web (opcional)
– Examinar a saída quando o trabalho estiver
completo
hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 10 100
hadoop fs -mkdir input
hadoop fs -put /etc/hadoop-0.20/conf/*.xml input
hadoop-0.20 fs -ls input
hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep
input output 'dfs[a-z.]+'
hadoop-0.20 fs -mkdir inputwords
hadoop-0.20 fs -put /etc/hadoop-0.20/conf/*.xml inputwords
hadoop-0.20 fs -ls inputwords
hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep
inputwords outputwords 'dfs[a-z.]+'
• Mahout - scalable machine learning
– Mahout é uma biblioteca de código aberto da
Apache de máquina de aprendizagem. Os
algoritmos que implementa caiem sob o guardachuva amplo de "aprendizagem de máquina", ou
"inteligência coletiva“.
– Motores de filtragem Colaborativa
– Motor de recomendação
– Clustering e classificação.
•
•
•
•
•
•
•
•
•
•

Collaborative Filtering
User and Item based recommenders
K-Means, Fuzzy K-Means clustering
Mean Shift clustering
Dirichlet process clustering
Latent Dirichlet Allocation
Singular value decomposition
Parallel Frequent Pattern mining
Complementary Naive Bayes classifier
Random forest decision tree based classifier
•
•
•
•

www.azuris.com.br
Alessandro de Oliveira Binhara
binhara@gmail.com
binhara@azuris.com.br
Desenvolvedor Cloud Computing

Mais conteúdo relacionado

Mais procurados

noSQL com CouchDb e PHP
noSQL com CouchDb e PHPnoSQL com CouchDb e PHP
noSQL com CouchDb e PHPTheoziran Lima
 
Sistemas distribuidos - Hadoop
Sistemas distribuidos  - HadoopSistemas distribuidos  - Hadoop
Sistemas distribuidos - Hadooprenanaugusto18
 
Entendendo a Arquitetura de Armazenamento, parte 1
Entendendo a Arquitetura de Armazenamento, parte 1Entendendo a Arquitetura de Armazenamento, parte 1
Entendendo a Arquitetura de Armazenamento, parte 1Rodolfo Mendes
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passosrhpinotti
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureLuciano Condé
 

Mais procurados (8)

Artigo couchdb
Artigo couchdbArtigo couchdb
Artigo couchdb
 
noSQL com CouchDb e PHP
noSQL com CouchDb e PHPnoSQL com CouchDb e PHP
noSQL com CouchDb e PHP
 
CouchDB Presentation
CouchDB PresentationCouchDB Presentation
CouchDB Presentation
 
Sistemas distribuidos - Hadoop
Sistemas distribuidos  - HadoopSistemas distribuidos  - Hadoop
Sistemas distribuidos - Hadoop
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Entendendo a Arquitetura de Armazenamento, parte 1
Entendendo a Arquitetura de Armazenamento, parte 1Entendendo a Arquitetura de Armazenamento, parte 1
Entendendo a Arquitetura de Armazenamento, parte 1
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passos
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL Azure
 

Semelhante a Desenvolvedor Cloud Computing

Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Thiago Santiago
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Lucas A. Romão
 
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveisTecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveisLuiz Bettega
 
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
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLFernando Ike
 
MEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupMEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupAndré Cruz
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRAmazon Web Services LATAM
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Ambiente Livre
 
Big data e mineração de dados
Big data e mineração de dadosBig data e mineração de dados
Big data e mineração de dadosElton Meira
 
Analise de Performance Usando o SO
Analise de Performance Usando o SOAnalise de Performance Usando o SO
Analise de Performance Usando o SORaul Oliveira
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big DataDeep Tech Brasil
 

Semelhante a Desenvolvedor Cloud Computing (20)

Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
BIG DATA na UFSM
BIG DATA na UFSMBIG DATA na UFSM
BIG DATA na UFSM
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
 
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveisTecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveis
 
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
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQL
 
MEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupMEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon Meetup
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMR
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
 
Big data e mineração de dados
Big data e mineração de dadosBig data e mineração de dados
Big data e mineração de dados
 
Analise de Performance Usando o SO
Analise de Performance Usando o SOAnalise de Performance Usando o SO
Analise de Performance Usando o SO
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
 

Mais de Alessandro Binhara

Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxAlessandro Binhara
 
BigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaBigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaAlessandro Binhara
 
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaCase RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaAlessandro Binhara
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediAlessandro Binhara
 
2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtualAlessandro Binhara
 
Realidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinowareRealidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinowareAlessandro Binhara
 
Realidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de DadosRealidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de DadosAlessandro Binhara
 
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...Alessandro Binhara
 
BIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  AplicaçõesBIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  AplicaçõesAlessandro Binhara
 
Introduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebIntroduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebAlessandro Binhara
 
Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Alessandro Binhara
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoAlessandro Binhara
 
Apresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicApresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicAlessandro Binhara
 

Mais de Alessandro Binhara (20)

Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptxUma breve introdução ao Big Data e Inteligência Artificial.pptx
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
 
BigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenhariaBigData e internte das coisas aplicada a engenharia
BigData e internte das coisas aplicada a engenharia
 
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnósticaCase RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
 
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jediLatinoware 2019 - DEsenvolvimento mobile em Nivel jedi
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
 
2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual2019 latinoware - O mundo novo da realidade virtual
2019 latinoware - O mundo novo da realidade virtual
 
Realidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinowareRealidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados -latinoware
 
Realidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de DadosRealidade Virtual e a Ciência de Dados
Realidade Virtual e a Ciência de Dados
 
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...A IMPORTÂNCIA DA PARTICIPAÇÃO NA  GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
 
Curso de Férias - Robótica
Curso de Férias -  Robótica Curso de Férias -  Robótica
Curso de Férias - Robótica
 
BIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  AplicaçõesBIG DATA & IoT: Tecnologias e  Aplicações
BIG DATA & IoT: Tecnologias e  Aplicações
 
Introduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebIntroduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação Web
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Xamarin plataform
Xamarin plataformXamarin plataform
Xamarin plataform
 
Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.Desenvolvimento de Games para Mobile.
Desenvolvimento de Games para Mobile.
 
Games imersivos
Games imersivosGames imersivos
Games imersivos
 
Abertura - interopmix2014
Abertura - interopmix2014Abertura - interopmix2014
Abertura - interopmix2014
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto Basico
 
Treinamento csharp mono
Treinamento csharp monoTreinamento csharp mono
Treinamento csharp mono
 
Int305 projeto mono-final
Int305 projeto mono-finalInt305 projeto mono-final
Int305 projeto mono-final
 
Apresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasicApresentação Final a FINEP Projeto MonoBasic
Apresentação Final a FINEP Projeto MonoBasic
 

Desenvolvedor Cloud Computing

  • 1.
  • 2. • • • • • • • Mestre em Tecnologia (UTFPR) Bacharel em Processamento de Dados Desenvolvedor a mais de 18 anos.... Mono Hacker desde 2003 Linguagens Fluente: C#, Java, PHP, Outras: C++, C , Pascal, Python, Ruby, Boo, etc. Atualmente atua como desenvolvedor/consultor para algumas empresas:
  • 3. • O conceito de computação em nuvem refere-se à utilização da memória, processamento e das capacidades de armazenamento e cálculo de servidores compartilhados e interligados por meio da Internet, seguindo um modelo computacional (Grid Computing) capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas.
  • 4. • • • • • Alta disponibilidade Recuperação de Falhas Backup é inerente ao sistema Segurança dos dados Escalonamento sob demanda
  • 5. • DaaS - Development as a Service ou Desenvolvimento como Serviço : – as ferramentas de desenvolvimento tomam forma no cloud computing como ferramentas compartilhadas, ferramentas de desenvolvimento web-based e serviços baseados em mashup. • SaaS - Software as a Service ou Software como Serviço : – uso de um software em regime de utilização web (p.ex.: Google Docs , Microsoft Sharepoint Online). • CaaS - Communication as a Service ou Comunicação como Serviço : – uso de uma solução de Comunicação Unificada hospedada em Data Center do provedor ou fabricante.
  • 6. Cloud Computing é dividida em cinco tipos: • IaaS - Infrastructure as a Service ou Infraestrutura como Serviço: – quando se utiliza uma porcentagem de um servidor, geralmente com configuração que se adeque à sua necessidade.(p. Ex: Hadoop) • PaaS - Plataform as a Service ou Plataforma como Serviço (em português): – utilizando-se apenas uma plataforma como um banco de dados, um web-service, etc. (p.ex.: Windows Azure).
  • 7. • Um plataforma como serviços – Aplicações distribuídas com framework consistente – Armazenamento de Dados • TABLE, BLOBs e SQL Azure – Pagamento sob Demanda – Escalonamento sob Demanda – 7 Mega Datacenters já construídos
  • 8.
  • 9.
  • 10.
  • 12. • Blobs – prover uma interface simples para armazenamento de arquivosnomeados com metadados para o arquivo • Tables –armazenamento estruturado. Uma tabela é um conjunto de entidades, que contêm um conjunto de propriedades • Queues – Fornecer armazenamento confiável e entrega de mensagens para uma aplicação
  • 14. Account Queue Message 128x128, http://… Thumbnail Jobs 256x256, http://… Account http://… Indexing Jobs http://…
  • 16.
  • 17.
  • 18.
  • 19. • • • • Grandes volumes de dados (Tera Bytes) Processamento dos dados Tolerância a falha Distribuição do serviço
  • 20. • Requisitos – – – – 500M+ usuário únicos por mês Bilhões de eventos interessantes por dia Necessidade de scalabilidade massiva PB’s de storage, milhares de arquivos, 1000’s de nós • Necessidade de ter baixo custo – Uso de hardware comum – Compartilhar recursos com vários projetos – Fornecer escala quando necessário • Precisa de infraestrutura confiável – Deve ser capaz de lidar com falhas - hardware, software, networking • A falha é esperada, e não uma exceção – Transparente para as aplicações • muito caro para construir confiabilidade em cada aplicação • A infra-estrutura do Hadoop prove essas capacidade.
  • 21. • Histórico – – – – Em 2004: Google publica um artigo sobre MapReduce 2005: Doug Cutting integra MapReduce no Hadoop 2006: Doug Cutting contratado pelo Yahoo Yahoo! tornou-se o promeiro contribuidor em 2006 • Escalou de 20 node para 4000 node clusters em 2010 – 2008: Cloudera é Fundada (www.cloudera.com) • Características – Escrito em Java, OpenSource – Roda em hardware comum – Linux, Mac OS/X, Windows, and Solaris
  • 22. • O Apache Hadoop é um projeto desenvolvimento como open-source software para escalavel , confiável e processamento distribuído. Inclui: – MapReduce e Sistema de arquivos distribuído framework para for large commodity clusters – Master/Slave – JobTracker organiza todas as tarefas e coordena o fluxo de dados entre os TaskTrackers – TaskTracker manipula todos os worker no node – Worker Task executa as operações de map ou reduce – Integra-se com HDFS com os dados localmente
  • 23. • Um sistema escalável e confiável para armazenamento compartilhado e análises. • Ele automaticamente trata da replicação de dados e da falhas em cada nó. • Ele faz o trabalho duro - desenvolvedor pode se concentrar em processamento da lógica de dados • Permite que os aplicativos usem petabytes de dados em paralelo
  • 24. • Hadoop Core – Distributed File System – MapReduce Framework • Pig (criado pelo Yahoo!) – Parallel Programming Language e Runtime • Hbase (criado pelo Powerset) – Table storage for semi-structured data • Zookeaper (criado pelo Yahoo!) – Coordinating distributed systems • Hive (criado pelo Facebook) – SQL-like query language and metastore
  • 26. • Colaboração com grandes universidades de pesquisa(via open cirrus) – – – – Carnegie Mellon University The University of California at Berkeley Cornell University The University of Massachusetts at Amherst joined • Seed Facility: Datacenter na caixa (DiB) – 500 nodes, 4000 cores, 3TB RAM, 1.5PB disk – Conexão de alta velocidade com a internet – Localizado no Yahoo no campu Coorporativo • Roda Hadoop • Tem sido usado no últimos 2 anos
  • 27. • Cluster em produção – – – – – 4800 cores, 600 máquina, 16GB por máquina – Abril/2009 8000 cores, 1000 máquinas, 32 GB por máquina – julho/2009 4 SATA discos de 1 TB por máquina 2 níveis de rede hierarquica, 40 máquinas por rack Total do tamanho do cluster 2 PB, projetado para 12 PB no Q3 2009 • Cluster de Teste • 800 cores, 16GB cada
  • 28.
  • 29. Tipicamente em 2 níveis – Nós são PCs comuns – 30-40 nodes/rack – Rack em Uplink de 3-4 gigabit – Rack-interno de 1 gigabit
  • 30. • Inspirado em GFS • Projetado para trabalhar com arquivos muito grandes • Executado em hardware commodity • Streaming de acesso a dados • Replicação e localidade
  • 31. • Projetado para escalar a petabytes de armazenamento, e correr em cima dos sistemas de arquivos do sistema operacional subjacente. • “NameNode” - Master – Gerencia o sistema de arquivos namespace Conhece todos os blocos de localização – lida com a replicação, exclusão, criação • “DataNode” - Slave (workers) – Manter os blocos de dados – Relatório de volta para namenode suas listas de blocos periodicamente – lida com a recuperação de dados
  • 32. • Dados de entrada é copiado para HDFS é dividido em blocos • Cada blocos de dados é replicado para várias máquinas
  • 33. • Sistema de Arquivos Distribuído para grande Volumes – 10K nodes, 100 milhões de arquivos, 10 PB • Hardware Comum (comodite) – Os arquivos são replicados esperando falha de hardware – Detecção de falhas e recuperação • Otimizado para Batch Processing – Os dados ficam expostos, a computação pode ser movida onde os dados estiverem • Roda em diversos OS (win, linux, mac)
  • 34. • MapReduce é um modelo de programação e implementação associados para o processamento e geração de grandes conjuntos de dados (Jeffrey Dean e Sanjay Ghemawat, 2004) – A ideia tem mais de 40 anos – Baseado em um modelo de programação funcional (como Lisp, Ml, etc) – Processamento de dados base em batch – A abstração limpa para programadores – Paralelização automática e distribuição – Tolerância a falhas
  • 35.
  • 36. • Input: – Registros de alguma fonte de dados (por exemplo, linhas de arquivos, linhas de um banco de dados, ...) estão associados no par (chave, valor) • Output: – Um ou mais valores intermediários no formato (chave, valor) • Exemplo: (palavra, numero_de_ocorrencias)
  • 37.
  • 38. map (k, v): if (isPrime(v)) then emit (k, v) (“foo”, 7) (“foo”, 7) (“test, 10) (nothing)
  • 39. Depois que a fase de mapeamento terminar, todos os valores intermediários vão para uma chave de saída, estes são combinadas em uma lista • Input – Valores Intermediários : – Example: (“A”, [42, 100, 312]) • Output – Normalmente, apenas um valor final por chave – Exemplo (“a”, 454)
  • 40.
  • 41. reduce (k, vals): sum = 0 foreach int v in vals: sum += v emit (k, sum) (“A”, [42, 100, 312]) (“A”, 454) (“B”, [12, 6, -2]) (“B”, 16)
  • 42.
  • 43. map (String key, String value): // key: nome do documento // value: conteudo do documento for each word w in value: EmitIntermediate(w, "1");
  • 44. reduce(String key, Iterator values): // key: a palavra // values: a lista de valores int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result));
  • 45. • Os passos básicos para a execução de um trabalho Hadoop são: – Compile o seu trabalho em um arquivo JAR – Copiar dados de entrada no HDFS – Execute hadoop passando para o JAR os parametros relevantes – Monitorar tarefas via interface Web (opcional) – Examinar a saída quando o trabalho estiver completo
  • 46. hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 10 100 hadoop fs -mkdir input hadoop fs -put /etc/hadoop-0.20/conf/*.xml input hadoop-0.20 fs -ls input hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep input output 'dfs[a-z.]+' hadoop-0.20 fs -mkdir inputwords hadoop-0.20 fs -put /etc/hadoop-0.20/conf/*.xml inputwords hadoop-0.20 fs -ls inputwords hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep inputwords outputwords 'dfs[a-z.]+'
  • 47. • Mahout - scalable machine learning – Mahout é uma biblioteca de código aberto da Apache de máquina de aprendizagem. Os algoritmos que implementa caiem sob o guardachuva amplo de "aprendizagem de máquina", ou "inteligência coletiva“. – Motores de filtragem Colaborativa – Motor de recomendação – Clustering e classificação.
  • 48. • • • • • • • • • • Collaborative Filtering User and Item based recommenders K-Means, Fuzzy K-Means clustering Mean Shift clustering Dirichlet process clustering Latent Dirichlet Allocation Singular value decomposition Parallel Frequent Pattern mining Complementary Naive Bayes classifier Random forest decision tree based classifier
  • 49. • • • • www.azuris.com.br Alessandro de Oliveira Binhara binhara@gmail.com binhara@azuris.com.br