Eudoxus technical architecture (Greek)

4

Click here to load reader

Transcript of Eudoxus technical architecture (Greek)

Page 1: Eudoxus technical architecture (Greek)

Τεχνική Αρχιτεκτονική ΕύδοξουΒασικές Κατευθύνσεις

Βασικοί σχεδιαστικοί στόχοι: Υψηλή δυνατότητα κλιμάκωσης Ελαστικότητα Υψηλή διαθεσιμότητα Δυνατότητα live application update Κάποιοι συμβιβασμοί στα παραπάνω λόγω

εξαιρετικά περιορισμένου χρόνου για σχεδιασμό και υλοποίηση:

Επιλέχθηκε RDBMS και όχι NoSQL storage Δεν υπάρχει το redundancy που θα θέλαμε Υπάρχει 'άνω όριο' κλιμάκωσης το οποίο όμως είναι πολύ

υψηλότερο από τον υφιστάμενο αριθμό φοιτητών

Page 2: Eudoxus technical architecture (Greek)

Τεχνική Αρχιτεκτονική ΕύδοξουΒασικά Ποιοτικά Χαρακτηριστικά

Όσο το δυνατόν περισσότερη λειτουργικότητα στον 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 λογική στην υποδομή

Page 3: Eudoxus technical architecture (Greek)

Τεχνική Αρχιτεκτονική ΕύδοξουΛογική Αρχιτεκτονική & Τεχνολογίες Υλοποίησης

Βασικές δομικές μονάδες (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): διαχείριση και

αποθήκευση δεδομένων.

Page 4: Eudoxus technical architecture (Greek)

Τεχνική Αρχιτεκτονική ΕύδοξουΑρχιτεκτονικό Διάγραμμα

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