introdução a computação em nuvem - conceitos teóricos e práticos

178
Introdução a Computação em Nuvem Introdução a Computação em Nuvem Conceitos teóricos e práticos, evolução e novas possibilidades Daniel Cordeiro Departamento de Ciência da Computação Instituto de Matemática e Estatística Universidade de São Paulo CESUPA – Belém/PA – maio de 2013

Upload: hanhan

Post on 29-Dec-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Introdução a Computação em NuvemConceitos teóricos e práticos, evolução

e novas possibilidades

Daniel CordeiroDepartamento de Ciência da ComputaçãoInstituto de Matemática e Estatística

Universidade de São Paulo

CESUPA – Belém/PA – maio de 2013

Page 2: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Olá! :)

Um pouco sobre mim

Pós-doutorando no IME/USPDocteur en Mathématiques et en Informatique – Université deGrenoble, França, 2012Mestre em Computação – Universidade de São Paulo, 2006

Para mais informações:http://www.ime.usp.br/~danielc/

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 2 / 111

Page 3: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todos já devem ter ouvido algo sobre Cloud Computing

Ou ao menos algumas dessas ideias:

“Computação em nuvem finalmente tornou realidade o sonhoda computação utilitária”“Desenvolvedores não precisam mais se preocupar emconseguir grandes somas de dinheiro antes de colocar umanova aplicação web no ar”“Adeus aos problemas de provisionamento de servidores(Elasticidade dos recursos)”Software como um serviçoPlataforma como um serviçoInfraestrutura como um serviço

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 3 / 111

Page 4: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todos já devem ter ouvido algo sobre Cloud Computing

Ou ao menos algumas dessas ideias:

“Computação em nuvem finalmente tornou realidade o sonhoda computação utilitária”“Desenvolvedores não precisam mais se preocupar emconseguir grandes somas de dinheiro antes de colocar umanova aplicação web no ar”“Adeus aos problemas de provisionamento de servidores(Elasticidade dos recursos)”Software como um serviçoPlataforma como um serviçoInfraestrutura como um serviço

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 3 / 111

Page 5: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todos já devem ter ouvido algo sobre Cloud Computing

Ou ao menos algumas dessas ideias:

“Computação em nuvem finalmente tornou realidade o sonhoda computação utilitária”“Desenvolvedores não precisam mais se preocupar emconseguir grandes somas de dinheiro antes de colocar umanova aplicação web no ar”“Adeus aos problemas de provisionamento de servidores(Elasticidade dos recursos)”Software como um serviçoPlataforma como um serviçoInfraestrutura como um serviço

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 3 / 111

Page 6: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todos já devem ter ouvido algo sobre Cloud Computing

Ou ao menos algumas dessas ideias:

“Computação em nuvem finalmente tornou realidade o sonhoda computação utilitária”“Desenvolvedores não precisam mais se preocupar emconseguir grandes somas de dinheiro antes de colocar umanova aplicação web no ar”“Adeus aos problemas de provisionamento de servidores(Elasticidade dos recursos)”Software como um serviçoPlataforma como um serviçoInfraestrutura como um serviço

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 3 / 111

Page 7: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todos já devem ter ouvido algo sobre Cloud Computing

Ou ao menos algumas dessas ideias:

“Computação em nuvem finalmente tornou realidade o sonhoda computação utilitária”“Desenvolvedores não precisam mais se preocupar emconseguir grandes somas de dinheiro antes de colocar umanova aplicação web no ar”“Adeus aos problemas de provisionamento de servidores(Elasticidade dos recursos)”Software como um serviçoPlataforma como um serviçoInfraestrutura como um serviço

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 3 / 111

Page 8: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todos já devem ter ouvido algo sobre Cloud Computing

Ou ao menos algumas dessas ideias:

“Computação em nuvem finalmente tornou realidade o sonhoda computação utilitária”“Desenvolvedores não precisam mais se preocupar emconseguir grandes somas de dinheiro antes de colocar umanova aplicação web no ar”“Adeus aos problemas de provisionamento de servidores(Elasticidade dos recursos)”Software como um serviçoPlataforma como um serviçoInfraestrutura como um serviço

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 3 / 111

Page 9: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todo mundo fala sobre Computação em Nuvem, mas o queé isso?

The interesting thing about Cloud Computing is thatwe’ve redefined Cloud Computing to include everythingthat we already do (...) I don’t understand what wewould do differently in the light of Cloud Computingother than change the wording of some of our ads.

Larry Ellison (CEO da Oracle), The Wall Street Journal, 26 de setembro de 2008

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 4 / 111

Page 10: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todo mundo fala sobre Computação em Nuvem, mas o queé isso?

A lot of people are jumping on the [cloud] bandwagon,but I have not heard two people say the same thing aboutit. There are multiple definitions out there of “the cloud.”

Andy Isherwood (vice-presidente de vendas da HP na Europa), ZDnet News, 11 de dezembro de 2008

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 4 / 111

Page 11: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Todo mundo fala sobre Computação em Nuvem, mas o queé isso?

It’s stupidity. It’s worse than stupidity: it’s a marketinghype campaign. Somebody is saying this is inevitable —and whenever you hear somebody saying that, it’s verylikely to be a set of businesses campaigning to make ittrue.

Richard Stallman (Free Software Foundation), The Guardian, 29 de setembro de 2008

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 4 / 111

Page 12: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Histórico e motivações

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 5 / 111

Page 13: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Quatro problemas que (ainda) requerem constante inovaçãotecnológica

Problemas “em escala da web”Grandes data centersComputação paralela e distribuídaAplicações web interativas

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 6 / 111

Page 14: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Problemas em escala da web

CaracterísticasDefinitivamente data-intensiveMas podem também ser processing-intensive

Exemplos:Crawling, indexação, busca, mineração de dados da webPesquisa em biologia computacional na era “pós-genômica”Processamento de dados científicos (física, astronomia, etc.)Redes de sensoresAplicações Web 2.0etc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 7 / 111

Page 15: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

De qual volume de dados estamos falando?

Problemas da ordem de petabytes!

1 PB = 1.000.000.000.000.000 B

= 1.0005 B

= 1015 B= 1 milhão de gigabytes= 1 mil terabytes

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 8 / 111

Page 16: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

De qual volume de dados estamos falando?

Muitos, mas muitos dados

O Google processa cerca de 20 petabytes de dados por dia(2008)O Wayback Machine tem cerca de 3 petabytes + 100terabytes/dia (mar/2009)O Facebook tem cerca de 2,5 petabytes de dados deusuários + 15 terabytes/dia (abr/2009)O site eBay tem cerca de 6,5 petabytes de dados dosusuários + 50 terabytes/dia (mai/2009)O Grande Colisor de Hádrons do CERN irá gerar cerca de 15petabytes/ano

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 8 / 111

Page 17: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

De qual volume de dados estamos falando?

Muitos, mas muitos dados

O Google processa cerca de 20 petabytes de dados por dia(2008)O Wayback Machine tem cerca de 3 petabytes + 100terabytes/dia (mar/2009)O Facebook tem cerca de 2,5 petabytes de dados deusuários + 15 terabytes/dia (abr/2009)O site eBay tem cerca de 6,5 petabytes de dados dosusuários + 50 terabytes/dia (mai/2009)O Grande Colisor de Hádrons do CERN irá gerar cerca de 15petabytes/ano

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 8 / 111

Page 18: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

De qual volume de dados estamos falando?

Muitos, mas muitos dados

O Google processa cerca de 20 petabytes de dados por dia(2008)O Wayback Machine tem cerca de 3 petabytes + 100terabytes/dia (mar/2009)O Facebook tem cerca de 2,5 petabytes de dados deusuários + 15 terabytes/dia (abr/2009)O site eBay tem cerca de 6,5 petabytes de dados dosusuários + 50 terabytes/dia (mai/2009)O Grande Colisor de Hádrons do CERN irá gerar cerca de 15petabytes/ano

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 8 / 111

Page 19: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

De qual volume de dados estamos falando?

Muitos, mas muitos dados

O Google processa cerca de 20 petabytes de dados por dia(2008)O Wayback Machine tem cerca de 3 petabytes + 100terabytes/dia (mar/2009)O Facebook tem cerca de 2,5 petabytes de dados deusuários + 15 terabytes/dia (abr/2009)O site eBay tem cerca de 6,5 petabytes de dados dosusuários + 50 terabytes/dia (mai/2009)O Grande Colisor de Hádrons do CERN irá gerar cerca de 15petabytes/ano

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 8 / 111

