SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
Eudoxus.gr
Technology & Architecture

                  
 Fotis Stamatelopoulos (@fstama)
                  
                  
  JHUG Meeting @CollabAthens
           May 28, 2011
What is Eudoxus - Disclaimer
    • A distributed system that supports and streamlines
      processes and operations related to the textbooks
      distribution for the higher education institutions of Greece
 
    • Stakeholder: Hellenic Ministry of Education
      http://minedu.gov.gr/
 
    • Developed, operated and supported by GRNET
      http://grnet.gr/ 
 
    • Users: Students, Secretariats, Publishers, Distribution
      Points (e.g. Bookstores), related Ministry depts, Courier
      service, Helpdesk- More than 270.000 individual users

    • Multiple APIs and integration with other ISs
                                                     http://eudoxus.gr
Presentation Focus

    • Design and software architecture
      o by design based on 100% FOSS infrastructure
      o full JEE stack, rich web clients (GWT/Java)
      o scalability, performance and bottlenecks
 
    • Building within a very tight schedule and ever changing
      requirements
       o agile methodology
       o human environment
       o “collateral damage”
Design Goals - Challenges
• Tight schedule, fixed milestones - deadlines
   o Incrementally release modules in production

• Not finalized requirements
  o Be flexible, handle changing requirements

• High availability
  o Redundant architecture
  o Live application updates – no downtime
