Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0
-
Upload
manoel-lemos -
Category
Technology
-
view
11 -
download
0
description
Transcript of Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0
![Page 1: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/1.jpg)
Uma história de guerra: Enfrentando problemas reais em aplicações Web 2.0
Manoel Lemos
Ronaldo Ferraz
Nando Vieira
Rails Summit Latin America 2008São Paulo, Brasil, 16.Outubro
![Page 2: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/2.jpg)
![Page 3: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/3.jpg)
1983
![Page 4: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/4.jpg)
1983
1984
![Page 5: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/5.jpg)
1983
1984
1993
![Page 6: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/6.jpg)
1983
1984 1994
1993
![Page 7: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/7.jpg)
1983
1984 1994
1993
1997
![Page 8: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/8.jpg)
1983
1984 1994
1993
1997
1999
![Page 9: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/9.jpg)
1983
1984 1994
1993
1997
1999
![Page 10: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/10.jpg)
1983
1984 1994
1993
1997 2000
1999
![Page 11: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/11.jpg)
1983
1984 1994
1993
1997 2000
1999 2006
![Page 12: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/12.jpg)
![Page 13: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/13.jpg)
Abr.06
![Page 14: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/14.jpg)
Abr.06
Nov.06
![Page 15: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/15.jpg)
Abr.06
Nov.06
Fev.07
![Page 16: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/16.jpg)
Abr.06
Nov.06
Fev.07
Fev.08
![Page 17: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/17.jpg)
Abr.06
Nov.06
Fev.07
Ago.08
Fev.08
![Page 18: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/18.jpg)
Abr.06
Nov.06
Fev.07
Ago.08
Fev.08
![Page 19: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/19.jpg)
![Page 20: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/20.jpg)
BlogBlogs Status
Business Numbers
110.000 usuários
200.000 blogs
2.000.000 posts
250 usuários / dia
150 blogs / dia
5.000 posts / dia
Traffic Numbers
5.2M PageViews
2.6M Uniques
Top 4000 Alexa Global
Top 120 Alexa Brasil
Top 102 IBOPE Brasil
50M Widget Impressions
![Page 21: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/21.jpg)
Crescer é um processo complicado e doloroso!
É impossível de se prever com precisão
Existem gargalos escondidos
Às vezes você precisa voltar atrás
Às vezes você precisa mudar tudo
Não existem “silver-bullets”
A complexidade vai crescer com você
![Page 22: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/22.jpg)
Crescimento real nunca acontece em um só eixo!
Tráfego : mais usuários, transações, imagens...
Tamanho : banco, memória, cache...
Complexidade : algoritmos, arquitetura, infraestrutura...
Organização : equipe, comunicação, processos...
Negócio : modelos, parceiros, fornecedores...
Na maioria dos casos os problemas crescem mais que linearmente!!!
![Page 23: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/23.jpg)
![Page 24: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/24.jpg)
![Page 25: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/25.jpg)
![Page 26: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/26.jpg)
Hoje1.5 Milhões
por dia
![Page 27: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/27.jpg)
![Page 28: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/28.jpg)
![Page 29: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/29.jpg)
![Page 30: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/30.jpg)
![Page 31: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/31.jpg)
![Page 32: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/32.jpg)
![Page 33: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/33.jpg)
![Page 34: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/34.jpg)
![Page 35: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/35.jpg)
httpdmongrel
mysql
![Page 36: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/36.jpg)
httpdmongrel
mysql
mongrelmongrel
![Page 37: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/37.jpg)
httpdmongrel
mysql
mongrelmongrel
memcached
![Page 38: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/38.jpg)
httpdmongrel
mysql
mongrelmongrel
memcached
![Page 39: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/39.jpg)
httpdmongrel
mysql
mongrelmongrel
memcached
![Page 40: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/40.jpg)
httpdmongrel
mysql
mongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
load balancing
![Page 41: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/41.jpg)
httpdmongrel
mysql
mongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
load balancing
![Page 42: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/42.jpg)
httpdmongrelmongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
load balancing
mysql
![Page 43: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/43.jpg)
httpdmongrelmongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
load balancing
mysql
![Page 44: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/44.jpg)
httpdmongrelmongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
httpdmongrelmongrelmongrel
memcached
load balancing
mysql
![Page 45: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/45.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing
mysql
memcached memcachedmemcached
![Page 46: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/46.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing
mysql
memcached memcachedmemcached
mongrel mongrelmongrel
![Page 47: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/47.jpg)
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing
memcached memcachedmemcached
mongrel mongrelmongrel
![Page 48: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/48.jpg)
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing
memcached memcachedmemcached
mongrel mongrelmongrel
![Page 49: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/49.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
memcached memcachedmemcached
mongrel mongrelmongrel
mysql
![Page 50: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/50.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
memcached memcachedmemcached
mongrel mongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
memcached memcachedmemcached
mongrel mongrelmongrel
mysql
![Page 51: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/51.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
memcached memcachedmemcached
mongrel mongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
memcached memcachedmemcached
mongrel mongrelmongrel
mysql (slave)
mysql (master)
![Page 52: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/52.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
memcached memcachedmemcached
mongrel mongrelmongrel
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
memcached memcachedmemcached
mongrel mongrelmongrel
mysql (slave)
mysql (master)
![Page 53: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/53.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
memcached memcachedmemcached
mongrel mongrelmongrel
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
memcached memcachedmemcached
mongrel mongrelmongrel
mysql (slave)
mysql (master)
![Page 54: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/54.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
mongrel mongrelmongrel
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
memcached memcachedmemcached memcached memcachedmemcached
mongrel mongrelmongrel
mysql (slave)
mysql (master)
![Page 55: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/55.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
mongrel mongrelmongrel
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
mongrel mongrelmongrel
mysql (slave)
mysql (master)
memcached memcached
memcached memcached
![Page 56: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/56.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
mongrel mongrelmongrel
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
mongrel mongrelmongrel
mysql (slave)
mysql (master)
memcached memcached
memcached memcached
mongrel mongrelmongrel mongrel mongrelmongrel
![Page 57: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/57.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
mongrel mongrelmongrel
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
mongrel mongrelmongrel
mysql (slave)
mysql (master)
memcached memcached
memcached memcached
Robot
Robot
mongrel mongrelmongrel mongrel mongrelmongrel
Robot
Robot
![Page 58: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/58.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
mongrel mongrelmongrel
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
mongrel mongrelmongrel
mysql (slave)
mysql (master)
memcached memcached
memcached memcached
Robot
Robot
mongrel mongrelmongrel mongrel mongrelmongrel
Robot
Robot
Indexer(Search)
Indexer(Search)
![Page 59: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/59.jpg)
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 1 (web)
mongrel mongrelmongrel
mysql
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
httpdmongrelmongrelmongrel
load balancing 2 (widgets)
mongrel mongrelmongrel
mysql (slave)
mysql (master)
memcached memcached
memcached memcached
Robot
Robot
mongrel mongrelmongrel mongrel mongrelmongrel
Robot
Robot
Indexer(Search)
httpdmongrelmongrelmongrelmongrelmongrel
httpdmongrelmongrelmongrelmongrelmongrel
Indexer(Search)
load balancing 3 (API)
![Page 60: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/60.jpg)
load balancing 1 (web)
mysql
load balancing 2 (widgets)
mysql (slave)
mysql (master)
memcached memcached
memcached memcached
Robot
Robot
mongrels
Robot
Robot
Indexer(Search)
Indexer(Search)
load balancing 3 (API)
mongrels mongrels mongrels mongrels mongrels
mongrels mongrels
![Page 61: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/61.jpg)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
![Page 62: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/62.jpg)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
![Page 63: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/63.jpg)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
![Page 64: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/64.jpg)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
![Page 65: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/65.jpg)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
Eureca...Idéias...Single Sign On
Shared ResourcesIntegrated Search
E=MC2
![Page 66: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/66.jpg)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
![Page 67: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/67.jpg)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
load balancing
memcached
Robot
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
memcached
memcached
memcached
mysql (master)
mysql (master)
E ai, #comofaz ?
![Page 68: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/68.jpg)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
![Page 69: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/69.jpg)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
Indexer(Search)
Indexer(Search)
![Page 70: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/70.jpg)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
Indexer(Search)
Indexer(Search)
![Page 71: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/71.jpg)
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
![Page 72: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/72.jpg)
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
![Page 73: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/73.jpg)
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
DNAAvatars(PHP)
![Page 74: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/74.jpg)
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
DNAAvatars(PHP)
DNAScoring(C++)
DNASocialGraph
(Python)
![Page 75: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/75.jpg)
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
DNAAvatars(PHP)
DNAScoring(C++)
DNASocialGraph
(Python)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
![Page 76: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/76.jpg)
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
load balancing
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
DNAAvatars(PHP)
DNAScoring(C++)
DNASocialGraph
(Python)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
![Page 77: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/77.jpg)
load balancing
load balancing
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
DNAAvatars(PHP)
DNAScoring(C++)
DNASocialGraph
(Python)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
![Page 78: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/78.jpg)
load balancing
load balancing
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
DNAAvatars(PHP)
DNAScoring(C++)
DNASocialGraph
(Python)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
![Page 79: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/79.jpg)
load balancing
load balancing
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
DNAAvatars(PHP)
DNAScoring(C++)
DNASocialGraph
(Python)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
humm... PHP...WTF??!!
DNACredentials
(PHP)
![Page 80: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/80.jpg)
load balancing
load balancing
ActiveDNA (REST)
ActiveDNA (REST)
load balancing
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
sinatra
mongrels
Robot
Robot
memcached
memcached
memcached
memcached
mysql (master)
mysql (slave)
load balancing
mongrels
Indexer(Search)
Indexer(Search)
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
mongrels
Robot
Robot
memcached
memcached
mysql (slave)
DNACredentials
(PHP)
Indexer(Search)
Indexer(Search)
DNAProfile(PHP)
DNAAvatars(PHP)
DNAScoring(C++)
DNASocialGraph
(Python)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
DNAMessaging
(Erlang)
humm... PHP...WTF??!!
![Page 81: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/81.jpg)
![Page 82: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/82.jpg)
Active DNA
Problema: Várias features necessárias (Profile, SSO, Avatar, etc) e pouco tempo
Serendipity: Companhia irmã com vários componentes REST
Resultado: Active DNA, uma biblioteca REST flexível mais cache e serviços
![Page 83: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/83.jpg)
Active DNA
Por que não Active Resource
Interface fixa
Somente Rails sem overrides
Pouca integração com external services
![Page 84: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/84.jpg)
Busca
Ferret: FAIL
Sphinx: Muito limitado
Lucene / Solr: Java
Xapian: Interessante
Mas, e se precisarmos mudar?
![Page 85: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/85.jpg)
Busca
Solução: Sapien
Cliente / encapsulamento de servidor de busca
Driver-based, naturalmente distribuído
Drivers podem ser mudados e o índice refeito em um passo
Brasigo Query Language
![Page 86: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/86.jpg)
API
Controle de Acesso
HTTP Auth (email & senha)
OAuth para suportar usuários de OpenID e outros
Restrições de uso
Frameworks mais leves
Sinatra
Thin
![Page 87: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/87.jpg)
Dia-a-dia (SCRUM)
Scrum
Várias equipes
Coordenação e priorização
Rotacionamento de equipes
Socialização de conhecimento
Cultura compartilhada
![Page 88: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/88.jpg)
Dia-a-dia (Git)
Git
Vários repositórios internos, todos Git
Branches por estória
Repositório sempre releasable
![Page 89: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/89.jpg)
Dia-a-dia (Sharing)
Cultura de bibliotecas
Plugins
Gems / Gem server interno
Funcionalidade compartilhada via API
![Page 90: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/90.jpg)
Dia-a-dia (Testes)
Test all the f***ing time
Sem cobertura, não há conhecimento
Socialização de conhecimento
Integração contínua
![Page 91: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/91.jpg)
Continuous Integration
Dedicated integration environment with automated integration and tests execution with the most up to dated code base.
Automated Reporting
Test Cases Results
Tests Coverage
![Page 92: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/92.jpg)
Tests, tests & more tests
![Page 93: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/93.jpg)
Tests, tests & more tests
![Page 94: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/94.jpg)
Tests, tests & more tests
![Page 95: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/95.jpg)
Continuous Integration
![Page 96: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/96.jpg)
Continuous Integration
![Page 97: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/97.jpg)
Continuous Integration
![Page 98: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/98.jpg)
Continuous Integration
![Page 99: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/99.jpg)
Continuous Integration
![Page 100: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/100.jpg)
Continuous Integration
![Page 101: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/101.jpg)
Continuous Integration
![Page 102: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/102.jpg)
Continuous Integration
![Page 103: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/103.jpg)
Continuous Integration
![Page 104: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/104.jpg)
Continuous Integration
![Page 105: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/105.jpg)
Continuous Integration
![Page 106: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/106.jpg)
Continuous Integration
![Page 107: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/107.jpg)
Continuous Integration
![Page 108: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/108.jpg)
Continuous Integration
![Page 109: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/109.jpg)
Continuous Integration
![Page 110: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/110.jpg)
Continuous Integration
![Page 112: Rails Summit 2008 : Histórias de Guerra - Enfrentando problemas reais em aplicações Web 2.0](https://reader037.fdocumentos.com/reader037/viewer/2022102813/545185e1af79592a738b943b/html5/thumbnails/112.jpg)
http://brasigo.com.br/http://blog.brasigo.com.br/
http://blogblogs.com.br/http://blog.blogblogs.com.br/