SlideShare una empresa de Scribd logo
1 de 10
Arhitectura HotNews.ro
Marius Hanganu
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
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
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
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)
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
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
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
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)
Multumesc

Más contenido relacionado

Similar a Arhitectura HotNews.ro

Prezentare res tful web services
Prezentare res tful web servicesPrezentare res tful web services
Prezentare res tful web servicesRadu Prescura
 
Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010Agora Group
 
Prezentare proiect GiSHEO - Marian Neagu
Prezentare proiect GiSHEO - Marian NeaguPrezentare proiect GiSHEO - Marian Neagu
Prezentare proiect GiSHEO - Marian Neaguvasile33
 
Programatica codepax-16-11-2012
Programatica codepax-16-11-2012Programatica codepax-16-11-2012
Programatica codepax-16-11-2012Agora Group
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Webdanielnastase
 
Asp.net mvc bad practices
Asp.net mvc   bad practicesAsp.net mvc   bad practices
Asp.net mvc bad practicesRadu Vunvulea
 
Biblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxCostea112
 
devops.continous.deployment
devops.continous.deploymentdevops.continous.deployment
devops.continous.deploymentMarius Luca
 
Ro IT Webinar - Masina Virtuala, calatorie catre cloud
Ro IT Webinar - Masina Virtuala, calatorie catre cloudRo IT Webinar - Masina Virtuala, calatorie catre cloud
Ro IT Webinar - Masina Virtuala, calatorie catre cloudMarius Zaharia
 
Sisteme de Operare: Introducere
Sisteme de Operare: IntroducereSisteme de Operare: Introducere
Sisteme de Operare: IntroducereAlexandru Radovici
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"Sabin Buraga
 

Similar a Arhitectura HotNews.ro (13)

Prezentare res tful web services
Prezentare res tful web servicesPrezentare res tful web services
Prezentare res tful web services
 
Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010
 
Prezentare proiect GiSHEO - Marian Neagu
Prezentare proiect GiSHEO - Marian NeaguPrezentare proiect GiSHEO - Marian Neagu
Prezentare proiect GiSHEO - Marian Neagu
 
Programatica codepax-16-11-2012
Programatica codepax-16-11-2012Programatica codepax-16-11-2012
Programatica codepax-16-11-2012
 
2 Firebird Technical Ro
2 Firebird Technical Ro2 Firebird Technical Ro
2 Firebird Technical Ro
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
 
Asp.net mvc bad practices
Asp.net mvc   bad practicesAsp.net mvc   bad practices
Asp.net mvc bad practices
 
Biblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptxBiblioteci JavaScript pentru Ajax.pptx
Biblioteci JavaScript pentru Ajax.pptx
 
devops.continous.deployment
devops.continous.deploymentdevops.continous.deployment
devops.continous.deployment
 
Ro IT Webinar - Masina Virtuala, calatorie catre cloud
Ro IT Webinar - Masina Virtuala, calatorie catre cloudRo IT Webinar - Masina Virtuala, calatorie catre cloud
Ro IT Webinar - Masina Virtuala, calatorie catre cloud
 
Webpack
Webpack Webpack
Webpack
 
Sisteme de Operare: Introducere
Sisteme de Operare: IntroducereSisteme de Operare: Introducere
Sisteme de Operare: Introducere
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"
 

Arhitectura HotNews.ro

  • 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. 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. 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. 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. 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. 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. 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. 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)