Page 20: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

De qual volume de dados estamos falando?

Muitos, mas muitos dados

O Google processa cerca de 20 petabytes de dados por dia(2008)O Wayback Machine tem cerca de 3 petabytes + 100terabytes/dia (mar/2009)O Facebook tem cerca de 2,5 petabytes de dados deusuários + 15 terabytes/dia (abr/2009)O site eBay tem cerca de 6,5 petabytes de dados dosusuários + 50 terabytes/dia (mai/2009)O Grande Colisor de Hádrons do CERN irá gerar cerca de 15petabytes/ano

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 8 / 111

Page 21: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

De qual volume de dados estamos falando?

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 8 / 111

Page 22: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

De qual volume de dados estamos falando?

1 PB = 1.000.000.000.000.000 B

= 1.0005 B

= 1015 B= 1 milhão de gigabytes= 1 mil terabytes

Ou seja, os 15 petabytes que o CERN irá gerar por ano equivalem a15 milhões de gigabytes. Seriam necessários 1,7 milhão de DVDsdual-layer para armazenar tanta informação!

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 8 / 111

Page 23: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

O que se faz com tantos dados?

Encontram informações sobre novos fatosCasamento de padrões com informações da webex: quem matou John Lennon?

Procuram por novas relações entre os dadosAlguns padrões levam a novas relações:

