criando uma plataforma mundial para engajamento de usu
play

Criando uma plataforma mundial para engajamento de usurios para a - PowerPoint PPT Presentation

Criando uma plataforma mundial para engajamento de usurios 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


  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. A COPA DO MUNDO É NOSSA!

  3. Será?!?

  4. Uma plataforma… para todo um planeta! Fotos com Fans do Diversos Plataforma de interações evento canais Ativação Social sociais Capturar Usar essas fotos Coletar uma automaticament para montar um quantidade imensa de e o grande mosaico imagens de pessoas do consentimento para a abertura do mundo todo dos usuários evento

  5. Escalabilidade

  6. 10,000,000 de fotos 30 Tb de dados 40,000 fotos / hora (pico projetado)

  7. Escalabilidade Global

  8. Todo o planeta vai usar a plataforma Mercados locais podem customizar solução usando a plataforma

  9. Escalabilidade Global 1 a versão em 3 meses

  10. Porque essa é a vida na cidade grande… ;-)

  11. IaaS ou PaaS?

  12. IaaS PaaS - Datacenter na nuvem - Ambiente de execução na nuvem - Escalabilidade e alta disponibilidade - Escalabilidade e alta disponibilidade projetados "sem esforço" - Funciona bem para novas aplicações - Excelente para novas aplicações, ou para migrar aplicações existentes ruim para migrar aplicações existentes - Qualquer linguagem - Java, Python, PHP or Go! (GAE) - Pode utilizar plataformas externas - Mais fácil e rápido de construir / como Drupal, Sharepoint etc. manter - Resumo: flexibilidade e controle - É preciso jogar as "regras do jogo" - Resumo: produtividade e abstração

  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. IaaS PaaS Escalabilidade Global 1 a versão em 3 meses

  15. IaaS PaaS Concordam? Escalabilidade Global 1 a versão em 3 meses

  16. Arquiteturas Híbridas FTW!

  17. Arquitetura Híbrida com Google Cloud Platform

  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. 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. Planeje na largada o uso de Memcache → garantia de melhor performance, escalabilidade e diminuição de custos

  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. 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. 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. 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. Mais informações em: https://developers.google.com/storage/docs/accesscontrol#Signed- URLs

  26. ImageServices do Google AppEngine (transformações básicas) Manipulação de imagens: ImageMagick (transformações avançadas)

  27. Redes Sociais e APIs

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

  32. Se está no GCE, via de regra, precisa de monitoramento Usamos o Zabbix, solução open source de monitoramento

  33. Dá para melhorar o monitoramento do GAE também!

  34. Testes de Carga

  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. Valeu! Daniel Viveiros - Head of Technology Twitter/email : @dviveiros / viveiros@ciandt.com Site : http://www.ciandt.com/u/viveiros http://www.danielviveiros.com.br

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend