Friday, August 31, 2007

Architecture at the BIG end of town

Dan Pritchett on EBay's attitude towards architecture:
“I now need 3 mid tier boxes just so that we can have this widget on this page”
“One of the challenges that I often face with the product organization is that they will see a cool feature on a site that is parallel to our industry but they really want it. And it's like "they are doing this" and that's ok, but they are doing 500.000 page views a day and you want to put it on a page that's doing 300 million page views a day, and that involves 5 database round trips, in order for us to implement that feature so you are talking about adding 1.5 billion SQL executions a day to a database. A host that can do 600 million host a day, I now need 3 mid tier boxes just so that we can have this widget on this page. These are the kind of problems that you face as an architect at EBay.”
They also have an interesting definition of a "high-volume" page:
“(if) you are a developer at EBay you'd better know how to do a 4 million page views a day page”
“Another cool thing is that what a lot of organizations consider a scaling problem, we don't assign architects to because it's such a trivial volume of data that we expect the developers to be able to handle it. The 3 or 4 million per day per page site is just something that we will apply our pattern to. You don't need approvals, just go build it the way it is supposed to be built, we know it will run. There are people spending hours of their day trying to figure out how to get the 4 million page views a day. To us it's a cast aside problem, you are a developer at EBay you'd better know how to do a 4 million page views a day page.”
This is a good insight into the sorts of problems a truly globally popular site faces. Other problems that they have are how to maximise “transactions per watt”, a problem most organisations are not even close to facing up to.

On the other hand there is another InfoQ article covering the shift from machine-performance to human-performance which looks at the other end of the spectrum, the average application where it has become more important to maximise (expensive) developer productivity over (cheap) processor performance, coming out of a discussion about the marriage of Ruby (language) and Agile software development. There is an accompanying video in Japanese with English subtitles:

No comments:

Post a comment