o cartolafc e o processo de desenvolvimento na globo.com

70
O CartolaFC e o processo de desenvolvimento na globo.com

Upload: alexandre-saboia-fuziyama

Post on 09-Jul-2015

779 views

Category:

Technology


2 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: O CartolaFC e o processo de desenvolvimento na globo.com

O CartolaFC e o processo de desenvolvimento na

globo.com

Page 2: O CartolaFC e o processo de desenvolvimento na globo.com

Alexandre Saboia

[email protected] @alexandresaboia

- bacharel em informática PUC-Rio

- web developer - ~ 10 anos de globo.com - ~ 6 anos em equipes ágeis

Page 3: O CartolaFC e o processo de desenvolvimento na globo.com
Page 4: O CartolaFC e o processo de desenvolvimento na globo.com
Page 5: O CartolaFC e o processo de desenvolvimento na globo.com

14 anos de estrada

Page 6: O CartolaFC e o processo de desenvolvimento na globo.com

45 milhões de acessos/dia

Page 7: O CartolaFC e o processo de desenvolvimento na globo.com

+500 funcionários

Page 8: O CartolaFC e o processo de desenvolvimento na globo.com

+35 times de desenvolvimento

Page 9: O CartolaFC e o processo de desenvolvimento na globo.com

Trabalho em equipe!

Page 10: O CartolaFC e o processo de desenvolvimento na globo.com

http://sendamessage.to/dist/images/thumbsup-700/18.jpg

Page 11: O CartolaFC e o processo de desenvolvimento na globo.com

globoesporte.com

Page 12: O CartolaFC e o processo de desenvolvimento na globo.com

éramos assim…

Page 13: O CartolaFC e o processo de desenvolvimento na globo.com

http://www.oldclitheroe.co.uk/railwaystation2.jpg

desenvolvimento de software clássico

fases: análise de requisitos especificação arquitetura implementação testes documentação suporte e treinamento manutenção

Page 14: O CartolaFC e o processo de desenvolvimento na globo.com

waterfall !

Page 15: O CartolaFC e o processo de desenvolvimento na globo.com

agora, estamos assim:

Page 16: O CartolaFC e o processo de desenvolvimento na globo.com

times multidisciplinares

http://www.sbcoaching.com.br/blog/wp-content/uploads/2013/08/equipe-maos.jpg

e auto-organizáveis !

Page 17: O CartolaFC e o processo de desenvolvimento na globo.com

http://talksport.com/sites/default/files/tscouk_old_image/blog/Scrum_0.jpg

Page 18: O CartolaFC e o processo de desenvolvimento na globo.com

incremental x interativo

Page 19: O CartolaFC e o processo de desenvolvimento na globo.com

metodologia ágil

Page 20: O CartolaFC e o processo de desenvolvimento na globo.com

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

Page 21: O CartolaFC e o processo de desenvolvimento na globo.com
Page 22: O CartolaFC e o processo de desenvolvimento na globo.com
Page 23: O CartolaFC e o processo de desenvolvimento na globo.com

de olho na qualidade!

Page 24: O CartolaFC e o processo de desenvolvimento na globo.com
Page 25: O CartolaFC e o processo de desenvolvimento na globo.com
Page 26: O CartolaFC e o processo de desenvolvimento na globo.com

Reviews

Page 27: O CartolaFC e o processo de desenvolvimento na globo.com

opensource +

colaboração

Page 28: O CartolaFC e o processo de desenvolvimento na globo.com

opensource.globo.com

Page 29: O CartolaFC e o processo de desenvolvimento na globo.com

+110 colaboradores internos

Page 30: O CartolaFC e o processo de desenvolvimento na globo.com

+80 repositórios abertos

Page 31: O CartolaFC e o processo de desenvolvimento na globo.com
Page 32: O CartolaFC e o processo de desenvolvimento na globo.com

+

Page 33: O CartolaFC e o processo de desenvolvimento na globo.com

+

Page 34: O CartolaFC e o processo de desenvolvimento na globo.com

github.com/globocom https://assets-cdn.github.com/images/modules/logos_page/Octocat.png

