InfoQ

Interview

Randy Shoup Discusses the eBay Architecture

Interview with Randy Shoup by Floyd Marinescu on Jun 05, 2008

Community
Architecture,
SOA
Topics
Design ,
Grid Computing ,
Performance & Scalability ,
Fault Tolerance ,
Enterprise Architecture ,
Search
Tags
QCon ,
QCon San Francisco 2007 ,
Distributed Programming ,
Design Patterns ,
eBay ,
ACID ,
Deployment ,
C++ ,
Grid Computing
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

Watch Thread Reply

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.