O CartolaFC e o processo 
de desenvolvimento na 
globo.com
- 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
14 
anos de estrada
45 
milhões de acessos/dia
+500 
funcionários
+35 
times de desenvolvimento
Trabalho 
em equipe!
http://sendamessage.to/dist/images/thumbsup-700/18.jpg
globoesporte.com
éramos assim…
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
waterfall !
agora, estamos assim:
times multidisciplinares 
http://www.sbcoaching.com.br/blog/wp-content/uploads/2013/08/equipe-maos.jpg 
e auto-organizáveis !
http://talksport.com/sites/default/files/tscouk_old_image/blog/Scrum_0.jpg
incremental x interativo
metodologia ágil
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
de olho na qualidade!
Reviews
opensource 
+ 
colaboração
opensource.globo.com
+110 
colaboradores internos
+80 
repositórios abertos
+
+
https://assets-cdn.github.com/images/modules/logos_page/Octocat.png 
github.com/globocom
minha estação de 
trabalho!
além disto…
Hackday
Big Review!
Cursos
Workshops
Javali de Ouro!
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
cartolafc 
acessos simultâneos
o desafio: 
Desenvolver uma aplicação, que 
suporte o volume de acesso do 
cartolafc, com alta performance 
e disponibilidade.
cartolafc 
o pioneiro 
http://nginx.org/ 
https://github.com/nginx/nginx 
http://www.tornadoweb.org/en/stable/ 
https://github.com/tornadoweb/tornado
http://www.apache.org/ 
presente na maioria das 
aplicações da globo.com
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
Principais módulos: 
!- Proxy Cache 
- Load Balancer 
- SSI Dinâmico 
- Nginx Pushstream
https://developers.facebook.com/blog/post/301
Principais características: 
!- opensource 
- simples 
- alta performance 
- não bloqueante I/O 
- consumo baixo de recursos
cartolafc 
tecnologias aplicadas 
PUSH STREAM 
asyncmongo 
beanstalkd
cartolafc 
arquitetura da aplicação
cartolafc 
arquitetura da aplicação 
tornado 
controller 
repository template 
model
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
cartolafc 
arquitetura do banco de dados 
vip de escrita 
Slave 
Master 
vip de leitura
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 ...
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
cartolafc 
testes automatizados
cartolafc 
deployment pipeline
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
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
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
perguntas?
obrigado! 
Alexandre Saboia 
saboia@corp.globo.com 
@alexandresaboia

O CartolaFC e o processo de desenvolvimento na globo.com