Arhitectura HotNews.ro
Marius Hanganu
Cerinte
• Scalabilitate - adaugarea facila de servere
pentru a permite mai multi vizitatori;
serverele sa ofere toate func...
Cateva statistici (cf Analytics)
• Aproape 3 milioane unici pe luna
• Peste 17 milioane de pagini servite pe luna
• Peak d...
Arhitectura (1)
• Servere: Tomcat, MySQL, Apache, ldirectord
• Librarii Java/Javascript: Spring, Hibernate,
JGroups, OSCac...
Arhitectura (2)
• Transparenta maxima pentru dezvoltator: codul este liber de
referinte la indexare (SOLR) sau caching (OS...
Caching
• Velocity in loc de JSP
• Local pe fiecare masina
• Structura ierarhica
• Transparent pentru dezvoltator
– Declar...
Media server
• Support imagini, video, audio
• Embedded sau separat
• Proxy-uri pe serverele publice pentru serverul centr...
SOLR
• SolrSync
– Sincronizare Hibernate-SOLR transparenta pentru utilizatori
– Stocarea pe diferite servere SOLR in funct...
Deploy
• ldirectord
• Script de build, deploy, backup, update & restart
• Offline mode – fara baza de date
• Svn-task – ge...
Multumesc
Upcoming SlideShare
Loading in …5
×

Arhitectura HotNews.ro

3,345 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,345
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Arhitectura HotNews.ro

  1. 1. Arhitectura HotNews.ro Marius Hanganu
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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)
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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)
  10. 10. Multumesc

×