Design Goals – Challenges (cont'd)

• Impossible to predict usage load
   – design for scalability,
   – elastically use infrastructure to serve growing usage,
   – prepare for the worst
   – efficient use of hardware infrastructure
• Safeguard the transactional nature of related processes
• Synchronize data and connect to other systems
Technology decisions

• Web-based user interfaces

• Support various APIs
    • RESTFul APIs (JSON / XML payload)
    • use SOAP-based web services for integration in
      specific cases (e.g. courier service)

• Java-based core (business logic tier)

• Javascript-based / GWT-based (Java again!) rich GUIs
Technology decisions (cont'd)
• Back-end storage: RDBMS vs noSQL decision
  o   noSQL options offer better scalability than typical RDBMs
  o   needed at least a minimal transactional core - eventual
      consistency is not acceptable
  o   dropped the initial hybrid approach - full RDBMS design

• Use caching as much as possible

• Authentication / Credentials
    • Stateless mechanism (killed JAAS)
    • Support both
       – Shibboleth-based authentication for students
       – form based login (other user classes)
High level architecture
Infrastructure Software
• Google Web Toolkit (GWT) for the rich GUI clients (browser)

• Apache, nginx front-ends
• Varnish web cache

• JBoss Application Server
   o stateless EJBs implementing core business logic
   o JPA ORM (hibernate substrate)
   o JMS Queues and Message Driven Beans
   o JMX MBeans for scheduled tasks and maintanance


• PostgreSQL RDBMS

• Solr (Lucene server) indexing / search server
Technical Architecture




   search.,eudoxus.gr
Losing the HTTP Session
• No HTTP session => workers don't need to
  replicate – synchronize
• Application state is kept in the client
• Authentication generates a short-lived auth token
  for the specific user & session
• Token is kept in a cookie and send back with every
  request (over SSL), be it a REST or GWT-remoting
  call
  – In GSS used the token to encrypt the header
• Completely stateless middle tier
The worker pool
The worker pool (current)
The worker

• Stateless EJBs implement business functions
• POJOs (JPA) for the data model
• Mbeans for management tasks (no UI – access via
  the jmx-console)
• Persistent JMS queues (hornetQ) & MDBs for
  syncing with other systems, serializing reports,
  handling file indexing (Solr)
• REST API implementaiton will move to JAX-RS
  (Jersey)
The data store

• Single RDBMS (postgresql) instance with fallback
• “Plan B” alternatives
  – Cold replicas for reports
  – Sharding / hot replication (one writer / multiple readers)
  – Moving parts of the data to NoSQL or even use Solr as
    a NoSQL data store
• Currently we handle the load without sweating
More on caching

  • Varnish caches specific HTML output and
    REST responses for URLs that do not
    change (Eudoxus controls this via http
    headers)
  • 2nd level caching - EHCache (per worker)
  • We will be introducing distributed read-write
    second level caching (working with Infinispan
    right now)
Meeting Tight Schedules
• Typical setup
   o VCS (mercurial), wiki for requirements, issue tracker
   o dedicated release engineer, dedicated DBA
   o local development -> test server -> production server
   o FOSS dev tools (Eclipse, ant, etc)
• Agile approach
• Documentation was the first victim of the pressing
  schedule :( “updated unit tests” was the second :o
• A few statistics on the team
   o 5 months from scratch to production
   o ~10 developers
   o ~10 testers (functional testing)
   o ~20 helpdesk members for end-user support
   o Full GRNET NOC support
http://eudoxus.gr

linkedin.com/in/fstamatelopoulos

           @fstama

Contenu connexe

En vedette

Aristarchus.eratosthenes[1]
Aristarchus.eratosthenes[1]Aristarchus.eratosthenes[1]
Aristarchus.eratosthenes[1]Tamara
 
Aristotle & the cosmological argument
Aristotle & the cosmological argumentAristotle & the cosmological argument
Aristotle & the cosmological argumentjoelgalley
 
The Origin of Modern Astronomy
The Origin of Modern AstronomyThe Origin of Modern Astronomy
The Origin of Modern AstronomySaeed Jafari
 
Early Astronomers
Early AstronomersEarly Astronomers
Early AstronomersReni Jane
 
Heliocentric vs Geocentric models
Heliocentric vs Geocentric modelsHeliocentric vs Geocentric models
Heliocentric vs Geocentric modelsKatParker1724
 
Early View of the Universe
Early View of the UniverseEarly View of the Universe
Early View of the Universeprofbruckner
 
History of Astronomy
History of AstronomyHistory of Astronomy
History of AstronomyBob Smullen
 

En vedette (11)

CA 3.03 Geocentre
CA 3.03 GeocentreCA 3.03 Geocentre
CA 3.03 Geocentre
 
Aristarchus.eratosthenes[1]
Aristarchus.eratosthenes[1]Aristarchus.eratosthenes[1]
Aristarchus.eratosthenes[1]
 
Helio vs geo 2
Helio vs geo 2Helio vs geo 2
Helio vs geo 2
 
Aristotle & the cosmological argument
Aristotle & the cosmological argumentAristotle & the cosmological argument
Aristotle & the cosmological argument
 
The Origin of Modern Astronomy
The Origin of Modern AstronomyThe Origin of Modern Astronomy
The Origin of Modern Astronomy
 
Early Astronomers
Early AstronomersEarly Astronomers
Early Astronomers
 
HELIOCENTRIC and GEOCENTRIC Systems
HELIOCENTRIC and GEOCENTRIC SystemsHELIOCENTRIC and GEOCENTRIC Systems
HELIOCENTRIC and GEOCENTRIC Systems
 
Heliocentric vs Geocentric models
Heliocentric vs Geocentric modelsHeliocentric vs Geocentric models
Heliocentric vs Geocentric models
 
Early View of the Universe
Early View of the UniverseEarly View of the Universe
Early View of the Universe
 
History of Astronomy
History of AstronomyHistory of Astronomy
History of Astronomy
 
Heliocentrisim
HeliocentrisimHeliocentrisim
Heliocentrisim
 

Similaire à Eudoxus Technology & Architecture - JHUG May 2011 Meeting

Alluxio 2.0 & Near Real-time Big Data Platform w/ Spark & Alluxio
Alluxio 2.0 & Near Real-time Big Data Platform w/ Spark & AlluxioAlluxio 2.0 & Near Real-time Big Data Platform w/ Spark & Alluxio
Alluxio 2.0 & Near Real-time Big Data Platform w/ Spark & AlluxioAlluxio, Inc.
 
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...moneyjh
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...WSO2
 
Supporting Research through "Desktop as a Service" models of e-infrastructure...
Supporting Research through "Desktop as a Service" models of e-infrastructure...Supporting Research through "Desktop as a Service" models of e-infrastructure...
Supporting Research through "Desktop as a Service" models of e-infrastructure...David Wallom
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Arun Gupta
 
PRAVIN_RESUME-7.5+_YR_EXP-JAVA_J2EE
PRAVIN_RESUME-7.5+_YR_EXP-JAVA_J2EEPRAVIN_RESUME-7.5+_YR_EXP-JAVA_J2EE
PRAVIN_RESUME-7.5+_YR_EXP-JAVA_J2EEPravin Singh
 
DSD-INT 2020 Scripting a Delft-FEWS configuration - Verkade
DSD-INT 2020 Scripting a Delft-FEWS configuration - VerkadeDSD-INT 2020 Scripting a Delft-FEWS configuration - Verkade
DSD-INT 2020 Scripting a Delft-FEWS configuration - VerkadeDeltares
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterpriseBert Poller
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...Bob Ward
 
Nuxeo Platform LTS 2015 Highlights
Nuxeo Platform LTS 2015 HighlightsNuxeo Platform LTS 2015 Highlights
Nuxeo Platform LTS 2015 HighlightsNuxeo
 
StarlingX - Project Onboarding
StarlingX - Project OnboardingStarlingX - Project Onboarding
StarlingX - Project OnboardingShuquan Huang
 
BPM und SOA machen mobil - Ein Architekturüberblick
BPM und SOA machen mobil - Ein ArchitekturüberblickBPM und SOA machen mobil - Ein Architekturüberblick
BPM und SOA machen mobil - Ein ArchitekturüberblickOPITZ CONSULTING Deutschland
 
BPM and SOA are going mobile - An architectural perspective
BPM and SOA are going mobile - An architectural perspectiveBPM and SOA are going mobile - An architectural perspective
BPM and SOA are going mobile - An architectural perspectiveOPITZ CONSULTING Deutschland
 
Michael stack -the state of apache h base
Michael stack -the state of apache h baseMichael stack -the state of apache h base
Michael stack -the state of apache h basehdhappy001
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiyaajayrcgmail
 
StreamHorizon overview
StreamHorizon overviewStreamHorizon overview
StreamHorizon overviewStreamHorizon
 

Similaire à Eudoxus Technology & Architecture - JHUG May 2011 Meeting (20)

Building EUDOXUS with FOSS
Building EUDOXUS with FOSSBuilding EUDOXUS with FOSS
Building EUDOXUS with FOSS
 
Alluxio 2.0 & Near Real-time Big Data Platform w/ Spark & Alluxio
Alluxio 2.0 & Near Real-time Big Data Platform w/ Spark & AlluxioAlluxio 2.0 & Near Real-time Big Data Platform w/ Spark & Alluxio
Alluxio 2.0 & Near Real-time Big Data Platform w/ Spark & Alluxio
 
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
 
Supporting Research through "Desktop as a Service" models of e-infrastructure...
Supporting Research through "Desktop as a Service" models of e-infrastructure...Supporting Research through "Desktop as a Service" models of e-infrastructure...
Supporting Research through "Desktop as a Service" models of e-infrastructure...
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
 
PRAVIN_RESUME-7.5+_YR_EXP-JAVA_J2EE
PRAVIN_RESUME-7.5+_YR_EXP-JAVA_J2EEPRAVIN_RESUME-7.5+_YR_EXP-JAVA_J2EE
PRAVIN_RESUME-7.5+_YR_EXP-JAVA_J2EE
 
GAJENDRA_JAVA_J2EE_Profile
GAJENDRA_JAVA_J2EE_ProfileGAJENDRA_JAVA_J2EE_Profile
GAJENDRA_JAVA_J2EE_Profile
 
Lecture 9: Dynamic web application
Lecture 9: Dynamic web applicationLecture 9: Dynamic web application
Lecture 9: Dynamic web application
 
DSD-INT 2020 Scripting a Delft-FEWS configuration - Verkade
DSD-INT 2020 Scripting a Delft-FEWS configuration - VerkadeDSD-INT 2020 Scripting a Delft-FEWS configuration - Verkade
DSD-INT 2020 Scripting a Delft-FEWS configuration - Verkade
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...
 
Nuxeo Platform LTS 2015 Highlights
Nuxeo Platform LTS 2015 HighlightsNuxeo Platform LTS 2015 Highlights
Nuxeo Platform LTS 2015 Highlights
 
StarlingX - Project Onboarding
StarlingX - Project OnboardingStarlingX - Project Onboarding
StarlingX - Project Onboarding
 
BPM und SOA machen mobil - Ein Architekturüberblick
BPM und SOA machen mobil - Ein ArchitekturüberblickBPM und SOA machen mobil - Ein Architekturüberblick
BPM und SOA machen mobil - Ein Architekturüberblick
 
BPM and SOA are going mobile - An architectural perspective
BPM and SOA are going mobile - An architectural perspectiveBPM and SOA are going mobile - An architectural perspective
BPM and SOA are going mobile - An architectural perspective
 
Michael stack -the state of apache h base
Michael stack -the state of apache h baseMichael stack -the state of apache h base
Michael stack -the state of apache h base
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiya
 
Resume_Venugopal
Resume_VenugopalResume_Venugopal
Resume_Venugopal
 
StreamHorizon overview
StreamHorizon overviewStreamHorizon overview
StreamHorizon overview
 

Plus de Fotis Stamatelopoulos

CloudingSMEs Toolbox Presentation - Madrid Workshop June 11th
CloudingSMEs Toolbox Presentation - Madrid Workshop June 11thCloudingSMEs Toolbox Presentation - Madrid Workshop June 11th
CloudingSMEs Toolbox Presentation - Madrid Workshop June 11thFotis Stamatelopoulos
 
Building Scalable Cloud Applications - Presentation at VCCF 2012
Building Scalable Cloud Applications - Presentation at VCCF 2012Building Scalable Cloud Applications - Presentation at VCCF 2012
Building Scalable Cloud Applications - Presentation at VCCF 2012Fotis Stamatelopoulos
 
CloudCamp Athens presentation: Introduction to cloud computing
CloudCamp Athens presentation: Introduction to cloud computingCloudCamp Athens presentation: Introduction to cloud computing
CloudCamp Athens presentation: Introduction to cloud computingFotis Stamatelopoulos
 
Introduction To Cloud Computing And The Amazon (CloudCamp Athens)
Introduction To Cloud Computing And The Amazon (CloudCamp Athens)Introduction To Cloud Computing And The Amazon (CloudCamp Athens)
Introduction To Cloud Computing And The Amazon (CloudCamp Athens)Fotis Stamatelopoulos
 
Cloud-based Energy Efficient Software
Cloud-based Energy Efficient SoftwareCloud-based Energy Efficient Software
Cloud-based Energy Efficient SoftwareFotis Stamatelopoulos
 
Eudoxus technical architecture (Greek)
Eudoxus technical architecture (Greek)Eudoxus technical architecture (Greek)
Eudoxus technical architecture (Greek)Fotis Stamatelopoulos
 

Plus de Fotis Stamatelopoulos (7)

CloudingSMEs Toolbox Presentation - Madrid Workshop June 11th
CloudingSMEs Toolbox Presentation - Madrid Workshop June 11thCloudingSMEs Toolbox Presentation - Madrid Workshop June 11th
CloudingSMEs Toolbox Presentation - Madrid Workshop June 11th
 
Building Scalable Cloud Applications - Presentation at VCCF 2012
Building Scalable Cloud Applications - Presentation at VCCF 2012Building Scalable Cloud Applications - Presentation at VCCF 2012
Building Scalable Cloud Applications - Presentation at VCCF 2012
 
AWS UG Greece meetup #1
AWS UG Greece meetup #1AWS UG Greece meetup #1
AWS UG Greece meetup #1
 
CloudCamp Athens presentation: Introduction to cloud computing
CloudCamp Athens presentation: Introduction to cloud computingCloudCamp Athens presentation: Introduction to cloud computing
CloudCamp Athens presentation: Introduction to cloud computing
 
Introduction To Cloud Computing And The Amazon (CloudCamp Athens)
Introduction To Cloud Computing And The Amazon (CloudCamp Athens)Introduction To Cloud Computing And The Amazon (CloudCamp Athens)
Introduction To Cloud Computing And The Amazon (CloudCamp Athens)
 
Cloud-based Energy Efficient Software
Cloud-based Energy Efficient SoftwareCloud-based Energy Efficient Software
Cloud-based Energy Efficient Software
 
Eudoxus technical architecture (Greek)
Eudoxus technical architecture (Greek)Eudoxus technical architecture (Greek)
Eudoxus technical architecture (Greek)
 

Eudoxus Technology & Architecture - JHUG May 2011 Meeting

  • 1. Eudoxus.gr Technology & Architecture   Fotis Stamatelopoulos (@fstama)     JHUG Meeting @CollabAthens May 28, 2011
  • 2. What is Eudoxus - Disclaimer • A distributed system that supports and streamlines processes and operations related to the textbooks distribution for the higher education institutions of Greece   • Stakeholder: Hellenic Ministry of Education http://minedu.gov.gr/   • Developed, operated and supported by GRNET http://grnet.gr/    • Users: Students, Secretariats, Publishers, Distribution Points (e.g. Bookstores), related Ministry depts, Courier service, Helpdesk- More than 270.000 individual users • Multiple APIs and integration with other ISs http://eudoxus.gr
  • 3. Presentation Focus • Design and software architecture o by design based on 100% FOSS infrastructure o full JEE stack, rich web clients (GWT/Java) o scalability, performance and bottlenecks   • Building within a very tight schedule and ever changing requirements o agile methodology o human environment o “collateral damage”
  • 4. Design Goals - Challenges • Tight schedule, fixed milestones - deadlines o Incrementally release modules in production • Not finalized requirements o Be flexible, handle changing requirements • High availability o Redundant architecture o Live application updates – no downtime
  • 5. Design Goals – Challenges (cont'd) • Impossible to predict usage load – design for scalability, – elastically use infrastructure to serve growing usage, – prepare for the worst – efficient use of hardware infrastructure • Safeguard the transactional nature of related processes • Synchronize data and connect to other systems
  • 6. Technology decisions • Web-based user interfaces • Support various APIs • RESTFul APIs (JSON / XML payload) • use SOAP-based web services for integration in specific cases (e.g. courier service) • Java-based core (business logic tier) • Javascript-based / GWT-based (Java again!) rich GUIs
  • 7. Technology decisions (cont'd) • Back-end storage: RDBMS vs noSQL decision o noSQL options offer better scalability than typical RDBMs o needed at least a minimal transactional core - eventual consistency is not acceptable o dropped the initial hybrid approach - full RDBMS design • Use caching as much as possible • Authentication / Credentials • Stateless mechanism (killed JAAS) • Support both – Shibboleth-based authentication for students – form based login (other user classes)
  • 9. Infrastructure Software • Google Web Toolkit (GWT) for the rich GUI clients (browser) • Apache, nginx front-ends • Varnish web cache • JBoss Application Server o stateless EJBs implementing core business logic o JPA ORM (hibernate substrate) o JMS Queues and Message Driven Beans o JMX MBeans for scheduled tasks and maintanance • PostgreSQL RDBMS • Solr (Lucene server) indexing / search server
  • 10. Technical Architecture search.,eudoxus.gr
  • 11. Losing the HTTP Session • No HTTP session => workers don't need to replicate – synchronize • Application state is kept in the client • Authentication generates a short-lived auth token for the specific user & session • Token is kept in a cookie and send back with every request (over SSL), be it a REST or GWT-remoting call – In GSS used the token to encrypt the header • Completely stateless middle tier
  • 13. The worker pool (current)
  • 14. The worker • Stateless EJBs implement business functions • POJOs (JPA) for the data model • Mbeans for management tasks (no UI – access via the jmx-console) • Persistent JMS queues (hornetQ) & MDBs for syncing with other systems, serializing reports, handling file indexing (Solr) • REST API implementaiton will move to JAX-RS (Jersey)
  • 15. The data store • Single RDBMS (postgresql) instance with fallback • “Plan B” alternatives – Cold replicas for reports – Sharding / hot replication (one writer / multiple readers) – Moving parts of the data to NoSQL or even use Solr as a NoSQL data store • Currently we handle the load without sweating
  • 16. More on caching • Varnish caches specific HTML output and REST responses for URLs that do not change (Eudoxus controls this via http headers) • 2nd level caching - EHCache (per worker) • We will be introducing distributed read-write second level caching (working with Infinispan right now)
  • 17. Meeting Tight Schedules • Typical setup o VCS (mercurial), wiki for requirements, issue tracker o dedicated release engineer, dedicated DBA o local development -> test server -> production server o FOSS dev tools (Eclipse, ant, etc) • Agile approach • Documentation was the first victim of the pressing schedule :( “updated unit tests” was the second :o • A few statistics on the team o 5 months from scratch to production o ~10 developers o ~10 testers (functional testing) o ~20 helpdesk members for end-user support o Full GRNET NOC support