InfoQ

Interview

Randy Shoup Discusses the eBay Architecture

Interview with Randy Shoup by Floyd Marinescu on Jun 05, 2008 12:00 PM

Community
Architecture,
SOA
Topics
Fault Tolerance,
Design,
Search,
Performance & Scalability,
Enterprise Architecture,
Grid Computing
Tags
QCon San Francisco 2007,
ACID,
eBay,
C++,
Grid Computing,
Design Patterns,
Distributed Programming,
QCon,
Deployment
Summary
In this interview from QCon San Francisco 2007, Randy Shoup discusses the architecture of eBay. Topics discussed include eBay's architectural principles, horizontal and vertical partitioning, ACID vs. BASE, handling data inconsistency, distributed caching, updating eBay on the fly, architectural and coding standards, eBay's search infrastructure, grid computing, and SOA.

Bio
Randy Shoup is a Distinguished Architect in the eBay Marketplace Architecture group. Since 2004, he has been the primary architect for eBay's search infrastructure. Prior to eBay, Randy was Chief Architect at Tumbleweed Communications, and has also held a variety of software development and architecture roles at Oracle and Informatica.
We are here at QCon with Randy Shoup from eBay. Randy can you tell us a bit about yourself and your role at eBay?
Tell us a bit about eBay's architecture, maybe from a high level, things that people may not know.
What are some of the architecture principles that you follow as a standard at eBay?
Considering the complexity and traffic volume of eBay, where are some design areas where you had to go against the grain of current thinking?
How do you detect when there's inconsistencies and what are some of the compensation strategies that you do?
So you described how partitioning works at the database level, but I am curious how that works at the application level. What kind of programming model have you exposed to your developers and do they even see that? How does that work?
Do you do distributed caching?
I don't quite understand why you are not doing any caching within the logical functional areas where you have a certain set of machines that are accessing a certain partition of data. If they are the sole accessor of that data why aren't you caching to get better performance there, in-memory access speeds?
So on to Scott's question: how do you deal with updates to the site, it's always running, what's your new release strategy?
How much J2EE do you use?
What kind of standards, code standards or architectural standards -- you had mentioned some principles at the beginning but perhaps a little lower level -- do you apply across all the organization?
Oh, great, ok we're honoured! So how do you enforce some of these standards, do you use things like static analysis tools, or is it just good faith or...?
So you're focused on the search group. Can you tell us more about how eBay approaches search?
How do you scale search? There is so much data underlying that, how do you keep it available and how do you keep it performant?
Looking at the Java platform, what do you think it needs?
What about grid computing? It seems that eBay would be naturally interested in this movement. What are you guys do with grid, or what do you think about it?
But you don't have any architectural plans at the moment?
At previous QCons we heard Amazon and Yahoo talk about how they decompose their architecture into services, where each service is then backed by some physical machines and the data that it accesses as well, and the site is composed of a true SOA, within an application boundary however. What do you think of that approach and is it different from what you are doing?
What is it about the Service-Oriented Architecture that, at a hundred times greater volume, you see as being something you would need to move to?
Final question is, What are your two favorite computer books?
show all  show all

No comments

Reply

Exclusive Content

10 Ways to Screw Up with Scrum and XP

Henrik Kniberg talks about 10 possible reasons to fail while doing Scrum and XP. Maybe the team does not have a definition of what Done means to them, or they don't know what their velocity is.

Tips from a Top Sports Team Coach

This article outlines 9 principles Marc Lammers discovered while building the world’s best field hockey team, mapping them to software development practices.

SOA Governance: An Enterprise View

Michael Poulin explains the necessity for SOA governance to ensure an Enterprise SOA's success, relying on concepts from the OASIS SOA Reference Model and Reference Architecture.

Developing Portlets using JSF, Ajax, and Seam (Part 2 of 3)

This article covers setting up a RichFaces portlet using JBoss Portlet Container and JBoss Portlet Bridge, deploying a RichFaces portlet, and RichFaces capabilities.

Scalability Worst Practices

This article discusses scalability worst pratices including The Golden Hammer, Resource Abuse, Big Ball of Mud, Dependency Management, Timeouts, Hero Pattern, Not Automating, and Monitoring.

Do the Hustle

Obie Fernandez shares his experience selling consulting services for both Thoughtworks and Hashrocket and give tips how Ruby developers can work with clients.

Natural Laws of Software Development - Deriving Agile Practices

Jeffries and Hendrickson derive Agile practices from the natural laws of software development. They don't just say "Be Agile!", but they explain why Agile practices make perfect sense.

Jinesh Varia About Amazon Alexa Web Service's Architecture

Jinesh Varia talks about the architecture of one of Amazon's web services called Alexa. Jinesh explains how Amazon has reached scalability, performance and reduced costs for the Alexa service.