Arhitectura HotNews.ro

10

Click here to load reader

Transcript of Arhitectura HotNews.ro

Page 1: Arhitectura HotNews.ro

Arhitectura HotNews.roMarius Hanganu

Page 2: Arhitectura HotNews.ro

Cerinte

• Scalabilitate - adaugarea facila de servere pentru a permite mai multi vizitatori; serverele sa ofere toate functionalitatile

• Functionarea continua – chiar si in cazul in care se face un update la baza de date

• Controlul manual al aproape fiecarei zone din site (tile)

• Managementul mai multor siteuri

Page 3: Arhitectura HotNews.ro

Cateva statistici (cf Analytics)

• Aproape 3 milioane unici pe luna • Peste 17 milioane de pagini servite pe luna• Peak de peste 400.000 unici / 2.000.000 pagini

/ zi• Peak de 300 cereri / secunda• Peste 1000 de comentarii pe zi• Sustinute doar de 2 servere

Page 4: Arhitectura HotNews.ro

Arhitectura (1)

• Servere: Tomcat, MySQL, Apache, ldirectord• Librarii Java/Javascript: Spring, Hibernate,

JGroups, OSCache, SOLR, Velocity, Quartz, DWR, ExtJS, jQuery (Prototype / Scriptaculous)

• Alte librarii: Ffmpeg, ImageMagick• MVC cache-uibil• Varianta pda, multi-language• Management pentru orice numar de siteuri

Page 5: Arhitectura HotNews.ro

Arhitectura (2)

• Transparenta maxima pentru dezvoltator: codul este liber de referinte la indexare (SOLR) sau caching (OSCache)

• Tipuri de obiecte cu proprietati similare (statistici, comentarii, voturi, etc)

• O zona de ecran (tile) are un comportament (care poate fi comun mai multor tile-uri) si un template (care poate fi comun mai multor tile-uri)

• Tileul contine recursiv oricate alte tileuri• Tileul poate avea un comportament dinamic (Groovy)

Page 6: Arhitectura HotNews.ro

Caching

• Velocity in loc de JSP• Local pe fiecare masina• Structura ierarhica• Transparent pentru dezvoltator

– Declarativ – tileuri cache-uite

• Bazat pe o coada de prioritati• Sistem de dependente intre obiecte automatizat• Replicare prin Jgroups• Orice server isi poate reface cache-ul independent

Page 7: Arhitectura HotNews.ro

Media server

• Support imagini, video, audio• Embedded sau separat• Proxy-uri pe serverele publice pentru serverul central• Generarea de variante de imagini on the fly• Importul automat din diverse surse externe

Page 8: Arhitectura HotNews.ro

SOLR

• SolrSync– Sincronizare Hibernate-SOLR transparenta pentru utilizatori– Stocarea pe diferite servere SOLR in functie de tipul obiectului

• Filter API – similar Hibernate Criteria

• Refacerea indexului – OBLIGATORIE – totala / partiala / per tip de obiect

• Filtru diacritice• Stemmer pentru limba romana• “Near real time reindexing” e departe de real time

Page 9: Arhitectura HotNews.ro

Deploy

• ldirectord• Script de build, deploy, backup, update & restart• Offline mode – fara baza de date• Svn-task – generare rapoarte folosind Subversion• Teste de performanta cu Jmeter si AB (Apache Benchmark)

Page 10: Arhitectura HotNews.ro

Multumesc