0
Criando uma plataforma
mundial para
engajamento de usuários
para a Copa do Mundo
2014 na nuvem da
Google
Daniel Viveiros -...
A COPA DO MUNDO É
NOSSA!
Será?!?
Fans do
evento
Fotos com
interações
sociais
Diversos
canais
Uma plataforma… para todo um planeta!
Coletar uma
quantidade i...
Escalabilidade
10,000,000 de fotos
30 Tb de dados
40,000 fotos / hora
(pico projetado)
Escalabilidade
Global
Todo o planeta vai usar a
plataforma
Mercados locais podem
customizar solução
usando a plataforma
Escalabilidade
Global
1a
versão em 3 meses
Porque essa é a vida na
cidade grande… ;-)
IaaS ou PaaS?
PaaS
- Ambiente de execução na nuvem
- Escalabilidade e alta disponibilidade
"sem esforço"
- Excelente para novas aplicaçõ...
http://www.infoq.com/news/2014/01/paas-future
http://danielviveiros.com.br/2014/01/24/there-is-nothing-going-wrong-with-pa...
Escalabilidade
Global
1a
versão em 3 meses
IaaS PaaS
Escalabilidade
Global
1a
versão em 3 meses
IaaS PaaS
Concordam?
Arquiteturas Híbridas
FTW!
Arquitetura
Híbrida com
Google Cloud
Platform
Regra geral: deveria estar na linha de frente
de todas as requisições → maior facilidade de
escalar e suportar altos volum...
Utilização do Datastore para maior escalabilidade
3 pontos de atenção:
1) O datastore não é uma base relacional, trate-a c...
Planeje na largada o uso de Memcache →
garantia de melhor performance,
escalabilidade e diminuição de custos
Quando o PaaS mostrar suas restrições (e isso vai
acontecer), use IaaS (nesse caso: Google
Compute Engine) como complement...
Integração GAE - GCE
GCE → GAE: expõe um serviço REST no GAE e
faz a chamada dele pelo GCE. Prefira sempre
que esse serviç...
E por falar em filas...
Usamos filas para quase tudo!
- Barramento de eventos (foto criada, foto moderada,
rejeitada, etc)...
Todas as imagens estão armazenadas no
Google Cloud Storage, facilidade de
gerenciamento e confiança.
Regra geral: sempre q...
Mais informações em: https://developers.google.com/storage/docs/accesscontrol#Signed-
URLs
ImageServices do Google
AppEngine (transformações
básicas)
Manipulação de imagens:
ImageMagick (transformações
avançadas)
Redes Sociais e
APIs
Desafios para fazer integração de 2 vias em redes
sociais:
[1] Pense em quotas, se planeje!
[2] É difícil negociar limites...
Realtime updates / notificações
Foco na Fan Page. Listening de tudo, filtro na aplicação
Graph API para futuras interações...
Pense em APIs:
[1] Segurança e gerenciamento: planeje-se com relação a
isso
[2] Site da API: uma boa documentação é fundam...
Monitoramento
Se está no GCE, via de regra,
precisa de monitoramento
Usamos o Zabbix, solução
open source de
monitoramento
Dá para melhorar
o monitoramento
do GAE também!
Testes de
Carga
- Utilização do JMeter disparado de máquina local
- Utilização do JMeter disparado de máquina na AWS
- Integração dos test...
Valeu!
Daniel Viveiros - Head of Technology
Twitter/email: @dviveiros / viveiros@ciandt.com
Site: http://www.ciandt.com/u/...
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)
Upcoming SlideShare
Loading in...5
×

Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)

635

Published on

Conheça a arquitetura utilizada por um dos maiores varejistas do ramo de bebidas, para criar a plataforma tecnológica que suportará sua campanha mundial de marketing na Copa do Mundo 2014, chamada de "Social Activation Platform".

Será detalhado como foi utilizada a plataforma de cloud computing do Google (incluindo App Engine, Cloud Storage e Compute Engine), além da integração realizada com Facebook, Twitter e Instagram – e como tudo isso permitiu a criação de uma plataforma de engajamento de usuários e captura de imagens em escala mundial, para o maior evento esportivo do ano.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
635
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google (QCon SP 2014)"

  1. 1. Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google Daniel Viveiros - Head of Technology Twitter: @dviveiros Site: http://www.ciandt.com/u/viveiros http://www.danielviveiros.com.br
  2. 2. A COPA DO MUNDO É NOSSA!
  3. 3. Será?!?
  4. 4. Fans do evento Fotos com interações sociais Diversos canais Uma plataforma… para todo um planeta! Coletar uma quantidade imensa de imagens de pessoas do mundo todo Capturar automaticament e o consentimento dos usuários Usar essas fotos para montar um grande mosaico para a abertura do evento Plataforma de Ativação Social
  5. 5. Escalabilidade
  6. 6. 10,000,000 de fotos 30 Tb de dados 40,000 fotos / hora (pico projetado)
  7. 7. Escalabilidade Global
  8. 8. Todo o planeta vai usar a plataforma Mercados locais podem customizar solução usando a plataforma
  9. 9. Escalabilidade Global 1a versão em 3 meses
  10. 10. Porque essa é a vida na cidade grande… ;-)
  11. 11. IaaS ou PaaS?
  12. 12. PaaS - Ambiente de execução na nuvem - Escalabilidade e alta disponibilidade "sem esforço" - Excelente para novas aplicações, ruim para migrar aplicações existentes - Java, Python, PHP or Go! (GAE) - Mais fácil e rápido de construir / manter - É preciso jogar as "regras do jogo" - Resumo: produtividade e abstração IaaS - Datacenter na nuvem - Escalabilidade e alta disponibilidade projetados - Funciona bem para novas aplicações ou para migrar aplicações existentes - Qualquer linguagem - Pode utilizar plataformas externas como Drupal, Sharepoint etc. - Resumo: flexibilidade e controle
  13. 13. http://www.infoq.com/news/2014/01/paas-future http://danielviveiros.com.br/2014/01/24/there-is-nothing-going-wrong-with-paas/
  14. 14. Escalabilidade Global 1a versão em 3 meses IaaS PaaS
  15. 15. Escalabilidade Global 1a versão em 3 meses IaaS PaaS Concordam?
  16. 16. Arquiteturas Híbridas FTW!
  17. 17. Arquitetura Híbrida com Google Cloud Platform
  18. 18. Regra geral: deveria estar na linha de frente de todas as requisições → maior facilidade de escalar e suportar altos volumes. Linguagem: Java Principais Frameworks: 1) Objectify (Persistência) 2) Jersey (RESTful Webservices) 3) Guice (IoC) 4) RestFB (Integração com o Facebook) 5) JInstagram (Integração com o Instagram) 6) Twitter4J (Integração com o Twitter) Experimentem! https://github. com/dviveiros/gae-project
  19. 19. Utilização do Datastore para maior escalabilidade 3 pontos de atenção: 1) O datastore não é uma base relacional, trate-a como tal; 2) Cuidado ao fazer a modelagem dos entity groups, operações de escrita possuem restritos limites por grupos; 3) Em algum momento você vai precisar de contadores. Considere o artigo "Sharding counters" do Google;
  20. 20. Planeje na largada o uso de Memcache → garantia de melhor performance, escalabilidade e diminuição de custos
  21. 21. Quando o PaaS mostrar suas restrições (e isso vai acontecer), use IaaS (nesse caso: Google Compute Engine) como complemento arquitetural. Foi usado para: [1] Integração com o Twitter [2] Manipulações complexas de imagens (exemplo: transformar imagem em texto) Atenção: a Google lançou em 25 de março as Managed VMs, que vai facilitar a criação dessas arquiteturas híbridas. https://developers.google. com/cloud/managed-vms
  22. 22. Integração GAE - GCE GCE → GAE: expõe um serviço REST no GAE e faz a chamada dele pelo GCE. Prefira sempre que esse serviço dispare uma Task Queue (push) internamente para processamento assíncrono. GAE → GCE: utilizamos uma Task Queue (pull) no GAE para colocar a mensagem e pegamos essa mensagem no GCE utilizando a Task Queue REST API. Pattern request-reply.
  23. 23. E por falar em filas... Usamos filas para quase tudo! - Barramento de eventos (foto criada, foto moderada, rejeitada, etc) - Controle de quota de envio de emails - Integração com componentes externos (GCE) usando request-reply - Implementação de API assíncrona - resposta chega ao client via callback com politica/garantia de entrega/retries todo baseado nas características da fila - Receber as notificações das redes sociais - Etc...
  24. 24. Todas as imagens estão armazenadas no Google Cloud Storage, facilidade de gerenciamento e confiança. Regra geral: sempre que possível, deixar o GCS receber e fornecer diretamente as imagens, sem camadas intermediárias (URL assinadas).
  25. 25. Mais informações em: https://developers.google.com/storage/docs/accesscontrol#Signed- URLs
  26. 26. ImageServices do Google AppEngine (transformações básicas) Manipulação de imagens: ImageMagick (transformações avançadas)
  27. 27. Redes Sociais e APIs
  28. 28. Desafios para fazer integração de 2 vias em redes sociais: [1] Pense em quotas, se planeje! [2] É difícil negociar limites com as redes sociais! [3] Escrever nas redes sociais é um desafio à parte! Pense em ética e esteja preparado para quotas bem baixas. [4] As APIs são instáveis, tivemos muitos problemas com isso. Considere um firehose (Datasift, GNIP etc) Mais info: http://goo.gl/nNY7Vk
  29. 29. Realtime updates / notificações Foco na Fan Page. Listening de tudo, filtro na aplicação Graph API para futuras interações Streaming API Google Compute Engine: long-run process Log para failover Real-time API (subscription / notification) Foco em hashtag específica Subscription só notifica uma vez por hashtag
  30. 30. Pense em APIs: [1] Segurança e gerenciamento: planeje-se com relação a isso [2] Site da API: uma boa documentação é fundamental para que outros consigam utilizar [3] Considere um produto para isso (ex. Apigee, Sensedia API Suite etc) Mais info: http://goo.gl/p2bNB5
  31. 31. Monitoramento
  32. 32. Se está no GCE, via de regra, precisa de monitoramento Usamos o Zabbix, solução open source de monitoramento
  33. 33. Dá para melhorar o monitoramento do GAE também!
  34. 34. Testes de Carga
  35. 35. - Utilização do JMeter disparado de máquina local - Utilização do JMeter disparado de máquina na AWS - Integração dos testes de performance na estratégia de CI utilizando o Jenkins - Testes de performance influenciando o design! - Testes terceirizados com empresa externa (iGates) - Testes terceirizados com empresa externa especializada em testes globais (SOASTA)
  36. 36. Valeu! Daniel Viveiros - Head of Technology Twitter/email: @dviveiros / viveiros@ciandt.com Site: http://www.ciandt.com/u/viveiros http://www.danielviveiros.com.br
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×