O CartolaFC e o processo de desenvolvimento na globo.com

3.074 visualizações

Publicada em

A palestra abordará como foi criado o CartolaFC, a escolha da sua arquitetura, como foi o processo de desenvolvimento, e o dia a dia de trabalho na globo.com.

Publicada em: Tecnologia
0 comentários
13 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.074
No SlideShare
0
A partir de incorporações
0
Número de incorporações
36
Ações
Compartilhamentos
0
Downloads
22
Comentários
0
Gostaram
13
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

O CartolaFC e o processo de desenvolvimento na globo.com

  1. 1. O CartolaFC e o processo de desenvolvimento na globo.com
  2. 2. - bacharel em informática PUC-Rio - web developer - ~ 10 anos de globo.com - ~ 6 anos em equipes ágeis Alexandre Saboia saboia@corp.globo.com @alexandresaboia
  3. 3. 14 anos de estrada
  4. 4. 45 milhões de acessos/dia
  5. 5. +500 funcionários
  6. 6. +35 times de desenvolvimento
  7. 7. Trabalho em equipe!
  8. 8. http://sendamessage.to/dist/images/thumbsup-700/18.jpg
  9. 9. globoesporte.com
  10. 10. éramos assim…
  11. 11. desenvolvimento de software clássico http://www.oldclitheroe.co.uk/railwaystation2.jpg fases: análise de requisitos especificação arquitetura implementação testes documentação suporte e treinamento manutenção
  12. 12. waterfall !
  13. 13. agora, estamos assim:
  14. 14. times multidisciplinares http://www.sbcoaching.com.br/blog/wp-content/uploads/2013/08/equipe-maos.jpg e auto-organizáveis !
  15. 15. http://talksport.com/sites/default/files/tscouk_old_image/blog/Scrum_0.jpg
  16. 16. incremental x interativo
  17. 17. metodologia ágil
  18. 18. times compostos por: ! • arquiteto de informação e designer • desenvolvedor de software • backend + frontend • product owner e scrum master ! • especialista em banco de dados • especialista em infraestrutura
  19. 19. de olho na qualidade!
  20. 20. Reviews
  21. 21. opensource + colaboração
  22. 22. opensource.globo.com
  23. 23. +110 colaboradores internos
  24. 24. +80 repositórios abertos
  25. 25. +
  26. 26. +
  27. 27. https://assets-cdn.github.com/images/modules/logos_page/Octocat.png github.com/globocom
  28. 28. minha estação de trabalho!
  29. 29. além disto…
  30. 30. Hackday
  31. 31. Big Review!
  32. 32. Cursos
  33. 33. Workshops
  34. 34. Javali de Ouro!
  35. 35. 1,300,000 1,150,000 1,000,000 850,000 700,000 550,000 2012 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 1.283.676 times usmalvao úsn eicma rodada ! 2011 ! 3.0m00a.is0 0d0e ! de times 2010
  36. 36. cartolafc acessos simultâneos
  37. 37. o desafio: Desenvolver uma aplicação, que suporte o volume de acesso do cartolafc, com alta performance e disponibilidade.
  38. 38. cartolafc o pioneiro http://nginx.org/ https://github.com/nginx/nginx http://www.tornadoweb.org/en/stable/ https://github.com/tornadoweb/tornado
  39. 39. http://www.apache.org/ presente na maioria das aplicações da globo.com
  40. 40. A little holiday present: 10,000 reqs/sec with Nginx! http://blog.webfaction.com/2008/12/a-little-holiday-present-10000-reqssec-with-nginx-2/ x
  41. 41. Principais módulos: !- Proxy Cache - Load Balancer - SSI Dinâmico - Nginx Pushstream
  42. 42. https://developers.facebook.com/blog/post/301
  43. 43. Principais características: !- opensource - simples - alta performance - não bloqueante I/O - consumo baixo de recursos
  44. 44. cartolafc tecnologias aplicadas PUSH STREAM asyncmongo beanstalkd
  45. 45. cartolafc arquitetura da aplicação
  46. 46. cartolafc arquitetura da aplicação tornado controller repository template model
  47. 47. cartolafc a idéia de box . . . NPUSH STREAM PUSH STREAM beanstalkd 7 x DEAMON x 5 beanstalkd 7 x DEAMON x 5 PUSH STREAM beanstalkd 7 x DEAMON x 5 PUSH STREAM beanstalkd 7 x DEAMON x 5 PUSH STREAM beanstalkd 7 x DEAMON x 5
  48. 48. cartolafc arquitetura do banco de dados vip de escrita Slave Master vip de leitura
  49. 49. 1,5 milhão de times X 12 atletas X 38 rodadas = 684.000.000 de linhas = 20% 24 Cores cartolafc processamento da rodada multiprocesso 24 Cores ...
  50. 50. cartolafc client side Principais pontos: !- navegação em javascript (sem reload) - jQuery - redução no número de requests - sprites e otimização nas imagens - minify javascript
  51. 51. cartolafc testes automatizados
  52. 52. cartolafc deployment pipeline
  53. 53. cartolafc testes de performance Principais pontos: !- testes feitos ao longo de todo o desenvolvimento do game - cenários de testes simulando um uso em produção - testes de novas tecnologias para sair de gargalos
  54. 54. cartolafc testes de performance benchmark $ ab -n 1000 -c 5 http://202.54.200.1/test.html -n 1000: ab will send 1000 number of requests -c 5 : 5 is concurrency number http://httpd.apache.org/docs/2.2/programs/ab.html
  55. 55. cartolafc referências - http://pt.slideshare.net/davidsonfellipe/como-e-trabalhar-na- globocom ! - http://pt.slideshare.net/marcelnicolay/cartolafc-uma-aplicao- python-rpida-e-escalvel-pythonbrasil-6 ! - http://pt.slideshare.net/rveiga/rveiga-agilidaderecife2013 ! - http://speakerdeck.com/saboia/tornado-plus-mongodb-plus- nginxpushstream-equals-newsfeed-no-cartolafc
  56. 56. perguntas?
  57. 57. obrigado! Alexandre Saboia saboia@corp.globo.com @alexandresaboia

×