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)

on

  • 529 views

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 ...

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.

Statistics

Views

Total Views
529
Views on SlideShare
526
Embed Views
3

Actions

Likes
3
Downloads
3
Comments
0

2 Embeds 3

http://www.linkedin.com 2
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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) Presentation Transcript

  • 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
  • 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 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
  • 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çõ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
  • http://www.infoq.com/news/2014/01/paas-future http://danielviveiros.com.br/2014/01/24/there-is-nothing-going-wrong-with-paas/
  • 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 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
  • 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;
  • 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 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
  • 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.
  • 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...
  • 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).
  • 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 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
  • 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
  • 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
  • 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 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)
  • Valeu! Daniel Viveiros - Head of Technology Twitter/email: @dviveiros / viveiros@ciandt.com Site: http://www.ciandt.com/u/viveiros http://www.danielviveiros.com.br