L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014
-
Upload
codemotion -
Category
Technology
-
view
166 -
download
0
Embed Size (px)
Transcript of L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014

Marco Cecconi @sklivvz
http://sklivvz.com

ARCHITETTURA?
CHE E’?



Cresciuti a 130 siti (+20%)
Da 56º a 44º network più visitato al mondo (-12)


*source: Quantcast, Alexa
~50º network per traffico*
(fra imdb.com e t.co)














http://stackexchange.com/performance

Agile

BAT!CAVERNA
Ciclo scrivi-compila-testa sul computer di casa
Richieste feature

DEV.SO
Test su server di produzione
git push
BAT!CAVERNA

BAT!CAVE DEV.SO
META.SE
Utenti testano su meta.stackexchange.com
(“baking”)
git push
BAT!CAVERNA
1-click deploy

DEV.SO
META.SE
AZZ!
git revert
git push
BAT!CAVERNA
1-click deploy

DEV.SO
NETWORK META.SE
1-click deploy
git push
1-click deploy
In produzione! Tonnellate di utenti lo usano…
BAT!CAVERNA

BAT!CAVE DEV.SO
NETWORK META.SE
1-click deploy
git push
1-click deploy
…e richiedono nuove feature!
BAT!CAVERNA

Vai veloce e scassa le cose*
* Non la home page o pagine domande :-)

Vai veloce e scassa le cose*
* Non la home page o pagine domande :-)

Abuso dell’uso della cache




Il nostro amico/nemico: Il Garbage Collector
(“spazzin”)







Abusiamo della cache per aiutare il GC



Abusiamo del compilatore per aiutare il GC





IRepository<Order> orderRepository = container.Resolve<IRepository<Order>>(); Order order = orderRepository.Get(35);
La buona, vecchia dependency injection


IRepository<Order> repository = new ValidatingOrderRepository ( new SecurityRepository<Order> ( new LoggingRepository<Order> ( new CachingRepository<Order> ( new NHibernateRepository<Order> () ) ) ) ); Order order = repository.Get(35);

Il nostro sorgente







YAGNI*
* You Ain’t Gonna Need It!

Librerie e open source




Wrap code in libraries and open source it



PROGRAMMAZIONE DA “SUPEREROI”


LIVELLO STRUMENTI: HATTORI HANZŌ

• La performance è una feature • Always. Be. Shipping. • Usate le vostre circostanze. • Rilasciate O/S le vostre librerie • 3 monitor grandi da far schifo.
MORALE DELLA FAVOLA


Marco Cecconi @sklivvz
http://sklivvz.com
Stiamo assumendo nuovi ninja da ovunque nel mondo!