Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by Eric Gunnewegh at 7:52 on Monday 19 March    Add 'The eBay Architecture – Striking a balance between site stability, feature velocity, performance and cost' site to delicious  Add 'The eBay Architecture – Striking a balance between site stability, feature velocity, performance and cost' site to technorati  Add 'The eBay Architecture – Striking a balance between site stability, feature velocity, performance and cost' site to digg  Add 'The eBay Architecture – Striking a balance between site stability, feature velocity, performance and cost' site to dzone

In de eerste presentatie ging Dan Pritchett in op de architectuur van eBay, waar hij als Technical Fellow werkzaam is. De volgende getallen zullen duidelijk maken waarom een goede architectuur, waarbij schaalbaarheid en manageabilty belangrijke requirements zijn, noodzakelijk is. Er zijn 212 miljoen geregistreerde gebruikers in 33 landen die gebruik maken van eBay, dat 24 uur per dag in de lucht moet zijn. Er zijn 1 miljard page views per dag, afkomstig van 30 miljoen gebruikers. Per kwartaal worden er 300 nieuwe features gereleased en komen er meer dan 100000 regels code bij. Ondanks de enorme groei van eBay de afgelopen jaren, is de beschikbaarheid omhoog gegaan van 97% in 1999 tot 99,94% nu.

Belangrijke requirements met betrekking tot de architectuur zijn:
- beschikbaarheid
- schaalbaarheid
- betrouwbaarheid
- security
- onderhoudbaarheid en de mogelijkheid om snel nieuwe features op te leveren.

De applicaties van eBay draaien in een J2EE applicatieserver met een MSXML framework voor de presentatielaag. De data is in databases verdeeld aan de hand van de functionele deelgebieden (bijvoorbeeld: aparte hosts voor users / items / accounts / feeback / etc). Er wordt onderscheid gemaakt in meer dan 70 functionele deelgebieden. Het gebruik van database resources wordt geminimaliseerd door hier geen business logic neer te leggen en geen gebruik te maken van stored procedures. CPU-intensieve logica wordt verplaatst naar de applicatie laag, waarbij je ook moet denken aan het bijhouden van referentiele integriteit, het maken van joins en het sorteren van data. Er wordt verder veel gebruik gemaakt van prepared statements en het binden van variabelen. Om deadlocks en concurrency problemen te voorkomen wordt er geen gebruik gemaakt van gedistribueerde transactions (alleen auto-commits vanuit de database). Voor ORM gebruikt eBay een framework dat zelf ontwikkeld is: het Data Access Layer (DAL) framework.

Vanaf 2002 werd eBay zo groot dat de search engine tegen de grenzen van zijn kunnen aanliep. Vanaf die tijd wordt er een zelf gebouwde search engine gebruikt. Vanwege unieke eisen aan de search engine, kan eBay geen gebruik maken van een off-the-shelf product. Zo moet de search engine namelijk real-time zijn. Gebeurtenissen zoals een bod of een verkoop moeten direct zichtbaar zijn in de zoekresultaten. Hiervoor gebruikt men technieken als real-time indexing, in-memory-indexing en caching van dure en veel gevraagde queries.

De eBay development teams gebruiken een Eclipse IDE met hun eigen plug-ins om de productiviteit de vergroten.


© 2020 Java Competence Network. All Rights Reserved.