Page 35: O CartolaFC e o processo de desenvolvimento na globo.com
Page 36: O CartolaFC e o processo de desenvolvimento na globo.com

minha estação de trabalho!

Page 37: O CartolaFC e o processo de desenvolvimento na globo.com
Page 38: O CartolaFC e o processo de desenvolvimento na globo.com

além disto…

Page 39: O CartolaFC e o processo de desenvolvimento na globo.com

Hackday

Page 40: O CartolaFC e o processo de desenvolvimento na globo.com

Big Review!

Page 41: O CartolaFC e o processo de desenvolvimento na globo.com

Cursos

Page 42: O CartolaFC e o processo de desenvolvimento na globo.com

Workshops

Page 43: O CartolaFC e o processo de desenvolvimento na globo.com

Javali de Ouro!

Page 44: O CartolaFC e o processo de desenvolvimento na globo.com
Page 45: O CartolaFC e o processo de desenvolvimento na globo.com
Page 46: O CartolaFC e o processo de desenvolvimento na globo.com
Page 47: O CartolaFC e o processo de desenvolvimento na globo.com

550,000

700,000

850,000

1,000,000

1,150,000

1,300,000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37

1.283.676times salvos em uma única rodada !

!

!mais de 3.000.000 de times 2010

2012

2011

Page 48: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafcacessos simultâneos

Page 49: O CartolaFC e o processo de desenvolvimento na globo.com

Desenvolver uma aplicação, que suporte o volume de acesso do cartolafc, com alta performance e disponibilidade.

o desafio:

Page 50: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafco pioneiro

http://nginx.org/https://github.com/nginx/nginx

http://www.tornadoweb.org/en/stable/https://github.com/tornadoweb/tornado

Page 51: O CartolaFC e o processo de desenvolvimento na globo.com

http://www.apache.org/

presente na maioria das aplicações da globo.com

Page 52: O CartolaFC e o processo de desenvolvimento na globo.com

http://blog.webfaction.com/2008/12/a-little-holiday-present-10000-reqssec-with-nginx-2/

A little holiday present: 10,000 reqs/sec with Nginx!

x

Page 53: O CartolaFC e o processo de desenvolvimento na globo.com

Principais módulos: !- Proxy Cache - Load Balancer - SSI Dinâmico - Nginx Pushstream

Page 54: O CartolaFC e o processo de desenvolvimento na globo.com

https://developers.facebook.com/blog/post/301

Page 55: O CartolaFC e o processo de desenvolvimento na globo.com

Principais características: !- opensource - simples - alta performance - não bloqueante I/O - consumo baixo de recursos

Page 56: O CartolaFC e o processo de desenvolvimento na globo.com
Page 57: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafctecnologias aplicadas

PUSH STREAM

beanstalkd

asyncmongo

Page 58: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafcarquitetura da aplicação

Page 59: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafcarquitetura da aplicação

tornado

repository template

controller

model

Page 60: O CartolaFC e o processo de desenvolvimento na globo.com

PUSH STREAM

beanstalkd

7 x

DEAMON x 5

cartolafca idéia de box

. . . NPUSH STREAM

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

Page 61: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafcarquitetura do banco de dados

Slave

Master

vip de leitura

vip de escrita

Page 62: O CartolaFC e o processo de desenvolvimento na globo.com

24 Cores

cartolafcprocessamento da rodada

24 Cores ...

multiprocesso

1,5 milhão de times X 12 atletas X 38 rodadas = 684.000.000 de linhas = 20%

Page 63: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafcclient 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

Page 64: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafctestes automatizados

Page 65: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafcdeployment pipeline

Page 66: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafctestes 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

Page 67: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafctestes de performance

benchmark

http://httpd.apache.org/docs/2.2/programs/ab.html

$ 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

Page 68: O CartolaFC e o processo de desenvolvimento na globo.com

cartolafcreferê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

Page 69: O CartolaFC e o processo de desenvolvimento na globo.com

perguntas?

Page 70: O CartolaFC e o processo de desenvolvimento na globo.com

obrigado!

Alexandre Saboia

[email protected] @alexandresaboia