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