Click here to load reader
Upload
fotis-stamatelopoulos
View
662
Download
0
Embed Size (px)
Citation preview
Τεχνική Αρχιτεκτονική ΕύδοξουΒασικές Κατευθύνσεις
Βασικοί σχεδιαστικοί στόχοι: Υψηλή δυνατότητα κλιμάκωσης Ελαστικότητα Υψηλή διαθεσιμότητα Δυνατότητα live application update Κάποιοι συμβιβασμοί στα παραπάνω λόγω
εξαιρετικά περιορισμένου χρόνου για σχεδιασμό και υλοποίηση:
Επιλέχθηκε RDBMS και όχι NoSQL storage Δεν υπάρχει το redundancy που θα θέλαμε Υπάρχει 'άνω όριο' κλιμάκωσης το οποίο όμως είναι πολύ
υψηλότερο από τον υφιστάμενο αριθμό φοιτητών
Τεχνική Αρχιτεκτονική ΕύδοξουΒασικά Ποιοτικά Χαρακτηριστικά
Όσο το δυνατόν περισσότερη λειτουργικότητα στον browser – Ajax-based rich gui εφαρμογές
Caching σε πολλαπλά επίπεδα: Στον browser (web resources & στην εφαρμογή) Web accellerator (μπροστά από app servers) ORM layer (JPA / Hibernate) – app server Second level caching – app server Cache DB files in RAM – db server
Stateless λογική (δεν υπάρχει http session) Cloud computing λογική στην υποδομή
Τεχνική Αρχιτεκτονική ΕύδοξουΛογική Αρχιτεκτονική & Τεχνολογίες Υλοποίησης
Βασικές δομικές μονάδες (100% FLOSS): Web server (Apache): front-end, χειρίζεται SSL και
σύνδεση Shibboleth. Επίσης, δεύτερος server (nginx) για εξυπηρέτηση μεγάλων στατικών αρχείων
Font end caching / web accellerator (Varnish): Caching των εφαρμογών (js, css, html) και των REST responses (όπου είναι εφικτό)
Application Servers (JBoss): Business logic της εφαρμογής – N workers (”ελαστικό” Ν)
Search / Indexing server (Solr) Database server (PostgreSQL): διαχείριση και
αποθήκευση δεδομένων.
Τεχνική Αρχιτεκτονική ΕύδοξουΑρχιτεκτονικό Διάγραμμα
Apache & Varnishnginx
Συνοδευτικά Αρχεία βιβλίων
AJAX client appsΕυδοξουAJAX client apps
Ευδοξου
AJAX client appsΕυδοξου User Web Browser
Υποδομή Cloud ComputingVarnish CacheDynamic
worker pool
Worker 1(JBoss)
Worker 2(JBoss)
Worker n(JBoss)
https
DB Server(PostgreSQL)
High availability & Performance storage
EudoxusDB
Indexing / SearchServer(Solr)
index