os fatos: “Nascimento-de(Mozart, 1756)” e“Nascimento-de(Einstein, 1879)”levam aos dados: “Wolfgang Amadeus Mozart (1756–1791)” e“Einstein nasceu em 1879”que levam a diferentes padrões: “PESSOA (DATA –” e“PESSOA nasceu em DATA”que, por sua vez, permitem encontrar novos fatos

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 9 / 111

Page 24: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

O que se faz com tantos dados?

Encontram informações sobre novos fatosCasamento de padrões com informações da webex: quem matou John Lennon?

Procuram por novas relações entre os dadosAlguns padrões levam a novas relações:

os fatos: “Nascimento-de(Mozart, 1756)” e“Nascimento-de(Einstein, 1879)”levam aos dados: “Wolfgang Amadeus Mozart (1756–1791)” e“Einstein nasceu em 1879”que levam a diferentes padrões: “PESSOA (DATA –” e“PESSOA nasceu em DATA”que, por sua vez, permitem encontrar novos fatos

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 9 / 111

Page 25: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

O que se faz com tantos dados?

Encontram informações sobre novos fatosCasamento de padrões com informações da webex: quem matou John Lennon?

Procuram por novas relações entre os dadosAlguns padrões levam a novas relações:

os fatos: “Nascimento-de(Mozart, 1756)” e“Nascimento-de(Einstein, 1879)”levam aos dados: “Wolfgang Amadeus Mozart (1756–1791)” e“Einstein nasceu em 1879”que levam a diferentes padrões: “PESSOA (DATA –” e“PESSOA nasceu em DATA”que, por sua vez, permitem encontrar novos fatos

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 9 / 111

Page 26: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

O que se faz com tantos dados?

Encontram informações sobre novos fatosCasamento de padrões com informações da webex: quem matou John Lennon?

Procuram por novas relações entre os dadosAlguns padrões levam a novas relações:

os fatos: “Nascimento-de(Mozart, 1756)” e“Nascimento-de(Einstein, 1879)”levam aos dados: “Wolfgang Amadeus Mozart (1756–1791)” e“Einstein nasceu em 1879”que levam a diferentes padrões: “PESSOA (DATA –” e“PESSOA nasceu em DATA”que, por sua vez, permitem encontrar novos fatos

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 9 / 111

Page 27: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

O que se faz com tantos dados?

Encontram informações sobre novos fatosCasamento de padrões com informações da webex: quem matou John Lennon?

Procuram por novas relações entre os dadosAlguns padrões levam a novas relações:

os fatos: “Nascimento-de(Mozart, 1756)” e“Nascimento-de(Einstein, 1879)”levam aos dados: “Wolfgang Amadeus Mozart (1756–1791)” e“Einstein nasceu em 1879”que levam a diferentes padrões: “PESSOA (DATA –” e“PESSOA nasceu em DATA”que, por sua vez, permitem encontrar novos fatos

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 9 / 111

Page 28: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

O que se faz com tantos dados?

Encontram informações sobre novos fatosCasamento de padrões com informações da webex: quem matou John Lennon?

Procuram por novas relações entre os dadosAlguns padrões levam a novas relações:

os fatos: “Nascimento-de(Mozart, 1756)” e“Nascimento-de(Einstein, 1879)”levam aos dados: “Wolfgang Amadeus Mozart (1756–1791)” e“Einstein nasceu em 1879”que levam a diferentes padrões: “PESSOA (DATA –” e“PESSOA nasceu em DATA”que, por sua vez, permitem encontrar novos fatos

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 9 / 111

Page 29: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Como resolver problemas tão grandes?

Estratégia simples (mas de difícil execução):

Dividir para conquistarUsar mais recursos computacionais a medida que mais dadosaparecerem

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 10 / 111

Page 30: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Pergunta:Quão grandes são os data centers que fazem sistemas que afetam avida de quase todo mundo que se conecta a Internet (como os doGoogle, Facebook, etc.) funcionarem?

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 11 / 111

Page 31: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Fonte: http://www.google.com/intl/pt-BR/about/datacenters/

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 12 / 111

Page 32: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Fonte: http://www.google.com/intl/pt-BR/about/datacenters/

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 12 / 111

Page 33: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Fonte: http://www.google.com/intl/pt-BR/about/datacenters/

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 12 / 111

Page 34: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Fonte: http://www.google.com/intl/pt-BR/about/datacenters/

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 12 / 111

Page 35: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Só o Google tem treze desses espalhados pelo mundo!

Américas

Berkeley County, Carolina do SulCouncil Bluffs, IowaDouglas County, GeorgiaMayes County, OklahomaLenoir, Carolina do NorteThe Dalles, OregonQuilicura, Chile

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 13 / 111

Page 36: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Só o Google tem treze desses espalhados pelo mundo!

Ásia

Hong KongCingapuraTaiwan

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 13 / 111

Page 37: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Só o Google tem treze desses espalhados pelo mundo!

Europa

Hamina, FinlândiaSt Ghislain, BélgicaDublin, Irlanda

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 13 / 111

Page 38: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Como isso era feito até então?

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 14 / 111

Page 39: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Evolução da computação

anos 50: computadores eram grandes calculadorasprogramadas com cartões perfurados; início da computaçãoparalelafinal dos anos 60: ARPANET (computadores começavam aserem interconectados; noção de computação como umserviço)anos 70: surgem os primeiros microprocessadoresanos 80: popularização dos computadores pessoaisanos 90: popularização da Internet

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 15 / 111

Page 40: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Evolução da computação

anos 50: computadores eram grandes calculadorasprogramadas com cartões perfurados; início da computaçãoparalelafinal dos anos 60: ARPANET (computadores começavam aserem interconectados; noção de computação como umserviço)anos 70: surgem os primeiros microprocessadoresanos 80: popularização dos computadores pessoaisanos 90: popularização da Internet

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 15 / 111

Page 41: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Evolução da computação

anos 50: computadores eram grandes calculadorasprogramadas com cartões perfurados; início da computaçãoparalelafinal dos anos 60: ARPANET (computadores começavam aserem interconectados; noção de computação como umserviço)anos 70: surgem os primeiros microprocessadoresanos 80: popularização dos computadores pessoaisanos 90: popularização da Internet

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 15 / 111

Page 42: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Evolução da computação

anos 50: computadores eram grandes calculadorasprogramadas com cartões perfurados; início da computaçãoparalelafinal dos anos 60: ARPANET (computadores começavam aserem interconectados; noção de computação como umserviço)anos 70: surgem os primeiros microprocessadoresanos 80: popularização dos computadores pessoaisanos 90: popularização da Internet

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 15 / 111

Page 43: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Evolução da computação

anos 50: computadores eram grandes calculadorasprogramadas com cartões perfurados; início da computaçãoparalelafinal dos anos 60: ARPANET (computadores começavam aserem interconectados; noção de computação como umserviço)anos 70: surgem os primeiros microprocessadoresanos 80: popularização dos computadores pessoaisanos 90: popularização da Internet

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 15 / 111

Page 44: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Paradigmas de computação

Computadores PessoaisComputadores ParalelosAglomerados de Computadores (clusters)Computação Voluntária (Volunteer Computing):

The Great Internet Mersenne Prime Search (1996): busca porprimos de Mersenne (primos da forma 2n − 1, n ∈ N)distributed.net (1997): decriptografia por força-brutaSETI@Home (1999): análise de sinais de rádio vindos doespaço em busca de evidência de vida extra-terreste

Computação em Grade (Grid Computing)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 16 / 111

Page 45: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Paradigmas de computação

Computadores PessoaisComputadores ParalelosAglomerados de Computadores (clusters)Computação Voluntária (Volunteer Computing):

The Great Internet Mersenne Prime Search (1996): busca porprimos de Mersenne (primos da forma 2n − 1, n ∈ N)distributed.net (1997): decriptografia por força-brutaSETI@Home (1999): análise de sinais de rádio vindos doespaço em busca de evidência de vida extra-terreste

Computação em Grade (Grid Computing)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 16 / 111

Page 46: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Paradigmas de computação

Computadores PessoaisComputadores ParalelosAglomerados de Computadores (clusters)Computação Voluntária (Volunteer Computing):

The Great Internet Mersenne Prime Search (1996): busca porprimos de Mersenne (primos da forma 2n − 1, n ∈ N)distributed.net (1997): decriptografia por força-brutaSETI@Home (1999): análise de sinais de rádio vindos doespaço em busca de evidência de vida extra-terreste

Computação em Grade (Grid Computing)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 16 / 111

Page 47: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Paradigmas de computação

Computadores PessoaisComputadores ParalelosAglomerados de Computadores (clusters)Computação Voluntária (Volunteer Computing):

The Great Internet Mersenne Prime Search (1996): busca porprimos de Mersenne (primos da forma 2n − 1, n ∈ N)distributed.net (1997): decriptografia por força-brutaSETI@Home (1999): análise de sinais de rádio vindos doespaço em busca de evidência de vida extra-terreste

Computação em Grade (Grid Computing)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 16 / 111

Page 48: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Paradigmas de computação

Computadores PessoaisComputadores ParalelosAglomerados de Computadores (clusters)Computação Voluntária (Volunteer Computing):

The Great Internet Mersenne Prime Search (1996): busca porprimos de Mersenne (primos da forma 2n − 1, n ∈ N)distributed.net (1997): decriptografia por força-brutaSETI@Home (1999): análise de sinais de rádio vindos doespaço em busca de evidência de vida extra-terreste

Computação em Grade (Grid Computing)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 16 / 111

Page 49: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Paradigmas de computação

Computadores PessoaisComputadores ParalelosAglomerados de Computadores (clusters)Computação Voluntária (Volunteer Computing):

The Great Internet Mersenne Prime Search (1996): busca porprimos de Mersenne (primos da forma 2n − 1, n ∈ N)distributed.net (1997): decriptografia por força-brutaSETI@Home (1999): análise de sinais de rádio vindos doespaço em busca de evidência de vida extra-terreste

Computação em Grade (Grid Computing)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 16 / 111

Page 50: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Paradigmas de computação

Computadores PessoaisComputadores ParalelosAglomerados de Computadores (clusters)Computação Voluntária (Volunteer Computing):

The Great Internet Mersenne Prime Search (1996): busca porprimos de Mersenne (primos da forma 2n − 1, n ∈ N)distributed.net (1997): decriptografia por força-brutaSETI@Home (1999): análise de sinais de rádio vindos doespaço em busca de evidência de vida extra-terreste

Computação em Grade (Grid Computing)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 16 / 111

Page 51: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Paradigmas de computação

Computadores PessoaisComputadores ParalelosAglomerados de Computadores (clusters)Computação Voluntária (Volunteer Computing):

The Great Internet Mersenne Prime Search (1996): busca porprimos de Mersenne (primos da forma 2n − 1, n ∈ N)distributed.net (1997): decriptografia por força-brutaSETI@Home (1999): análise de sinais de rádio vindos doespaço em busca de evidência de vida extra-terreste

Computação em Grade (Grid Computing)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 16 / 111

Page 52: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

E como é feito agora?

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 17 / 111

Page 53: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Seu problema aumenta na mesma escala da web?Fácil: basta adicionar mais máquinasTendência: centralização dos recursos computacionais emgrandes data centers

O que os fiordes noruegueses, a Islândia, o estado americanodo Oregon e minas abandonadas tem em comum?

Problemas a serem resolvidos:RedundânciaEficiênciaUtilizaçãoGerenciamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 18 / 111

Page 54: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Seu problema aumenta na mesma escala da web?Fácil: basta adicionar mais máquinasTendência: centralização dos recursos computacionais emgrandes data centers

O que os fiordes noruegueses, a Islândia, o estado americanodo Oregon e minas abandonadas tem em comum?

Problemas a serem resolvidos:RedundânciaEficiênciaUtilizaçãoGerenciamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 18 / 111

Page 55: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Seu problema aumenta na mesma escala da web?Fácil: basta adicionar mais máquinasTendência: centralização dos recursos computacionais emgrandes data centers

O que os fiordes noruegueses, a Islândia, o estado americanodo Oregon e minas abandonadas tem em comum?

Problemas a serem resolvidos:RedundânciaEficiênciaUtilizaçãoGerenciamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 18 / 111

Page 56: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Seu problema aumenta na mesma escala da web?Fácil: basta adicionar mais máquinasTendência: centralização dos recursos computacionais emgrandes data centers

O que os fiordes noruegueses, a Islândia, o estado americanodo Oregon e minas abandonadas tem em comum?

Problemas a serem resolvidos:RedundânciaEficiênciaUtilizaçãoGerenciamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 18 / 111

Page 57: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Seu problema aumenta na mesma escala da web?Fácil: basta adicionar mais máquinasTendência: centralização dos recursos computacionais emgrandes data centers

O que os fiordes noruegueses, a Islândia, o estado americanodo Oregon e minas abandonadas tem em comum?

Problemas a serem resolvidos:RedundânciaEficiênciaUtilizaçãoGerenciamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 18 / 111

Page 58: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Seu problema aumenta na mesma escala da web?Fácil: basta adicionar mais máquinasTendência: centralização dos recursos computacionais emgrandes data centers

O que os fiordes noruegueses, a Islândia, o estado americanodo Oregon e minas abandonadas tem em comum?

Problemas a serem resolvidos:RedundânciaEficiênciaUtilizaçãoGerenciamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 18 / 111

Page 59: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Seu problema aumenta na mesma escala da web?Fácil: basta adicionar mais máquinasTendência: centralização dos recursos computacionais emgrandes data centers

O que os fiordes noruegueses, a Islândia, o estado americanodo Oregon e minas abandonadas tem em comum?

Problemas a serem resolvidos:RedundânciaEficiênciaUtilizaçãoGerenciamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 18 / 111

Page 60: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Grandes data centers

Seu problema aumenta na mesma escala da web?Fácil: basta adicionar mais máquinasTendência: centralização dos recursos computacionais emgrandes data centers

O que os fiordes noruegueses, a Islândia, o estado americanodo Oregon e minas abandonadas tem em comum?

Problemas a serem resolvidos:RedundânciaEficiênciaUtilizaçãoGerenciamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 18 / 111

Page 61: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Ideias principais

Escalabilidade horizontal, não verticalExistem limites para máquinas SMP e arquiteturas de memóriacompartilhada

Mova o processamento para perto dos dadosa banda de rede é limitada

Processe os dados sequencialmente, evite padrões de acessoaleatórios

seeks são custosos, mas a vazão (throughput) do disco érazoável

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 19 / 111

Page 62: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Como programar aplicações escaláveis?Divisão e conquista

"Trabalho"

t1 t2 t3

worker worker worker

r2r1 r3

resultado

Particionar

Combinar

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 20 / 111

Page 63: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios de paralelização

Como repartir as unidades de trabalho entre os workers?O que fazer quando temos mais trabalho do que workers?E se os workers precisarem compartilhar resultadosintermediários entre si?Como agregar os resultados parciais?O que fazer se um worker parar de funcionar?Como saber se todos os workers terminaram seus trabalhos?

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 21 / 111

Page 64: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Problema recorrente

Problemas de paralelização surgem por causa de:comunicação entre os workersacesso a recursos compartilhados (por exemplo, dados)

Portanto, precisamos de algum mecanismo de sincronização

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 22 / 111

Page 65: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Gerenciar múltiplos workers

É difícil, pois:Não sabemos em que ordem cada worker será executadoNão sabemos quando um worker irá interromper outro workerNão sabemos em qual ordem os workers irão acessar os dadoscompartilhados

Por tanto, nós precisamos de:Semáforos (lock, unlock)Variáveis condicionais (wait, notify, broadcast)Barreiras de sincronização

Ainda assim, restam problemas como:Deadlock, starvation, race coditions, ...

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 23 / 111

Page 66: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Ferramentas atuais

Modelos de programação:Memória compartilhada (pthreads)Passagem de mensagens (MPI)

Padrões arquiteturais:Mestre-escravoProdutor-consumidorFilas de trabalho compartilhadas

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 24 / 111

Page 67: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Moral da história

Tudo se resume ao nível mais adequado de abstraçãoEsconda os detalhes do sistema dos desenvolvedores

Evita os problemas com race conditions, contenção em locks,etc.

Separe o “quê” do “como”:O desenvolvedor especifica apenas o que deve ser computadoO arcabouço deve se encarregar de como realizar a execução

O data center é o computador!

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 25 / 111

Page 68: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Ruptura na indústria de TI

Computação em Nuvem é uma ideia antiga que finalmente pode sercolocada em prática graças a combinação de várias tecnologiasrecentes:

Tecnologias de aplicações web (AJAX, REST, SOA, etc.)VirtualizaçãoComputação Utilitária

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 26 / 111

Page 69: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Tecnologias web

AJAX Asynchronous JavaScript and XML, permitiu acriação de clientes interativos para aplicações web.“Front-end” de computação em nuvem.

REST REpresentational State Transfer, definiu um padrãoarquitetural comum para aplicações web

SOA Service-oriented architecture, definiu uma série deprincípios e metodologias que tornaram os serviçosinteroperáveis

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 27 / 111

Page 70: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Virtualização

DefiniçãoVirtualização é a criação de uma versão virtual de recursos comoum sistema operacional, um servidor, um dispositivo dearmazenamento, recursos de rede, etc.

Aplic. Aplic. Aplic.

Sistema Operacional

Hardware

Aplic. Aplic. Aplic.

Sistema Operacional

Hypervisor

Hardware

Pilha de Execução Tradicional Pilha de Execução Virtualizada

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 28 / 111

Page 71: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Tipos principais de virtualização de hardware:

Virtualização completa: simulação quase completa dohardware, permite a execução de um sistema operacionalhóspede (guest) sem que esse precise ser modificado.Exemplos: Parallels Workstation, VirtualBox, Oracle VM,Virtual PC, Virtual Server, VMware Workstation, QEMU, etc.Virtualização assistida pelo hardware: o hardware provêfuncionalidades que facilitam a execução de um monitor demáquinas virtuais e permite a execução isolada de SOshóspedes. Exemplos: Linux KVM, VMware Workstation,Microsoft Virtual PC, Xen, Oracle VM Server for SPARC,VirtualBox and Parallels Workstation.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 29 / 111

Page 72: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Tipos principais de virtualização de hardware:

Virtualização parcial: máquinas virtuais simulam múltiplasinstâncias do hardware através de espaços de endereçamentode memória simulados.Para-virtualização: a máquina virtual não necessariamentesimula o hardware, apenas provê uma API que pode ser usadopor um SO hóspede (modificado) para notificar mudanças quepodem alterar o estado do hardware. Exemplos: Xen, IBMLPARs, Sun’s Logical Domains, z/VM, and TRANGO.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 30 / 111

Page 73: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Usos de virtualização

Consolidação de servidores (reduz CapEx/OpEx)Alta disponibilidade / recuperação de desastresOtimização de infraestrutura (permite planejamento preditivode recursos)Mobilidade (migrações) e segurança (isolamento)Infraestrutura inteligente (recursos sob demanda)Aplicações “prontas para executar” (deploy facilitado)etc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 31 / 111

Page 74: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

“If computers of the kind I have advocated become thecomputers of the future, then computing may someday beorganized as a public utility just as the telephone systemis a public utility (...) The computer utility could becomethe basis of a new and important industry.”

— John McCarthy, discurso no MIT Centennial em 1961

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 32 / 111

Page 75: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Computação Utilitária

O que é?

Recursos de computação oferecidos como um serviço ondevocê paga pelo o que usaHabilidade de aprovisionar dinamicamente máquinas (virtuais)

Por quê?

Custo: despesas de capital vs. despesas de operaçãoEscalabilidade: capacidade “infinita”Elasticidade: aumentar ou diminuir o poder de processamento

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 33 / 111

Page 76: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

O que é Computação em Nuvem?

http://geek-and-poke.com/2008/05/simply-explaine.html

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 34 / 111

Page 77: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Origem do termo “Computação em Nuvem”

Segundo a Wikipedia:A origem do termo Computação em Nuvem é obscura, o termoparece ter sido derivado do uso de uma nuvem estilizada emdiagramas de redes de computadores e sistemas de comunicação. Apalavra “nuvem” é usada como uma metáfora para a Internet (...)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 35 / 111

Page 78: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Mas o que é Computação em Nuvem?

O termo refere-se ao mesmo a dois conceitos distintos:

aplicações disponibilizadas como serviços via Internethardware e sistemas de software em data centers que proveemesses serviços

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 36 / 111

Page 79: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Classificação em serviços

A forma como as aplicações e hardware são disponibilizadas para osusuários é utilizada para classificar as plataformas de Computaçãoem Nuvem como:

Software as a Service (SaaS)as aplicações que rodam no navegador são oferecidas como umserviço

Platform as a Service (PaaS)a plataforma de desenvolvimento e execução para a criação deaplicações é oferecida como um serviço

Infrastructure as a Service (IaaS)A infraestrutura de hardware é oferecida como um serviço

XaaS, a lista não para de crescer

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 37 / 111

Page 80: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Software como um serviço (SaaS)

Surgiu por volta de 1999 (Salesforce.com)Aplicações são licenciadas como um serviço sob demandaModelo de distribuição do serviço:

o aplicativo roda diretamente nos servidores do fornecedoro aplicativo é instalado em um dispositivo do cliente edesabilitado quando o contrato termina

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 38 / 111

Page 81: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Software como um serviço (SaaS)

Configuração e personalização: a mesma aplicação geralmentefuncionalidades e look-and-feel diferentes para cada usuárioMulti-tenant efficient: uso de um mesmo servidor para vários“locatários” (tenants), sem diferenças aparentes para osusuáriosEscalabilidade: basta fazer o balanceamento de carga entre asinstâncias dos usuários

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 39 / 111

Page 82: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Software como um serviço (SaaS)

Atualizações frequentes: aplicações SaaS são atualizadas commais frequência:

as aplicações são hospedadas em um único local, o que evitaque os clientes tenham que instalar as novas versõesa aplicação roda sempre em um ambiente conhecido, o quefacilita a fase de testeso fornecedor tem acesso a todos os dados dos clientes, o queacelera os testes de regressãoo fornecedor tem acesso a dados de usabilidade das aplicações(via web analytics), o que permite detectar as funcionalidadesque precisam de melhorias

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 40 / 111

Page 83: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Exemplos de aplicações oferecidas como SaaS:

CRM (Customer Relationship Management)e-maildesktops virtuaisjogosetc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 41 / 111

Page 84: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Exemplos de provedores de SaaS:

Google Apps (GMail, Drive, Calendar, Talk, etc.)iCloudsalesforce.comBasecampMicrosoft Office 365etc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 42 / 111

Page 85: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Plataforma como um serviço (PaaS)

Plataforma de computação integrada (para desenvolver /testar / implantar novas aplicações) a um conjunto desoluções, disponibilizada como um serviçoPermite que uma aplicação seja implantada e distribuída semque seja preciso se preocupar com as camadas de hardware esoftware necessáriasTipicamente inclui serviços de armazenamento de dados,middleware, desenvolvimento, monitoramento, segurança, etc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 43 / 111

Page 86: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Plataforma como um serviço (PaaS)

Vantagens:

capacidade de provisionamento de novos servidores quase queem tempo realambiente de execução otimizado para a plataformamodelo arquitetural padronizado para as aplicações

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 44 / 111

Page 87: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Plataforma como um serviço (PaaS)

Exemplos serviços fornecidos como plataformas:

Arcabouços de execuçãoGerenciadores de bancos de dadosServidores WebFerramentas de desenvolvimentoetc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 45 / 111

Page 88: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Plataforma como um serviço (PaaS)

Provedores de PaaS:

Google AppEngineHerokuEngineYardForce.comWindows Azure Cloud ServicesOracle Platform as a Service

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 46 / 111

Page 89: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Infraestrutura como um serviço (IaaS)

Oferecimento de infraestrutura computacional (tipicamenteatravés de um ambiente virtualizado) como um serviçoRecursos disponibilizados:

ServidoresSoftwareEspaço no data centerEquipamentos de rede

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 47 / 111

Page 90: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Infraestrutura como um serviço (IaaS)

Virtualização é a tecnologia fundamental que permitiu acriação de provedores de IaaSGraças a virtualização é possível:

garantir altas taxas de utilização dos servidores do data centerpermitir a execução de qualquer sistema operacional hóspedea criação de novas instâncias de servidores pré-configurados (apartir de uma imagem de máquina virtual). Uma novainstância pode ser adicionada em poucos minutos

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 48 / 111

Page 91: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Exemplos:

Amazon EC2Windows AzureRackspace CloudGoogle Compute Engine

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 49 / 111

Page 92: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Aplicações em grande escala para processamento de muitosdadosFlexibilidadeEscalabilidadeAdequação as necessidades atuais:

hardwaresoftware

Consequências:custos reduzidosmenos tempo de manutençãoalta disponibilidademenos emissões de carbono

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 50 / 111

Page 93: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Flexibilidade

Software: permite que seu software seja usado a partir dequalquer plataformaAcesso: permite acesso aos recursos a partir de qualquercomputador conectado a InternetInfraestrutura de implantação adaptável:

Software controla a infraestrutura

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 51 / 111

Page 94: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Escalabilidade

InstantâneaControle via software:

Adiciona / remove / reconstrói recursos instantaneamente(elasticidade)

Eliminação do comprometimento inicial com o número derecursos necessários ($$$): permite que empresas comecemcom um número modesto de recursos e aumente conformenecessárioIlusão de um número infinito de recursos computacionais

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 52 / 111

Page 95: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Causo

Quando a Animoto1 tornou seu serviço disponível no Facebook,houve uma explosão na demanda que exigiu que o número deservidores fosse aumentado de 50 para 3.500 em três dias. Apósesse pico de utilização, o tráfego caiu para um nível muito menordo que o pico.

Se fosse uma companhia tradicional, o que teria acontecido?Com Computação em Nuvem: pague mais durante os picos,devolva os recursos desnecessários depois

1A Animoto é uma startup que oferece uma aplicação web que produzvídeos a partir de fotos, videoclipes e música.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 53 / 111

Page 96: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Evolução do número de instâncias EC2 usadas pela Animoto

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 54 / 111

Page 97: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Personalização

Plataforma de softwareArmazenamentoLargura de banda de redeVelocidade...

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 55 / 111

Page 98: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Custo

Pague a medida que usarPequenas/médias empresas podem competir com ainfraestrutura de grandes corporações

time to service / marketsem custo inicial

Permite reduzir o tamanho do departamento de TI do cliente

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 56 / 111

Page 99: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Manutenção

É inteira responsabilidade do provedor do serviçoEssas responsabilidades incluem:

Atualizações de softwareAtualizações de segurançaMonitoramento do estado do sistemaBackup do sistemaetc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 57 / 111

Page 100: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Utilização

Consolidação de uma grande quantidade de recursos:ciclos de CPUarmazenamentolargura de banda de rede

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 58 / 111

Page 101: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Disponibilidade

Acesso ao software, plataforma, infraestrutura de qualquerlugar, a qualquer horaBasta acesso a Internet

Confiabilidade

A tolerância a falha do sistema é gerenciada pelo provedor deComputação em Nuvem e os usuários não precisam sepreocupar com isso

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 59 / 111

Page 102: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Por que usar Computação em Nuvem?

Emissão de CO2

Consolidação dos servidoresMaiores taxas de utilizaçãoConsumo de energia reduzido

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 60 / 111

Page 103: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Disponibilidade do serviço: use múltiplos provedores; use aelasticidade para se proteger de ataques DDOSData lock-in: APIs padronizadasConfidencialidade dos dados e auditabilidade: empregarcriptografia, VLANs, firewalls, armazenamento de dados emdiferentes localidadesGargalos na transferência dos dados: envio de discos pelosCorreios; backup/arquivamentoImprevisibilidade do desempenho: melhorias na tecnologiade máquinas virtuais; uso de memória flash; melhorias noescalonamento das máquinas virtuais

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 61 / 111

Page 104: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Disponibilidade do serviço: use múltiplos provedores; use aelasticidade para se proteger de ataques DDOSData lock-in: APIs padronizadasConfidencialidade dos dados e auditabilidade: empregarcriptografia, VLANs, firewalls, armazenamento de dados emdiferentes localidadesGargalos na transferência dos dados: envio de discos pelosCorreios; backup/arquivamentoImprevisibilidade do desempenho: melhorias na tecnologiade máquinas virtuais; uso de memória flash; melhorias noescalonamento das máquinas virtuais

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 61 / 111

Page 105: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Disponibilidade do serviço: use múltiplos provedores; use aelasticidade para se proteger de ataques DDOSData lock-in: APIs padronizadasConfidencialidade dos dados e auditabilidade: empregarcriptografia, VLANs, firewalls, armazenamento de dados emdiferentes localidadesGargalos na transferência dos dados: envio de discos pelosCorreios; backup/arquivamentoImprevisibilidade do desempenho: melhorias na tecnologiade máquinas virtuais; uso de memória flash; melhorias noescalonamento das máquinas virtuais

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 61 / 111

Page 106: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Disponibilidade do serviço: use múltiplos provedores; use aelasticidade para se proteger de ataques DDOSData lock-in: APIs padronizadasConfidencialidade dos dados e auditabilidade: empregarcriptografia, VLANs, firewalls, armazenamento de dados emdiferentes localidadesGargalos na transferência dos dados: envio de discos pelosCorreios; backup/arquivamentoImprevisibilidade do desempenho: melhorias na tecnologiade máquinas virtuais; uso de memória flash; melhorias noescalonamento das máquinas virtuais

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 61 / 111

Page 107: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Disponibilidade do serviço: use múltiplos provedores; use aelasticidade para se proteger de ataques DDOSData lock-in: APIs padronizadasConfidencialidade dos dados e auditabilidade: empregarcriptografia, VLANs, firewalls, armazenamento de dados emdiferentes localidadesGargalos na transferência dos dados: envio de discos pelosCorreios; backup/arquivamentoImprevisibilidade do desempenho: melhorias na tecnologiade máquinas virtuais; uso de memória flash; melhorias noescalonamento das máquinas virtuais

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 61 / 111

Page 108: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Armazenamento escalável: inventar uma tecnologia dearmazenamento escalávelBugs em sistemas distribuídos grandes: inventar umdepurador que utiliza as máquinas virtuais distribuídasEscalabilidade mais rápida: inventar um escalonadorautomático baseado em aprendizado computacionalLicenciamento de software: licenças que cobram pelo uso

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 62 / 111

Page 109: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Armazenamento escalável: inventar uma tecnologia dearmazenamento escalávelBugs em sistemas distribuídos grandes: inventar umdepurador que utiliza as máquinas virtuais distribuídasEscalabilidade mais rápida: inventar um escalonadorautomático baseado em aprendizado computacionalLicenciamento de software: licenças que cobram pelo uso

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 62 / 111

Page 110: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Armazenamento escalável: inventar uma tecnologia dearmazenamento escalávelBugs em sistemas distribuídos grandes: inventar umdepurador que utiliza as máquinas virtuais distribuídasEscalabilidade mais rápida: inventar um escalonadorautomático baseado em aprendizado computacionalLicenciamento de software: licenças que cobram pelo uso

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 62 / 111

Page 111: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Desafios e oportunidades de Computação em Nuvem

Armazenamento escalável: inventar uma tecnologia dearmazenamento escalávelBugs em sistemas distribuídos grandes: inventar umdepurador que utiliza as máquinas virtuais distribuídasEscalabilidade mais rápida: inventar um escalonadorautomático baseado em aprendizado computacionalLicenciamento de software: licenças que cobram pelo uso

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 62 / 111

Page 112: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Modelos de implantação

Nuvem Privada a infraestrutura é provisionada para uso exclusivode uma única organização com vários usuários

Nuvem Comunitária a infraestrutura é provisionada para um grupode organizações com interesses em comum

Nuvem Pública a infraestrutura é provisionada para uso pelopúblico em geral. O provedor pode ser uma empresa,universidade, organização governamental, etc.

Nuvem Híbrida a infraestrutura é uma composição de dois ou maistipos infraestrutura (privada, pública ou comunitária)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 63 / 111

Page 113: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Modelos de implantação

Nuvem Privada a infraestrutura é provisionada para uso exclusivode uma única organização com vários usuários

Nuvem Comunitária a infraestrutura é provisionada para um grupode organizações com interesses em comum

Nuvem Pública a infraestrutura é provisionada para uso pelopúblico em geral. O provedor pode ser uma empresa,universidade, organização governamental, etc.

Nuvem Híbrida a infraestrutura é uma composição de dois ou maistipos infraestrutura (privada, pública ou comunitária)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 63 / 111

Page 114: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Modelos de implantação

Nuvem Privada a infraestrutura é provisionada para uso exclusivode uma única organização com vários usuários

Nuvem Comunitária a infraestrutura é provisionada para um grupode organizações com interesses em comum

Nuvem Pública a infraestrutura é provisionada para uso pelopúblico em geral. O provedor pode ser uma empresa,universidade, organização governamental, etc.

Nuvem Híbrida a infraestrutura é uma composição de dois ou maistipos infraestrutura (privada, pública ou comunitária)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 63 / 111

Page 115: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Modelos de implantação

Nuvem Privada a infraestrutura é provisionada para uso exclusivode uma única organização com vários usuários

Nuvem Comunitária a infraestrutura é provisionada para um grupode organizações com interesses em comum

Nuvem Pública a infraestrutura é provisionada para uso pelopúblico em geral. O provedor pode ser uma empresa,universidade, organização governamental, etc.

Nuvem Híbrida a infraestrutura é uma composição de dois ou maistipos infraestrutura (privada, pública ou comunitária)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 63 / 111

Page 116: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Com tantas vantagens

Por que agora é o momento daComputação em Nuvem?

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 64 / 111

Page 117: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Vantagens para os provedores

Dinheirograndes compras (> 10.000 unidades) permitem negociarpreços de equipamento 5–7 vezes mais baratos que em umacompra média (100–1.000)multiplexação de recursos

Alavancar investimentos em outros negócioscompanhias podem já possuir nuvens privadas para outros fins

Defender uma marcamigrar clientes atuais para uma plataforma de Computação emNuvem

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 65 / 111

Page 118: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Vantagens para os provedores

Posicionamento estratégico (atacar o “inimigo”)Google vs. Microsoft

Melhorar a relação com os clientesEx: IBMpreservar relações ao oferecer um serviço de Computação emNuvem de marca

Se tornar uma nova plataforma: mais clientes = mais $

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 66 / 111

Page 119: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

E para os usuários, por que agora?

Novo modelo de negócios: pague a medida que usarem 2000–2001 a Intel lançou o Intel Computing Service, queexigia um contrato de longa duração. Falhou.clientes não gostam de se comprometer

Novas aplicaçõesAplicações móveis interativasProcessamento paralelo em batch: muitos dadosBusiness analyticsAplicações desktop com computação intensa (ex: Matlab eMathematica)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 67 / 111

Page 120: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Provedores de plataformas deComputação em Nuvem

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 68 / 111

Page 121: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Alguns exemplos de plataformas disponíveis no mercado

Amazon Web Services (EC2, S3, etc.)http://aws.amazon.com

Google Cloud Platform (App Engine, Compute Engine,CloudStorage, etc.)http://cloud.google.com

Windows Azurehttp://www.windowsazure.com/

UOL Cloudhttp://uol.com.br/cloud

Cloud Locawebhttp://locaweb.com.br/nasnuvens

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 69 / 111

Page 122: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Web Services

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 70 / 111

Page 123: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Web Services (AWS)

Amazon.com? Aquela loja que vende livros?2002: Amazon começou a oferecer serviços para outros sitesatravés de protocols como HTTP, REST e SOAP. Os serviçoseram cobrados pelo uso2004: alguns engenheiros da Amazon apresentaram um artigoonde explicavam como usar a infraestrutura da lojaAmazon.com. Nasce o Amazon EC22007: Amazon divulga que mais de 330.000 desenvolvedores seinscreveram para usar a Amazon Web Services

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 71 / 111

Page 124: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Web Services (AWS)

Amazon.com? Aquela loja que vende livros?2002: Amazon começou a oferecer serviços para outros sitesatravés de protocols como HTTP, REST e SOAP. Os serviçoseram cobrados pelo uso2004: alguns engenheiros da Amazon apresentaram um artigoonde explicavam como usar a infraestrutura da lojaAmazon.com. Nasce o Amazon EC22007: Amazon divulga que mais de 330.000 desenvolvedores seinscreveram para usar a Amazon Web Services

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 71 / 111

Page 125: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Web Services (AWS)

Amazon.com? Aquela loja que vende livros?2002: Amazon começou a oferecer serviços para outros sitesatravés de protocols como HTTP, REST e SOAP. Os serviçoseram cobrados pelo uso2004: alguns engenheiros da Amazon apresentaram um artigoonde explicavam como usar a infraestrutura da lojaAmazon.com. Nasce o Amazon EC22007: Amazon divulga que mais de 330.000 desenvolvedores seinscreveram para usar a Amazon Web Services

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 71 / 111

Page 126: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Web Services (AWS)

Amazon.com? Aquela loja que vende livros?2002: Amazon começou a oferecer serviços para outros sitesatravés de protocols como HTTP, REST e SOAP. Os serviçoseram cobrados pelo uso2004: alguns engenheiros da Amazon apresentaram um artigoonde explicavam como usar a infraestrutura da lojaAmazon.com. Nasce o Amazon EC22007: Amazon divulga que mais de 330.000 desenvolvedores seinscreveram para usar a Amazon Web Services

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 71 / 111

Page 127: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Alguns produtos que usam o AWS

InstagramfoursquareNetflixDropboxHerokuPinteresttumblretc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 72 / 111

Page 128: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Algumas empresas que confiam no AWS

SamsungShellThe New York TimesTicketmasterNasaUnileverNasdaqetc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 73 / 111

Page 129: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Muitos brasileiros já usam

O acesso às plataformas de Computação em Nuvem não sãoexclusividade das empresas estrangeiras.

Portal TerraSulAméricaGrupo Pão de AçúcarGolPeixe UrbanoR7Caelumetc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 74 / 111

Page 130: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Infraestrutura Global do AWS

Em dez/2011 a Amazon disponibilizou o primeiro data center naAmérica Latina, aqui no Brasil (em São Paulo).

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 75 / 111

Page 131: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Regiões e zonas de disponibilidade

RegiõesData centers espalhados geograficamente em diversas localidades:

EUA Leste (Virginia)EUA Oeste (Oregon)EUA Oeste (Califórnia)Europa (Irlanda)Ásia (Singapura)Ásia (Tóquio)América do Sul (São Paulo)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 76 / 111

Page 132: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Regiões e zonas de disponibilidadeZonas de disponibilidadeZonas de disponibilidade são áreas separadas dentro de uma regiãoque foram arquitetadas para que falhas em uma zona não afetem osserviços de outra zona. A conexão entre duas zonas de uma mesmaregião é rápida.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 77 / 111

Page 133: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Que tipos de aplicação essas empresas rodam usandoComputação em Nuvem?

Aplicações de negócio Shell, Nasdaq, Gol, etc.Aplicações web Grupo Pão de Açúcar, Samsung, etc.BigData e HPC Unilever, Ticketmaster, etc.Recuperação de desastres Hitachi, Amazon.com, etc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 78 / 111

Page 134: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

O que os analistas dizem?

the 451 group AWS é o líder de market share de IaaS (59%)Gartner líder em 2011 do Gartner IaaS Magic Quadrant

Forrester líder em 2011 do Forrester Hadoop Wave

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 79 / 111

Page 135: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Visão geral dos serviços

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 80 / 111

Page 136: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Simple Storage Service (S3)

Armazenamento para a web. Sempre online, acesso via HTTPArmazena e distribui qualquer quantidade de dados, a qualquermomento, para qualquer lugar da webEscalável, confiável, rápido e durável. Planejado paradurabilidade de 99,999999999% durante um ano (ou seja,0,000000001% dos objetos podem ser perdidos durante umano devido a falhas)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 81 / 111

Page 137: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Crescimento do Amazon S3

Aumento no número de objetos armazenados na Amazon S3 aolongo dos anos:

2006 2,9 bilhões2007 14 bilhões2008 40 bilhões2009 102 bilhões2010 262 bilhões2011 762 bilhões

jun/2012 1 trilhão

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 82 / 111

Page 138: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Elastic Block Service (EBS)

Volumes para uso com instâncias do EC2Você o cria e anexa a instância como um disco rígidoPersiste independente da instânciaSnapshots para backup podem ser armazenados no S3

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 83 / 111

Page 139: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

AWS Import/Export

Acelera a transferência de dados para dentro e para fora doAmazon S3 ou do Amazon EBSTransfere dados diretamente de dispositivos dearmazenamento físicosUsa a rede de alta velocidade interna da Amazon

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 84 / 111

Page 140: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Elastic Compute Cloud (EC2)

Solução de IaaS da AmazonCapacidade computacional de tamanho ajustávelControle completo de seus servidoresReduz o tempo necessário para obter novos servidores paraordem de minutosEscala a capacidade de acordo com demanda automaticamente(se você assim quiser)Pague apenas pela capacidade que utilizar

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 85 / 111

Page 141: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Elastic Compute Cloud (EC2)

Solução de IaaS da AmazonCapacidade computacional de tamanho ajustávelControle completo de seus servidoresReduz o tempo necessário para obter novos servidores paraordem de minutosEscala a capacidade de acordo com demanda automaticamente(se você assim quiser)Pague apenas pela capacidade que utilizar

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 85 / 111

Page 142: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Elastic Compute Cloud (EC2)

Solução de IaaS da AmazonCapacidade computacional de tamanho ajustávelControle completo de seus servidoresReduz o tempo necessário para obter novos servidores paraordem de minutosEscala a capacidade de acordo com demanda automaticamente(se você assim quiser)Pague apenas pela capacidade que utilizar

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 85 / 111

Page 143: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Elastic Compute Cloud (EC2)

Solução de IaaS da AmazonCapacidade computacional de tamanho ajustávelControle completo de seus servidoresReduz o tempo necessário para obter novos servidores paraordem de minutosEscala a capacidade de acordo com demanda automaticamente(se você assim quiser)Pague apenas pela capacidade que utilizar

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 85 / 111

Page 144: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Elastic Compute Cloud (EC2)

Solução de IaaS da AmazonCapacidade computacional de tamanho ajustávelControle completo de seus servidoresReduz o tempo necessário para obter novos servidores paraordem de minutosEscala a capacidade de acordo com demanda automaticamente(se você assim quiser)Pague apenas pela capacidade que utilizar

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 85 / 111

Page 145: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Elastic Compute Cloud (EC2)

Solução de IaaS da AmazonCapacidade computacional de tamanho ajustávelControle completo de seus servidoresReduz o tempo necessário para obter novos servidores paraordem de minutosEscala a capacidade de acordo com demanda automaticamente(se você assim quiser)Pague apenas pela capacidade que utilizar

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 85 / 111

Page 146: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Tipos de instâncias disponíveis

A Amazon disponibiliza diferentes tipos de computadoresCada tipo provê uma capacidade computacional diferenteAs instâncias são cobradas por hora de execuçãoCabe ao desenvolvedor escolher qual instância oferece omelhor custo-benefício para a aplicaçãoO poder computacional é definido em termos de unidadescomputacionais EC2: 1 unidade ' 1,0 – 1,2 GHz.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 86 / 111

Page 147: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Tipos de instâncias disponíveis

Instâncias padrãoInstância pequena:

Memória de 1,7 GB1 unidade computacional EC2 (1 núcleo virtual com 1 unidadecomputacional EC2)Armazenamento de instâncias de 160 GBPlataforma de 32 ou 64 bitsDesempenho de E/S: moderadoOtimizada para EBS disponível: nãoNome da API: m1.small

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 87 / 111

Page 148: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Tipos de instâncias disponíveis

Instâncias padrãoInstância média:

Memória de 3,75 GB2 unidades de processamento EC2 (2 núcleos virtuais com 1unidade de processamento EC2)Armazenamento de instâncias de 410 GBPlataforma de 32 ou 64 bitsDesempenho de E/S: moderadoOtimizada para EBS disponível: nãoNome da API: m1.medium

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 87 / 111

Page 149: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Tipos de instâncias disponíveis

Instâncias padrãoInstância grande:

Memória de 7,5 GB4 unidades de processamento EC2 (2 núcleos virtuais com 2unidades de processamento EC2 cada)Armazenamento de instâncias de 850 GBPlataforma de 64 bitsDesempenho de E/S: altoOtimizada para EBS disponível: 500 MbpsNome da API: m1.large

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 87 / 111

Page 150: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Tipos de instâncias disponíveis

Instâncias padrãoInstância extra-grande:

Memória de 15 GB8 unidades de processamento EC2 (4 núcleos virtuais com 2unidades de processamento EC2 cada)Armazenamento de instâncias de 1.690 GBPlataforma de 64 bitsDesempenho de E/S: altoOtimizada para EBS disponível: 1000 MbpsNome da API: m1.xlarge

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 87 / 111

Page 151: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Outros tipos de instâncias

Micro pequena quantidade de recursos (até 2 unidades EC2e memória de 613 MB)

de mais memória grandes tamanhos de memória para aplicações dealta taxa de transferência, incluindo banco de dados eaplicativos de cache de memória. (17, 34 e 68 GB dememória)

de CPUs de alto desempenho 5 a 20 unidades de processamentode Clusters de Computação CPU de alto desempenho interligadas

por rede de alto desempenhode Cluster GPU CPU de alto desempenho com 2 x GPUs NVIDIA

Tesla “Fermi” M2050

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 88 / 111

Page 152: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Preço do EC2 em SP (outubro/2012)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 89 / 111

Page 153: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Preços do EC2 nos EUA (outubro/2012)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 90 / 111

Page 154: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Instâncias Spot

Permitem negociar a parte não usada da infraestrutura do EC2Você diz o quanto quer pagar no máximo por uma instância dedeterminado tipoPreços das instâncias são redefinidos periodicamente, variandocom a oferta e demanda por capacidadeSe o preço atual for menor que o preço máximo definido, vocêrecebe uma instância e paga só pelo preço atual (normalmentemenor do que o preço máximo)Você usa a instância até que opte por terminá-la ou até que opreço atual ultrapasse o preço máximo definido

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 91 / 111

Page 155: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Como preparar sua instância?

Criando sua própria imagem de um sistema operacional (maisdifícil, porém mais flexível)Usando uma Amazon Machine Image, imagens de SOspré-configuradas e prontas para uso

UbuntuRed HatWindowsCent OSOracle LinuxOpenSolarisFedoraGentooOpenSUSEDebianetc.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 92 / 111

Page 156: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Top 500

A lista Top 500 elenca os 500 supercomputadores mais rápidosdo mundo1.064 instâncias do EC2 foram usadas para criar umsupercomputador com 17.024 cores240 teraflops de velocidade (240 trilhões de operações porsegundo)Esse supercomputador é o 72o computador mais rápido domundo na última lista do Top 500 (jun/2012)Você pode alugá-lo por menos de US$ 1.000/h

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 93 / 111

Page 157: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Top 500

A lista Top 500 elenca os 500 supercomputadores mais rápidosdo mundo1.064 instâncias do EC2 foram usadas para criar umsupercomputador com 17.024 cores240 teraflops de velocidade (240 trilhões de operações porsegundo)Esse supercomputador é o 72o computador mais rápido domundo na última lista do Top 500 (jun/2012)Você pode alugá-lo por menos de US$ 1.000/h

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 93 / 111

Page 158: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Top 500

A lista Top 500 elenca os 500 supercomputadores mais rápidosdo mundo1.064 instâncias do EC2 foram usadas para criar umsupercomputador com 17.024 cores240 teraflops de velocidade (240 trilhões de operações porsegundo)Esse supercomputador é o 72o computador mais rápido domundo na última lista do Top 500 (jun/2012)Você pode alugá-lo por menos de US$ 1.000/h

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 93 / 111

Page 159: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Top 500

A lista Top 500 elenca os 500 supercomputadores mais rápidosdo mundo1.064 instâncias do EC2 foram usadas para criar umsupercomputador com 17.024 cores240 teraflops de velocidade (240 trilhões de operações porsegundo)Esse supercomputador é o 72o computador mais rápido domundo na última lista do Top 500 (jun/2012)Você pode alugá-lo por menos de US$ 1.000/h

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 93 / 111

Page 160: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Top 500

A lista Top 500 elenca os 500 supercomputadores mais rápidosdo mundo1.064 instâncias do EC2 foram usadas para criar umsupercomputador com 17.024 cores240 teraflops de velocidade (240 trilhões de operações porsegundo)Esse supercomputador é o 72o computador mais rápido domundo na última lista do Top 500 (jun/2012)Você pode alugá-lo por menos de US$ 1.000/h

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 93 / 111

Page 161: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Elastic MapReduce (Amazon EMR)

Permite processar um conjunto vasto de dados com uma boarelação custo-benefícioInternamente utiliza o arcabouço Hadoop

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 94 / 111

Page 162: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Auto Scaling

Permite ajudar a capacidade dos seus servidores EC2automaticamenteÚtil para aplicações que possuem grande variabilidade nonúmero de usuáriosDisponível sem custo adicionalMuito útil, mas cuidado com imprevisibilidade dos custos (quetambém irão variar automaticamente)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 95 / 111

Page 163: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Elastic Load Balancing

Oferece roteamento e balanceamento de carga de conexõesHTTP, HTTPS e TCP para instâncias EC2Verifica periodicamente a “saúde” das instâncias, para detectare remover instâncias que estejam com problemasAumenta e diminui dinamicamente o número de recursosbaseados nos padrões de acessoIntegrado com o auto-scaling para aumentar e diminuir onúmero de instâncias baseado nas medições de escalabilidadeda aplicaçãoTodos os recursos são acessados através de um único ponto deentrada (um único CNAME nas configurações do DNS)

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 96 / 111

Page 164: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon DynamoDB

Serviço de banco de dados NoSQLNão limita a quantidade de dados que pode ser armazenadaPermite provisionar e definir qual a capacidade que cada tabelapossui de atender consultasFoco no throughput e não na quantidade de armazenamentoIntegrado ao serviço de Elastic MapReduce

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 97 / 111

Page 165: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon SimpleDB

Implementa apenas as operações básicas de indexação dedados e consultasNão possui schema, indexação ocorre automaticamenteCria e gerencia várias réplicas distribuídas geograficamenteElimina a sobrecarga administrativa de modelagem dos dados,manutenção dos índices e ajustes de desempenho

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 98 / 111

Page 166: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Bancos de dados NoSQLUm parênteses sobre NoSQLBancos de dados NoSQL (not only SQL) são uma classe desistemas gerenciadores de bancos de dados que se distinguem pornão seguirem o modelo de dados relacional.

Características gerais:

Otimizados para operações de consultas e adição (append)As funcionalidades em geral se limitam ao armazenamento deregistros (pares chave-valor)Não usam SQL para as consultasNão garantem as propriedades ACID (Atomicidade,Consistência, Isolamento e Durabilidade)Proveem uma arquitetura distribuída tolerante a falhas

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 99 / 111

Page 167: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Relational Database Service (RDS)

Provê acesso a instâncias de bancos de dados tradicionais:MySQL, Oracle ou SQL ServerEsconde todo o trabalho de administração do banco de dados(configuração, atualizações de segurança, backup, etc.)Oferece bom custo-benefício e capacidade deredimensionamentoPermite que você implante as aplicações que você já usa hoje,sem grandes dores de cabeça com o BD

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 100 / 111

Page 168: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon ElastiCache

Cluster para cache que segue a arquitetura do MemcachedGerencia tarefas de patching, detecção de falhas em nós decache e recuperação desses nósSimples chamadas a uma API permitem aumentar ou diminuiro tamanho do cluster de cacheIntegra-se facilmente a instâncias do SimpleDB e do RDS

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 101 / 111

Page 169: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon CloudFront

Serviço web para distribuição de conteúdoDistribua conteúdo para usuários com baixa latência e altavelocidade de transferência de dadosDistribui seu conteúdo usando uma rede global de nósPermite downloads, streaming e live streaming com o AdobeFlash Media Server.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 102 / 111

Page 170: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Simple Workflow Service (SWF)

Roda aplicações especificadas por workflows e processos denegócio no AWSGerencia aplicações que estão na plataforma do SWF,aplicações móveis e mesmo aplicações in-loco (que acessam aAmazon para solicitar tarefas)Funciona com qualquer linguagem de programação

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 103 / 111

Page 171: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon CloudSearch

Serviço de busca gerenciado pela AmazonPermite integrar um serviço de busca rápido e escalável emqualquer aplicaçãoEscalabilidade automática: se adapta ao aumento daquantidade de dados indexados ou ao aumento da quantidadede buscasAWS gerencia o provisionamento de recursos, particionamentodos dados e atualizações de software

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 104 / 111

Page 172: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Simple Notification Service (SNS)

Facilita a configuração, a operação e o envio de notificaçõesPublica mensagens geradas por uma aplicação e a envia para“assinantes” ou outras aplicaçõesMensagens podem ser enviadas usando diferentes protocolos(HTTP, e-mail, etc.).Usa um mecanismo “push” que elimina a necessidade deverificação periódica ou “poll” para novas informações eatualizações.

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 105 / 111

Page 173: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Simple Queue Service (SQS)

Provê um serviço de filas escalável e confiável para oarmazenamento de mensagensMove dados entre componentes distribuídos de uma aplicação

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 106 / 111

Page 174: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon Simple Email Service (Amazon SES)

Serviço de envio de e-mails (em lote) transacionaisElimina os problemas com o gerenciamento de servidores dee-mails, configurações de rede e padrões (rigorosos) dosservidores de acesso a InternetProvê um sistema de feedback, incluindo notificações sobree-mails que não foram entregues, dados sobre as tentativas deentrega e reclamações sobre spam

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 107 / 111

Page 175: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

AWS Elastic BeanstalkPaaS da AmazonAutomaticamente gerencia a implantação, provisionamento,balanceamento de carga, auto-scaling e monitoramento dostatus do sistemaExecuta e gerencia aplicações escritas em PHP, .NET, Java ePythonControla todos os serviços do AWS necessários para aaplicaçãoPorém, o usuário continua com o controle sobre ainfraestrutura e sobre o softwarePossui ferramenta de desenvolvimento integrada ao VisualStudio e ao EclipseNão há cobrança pelo uso do serviço, só pelos recursosutilizados

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 108 / 111

Page 176: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Amazon CloudWatch

Permite visualizar a utilização dos recursos, desempenhooperacional, e padrões de utilização dos serviçosAs métricas incluem uso de CPU, leituras e escritas em disco,tráfego de rede, etc.Permite também a definição de novas métricas específicas daaplicaçãoOs dados são acessíveis a partir da interface de gerenciamento,mas também através de APIs, SDK ou CLI

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 109 / 111

Page 177: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

AWS Identity and Access Management (IAM)

Permite a criação de usuários e grupos com permissõesespecíficas, tais como restrições de acesso a algumas APIs ourecursos do AWSControla o acesso ao console de gerenciamento e a algumaschamadas às APIs, de acordo com as credenciais dos usuáriosTambém possibilita a concessão de acesso a recursos da AWSpara usuários gerenciados fora da AWS no seu diretóriocorporativo

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 110 / 111

Page 178: Introdução a Computação em Nuvem - Conceitos teóricos e práticos

Introdução a Computação em Nuvem

Referências

Above the Clouds: A Berkeley View of Cloud Computinghttp://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.htmlCursos dos professores:

Majd F. Sakr (Carnegie Mellon Qatar) –http://www.qatar.cmu.edu/~msakr/15319-s12/Jimmy Lin (University of Maryland) – http://www.umiacs.umd.edu/~jimmylin/cloud-2010-Spring/

Amazon Web Services: http://aws.amazon.com/pt/The AWS Network on SlideShare:http://www.slideshare.net/AmazonWebServices,incluindo o canal da América Latina:http://www.slideshare.net/AmazonWebServicesLATAM/

Daniel Cordeiro – http://www.ime.usp.br/~danielc/ CESUPA – Belém/PA – maio de 2013 111 / 111