When Scott Thompson left Visa to take the CTO role at PayPal in 2005, the Web company's data centre surprised him. "Wait a minute," he recalls saying, "they run a payment system on Linux?"
"I was pretty familiar with payment systems and global trading systems, but I just scratched my head when I came here," Thompson says. With his history of working on IBM mainframes and large Sun Solaris systems, the PayPal approach to computing seemed alien, especially for a company whose core mission was dealing with money.
PayPal runs thousands of Linux-based, single-rack-unit servers, which host the company's Web-presentation layer, middleware and user interface. Thompson says he quickly saw the economic, operational and development advantages of open source and Linux technology. He now sees no other way to do it.
"When you're buying lots of big iron, as I did in other places I've worked, your upgrade path is $2 million, $3 million at a clip. You just had to buy big chunks of stuff to scale," he says. "Here at PayPal, our upgrade path is 10 $1,000 no-name servers, slapped into the mid-tier of the platform. And we just keep scaling it that way. It's unbelievably cost-effective."
This model also leads to a highly reliable site, says Matthew Mengerink, vice president of core technologies for PayPal, who helped build this architecture from scratch.
"Rather than have a monolithic box, or an impenetrable fortress that never breaks, we just have so many [nodes] that the breakages are irrelevant," Mengerink says. Using a proprietary operating system to build out a system with a thousand points of failure would not be an option, he says. "This distributed, highly redundant system we have is predicated on the cost model of Linux and Intel," he adds.
The distributed model also lets the company make massive shifts and resource allocation when needed. The generic Linux Lego-block-style servers that make up the company's Web tier can be easily shifted around for a variety of tasks.
For example, every day at 0100 PST, PayPal runs its batch processing for reconciling payments. Thompson says this kind of work, typically done on mainframes or large symmetric multiprocessing boxes in other payment organisations, is spread across the middle-tier Linux servers in the data centre.
"We don't bring the site down" he says. "We just allocate a higher portion of the [servers] to running batch processes, and we crunch through all that data in three hours every night."
On the back end, these thousands of systems communicate with just a few large Sun Solaris boxes, which run an Oracle database that stores all customer data. A custom-made database connection-management system links Web processes from the Linux-based Web and middleware tiers of the PayPal site to the Sun/Oracle back end.
"The speed with which the processes come and go is blindingly fast," Mengerink says. "So there is a tier that buffers between those Web and database layers. As far as the application is concerned, it just thinks it is making calls out to a database. The application just doesn't care there is this middle layer. Then the database on its side sees a nice, old-fashioned durable connection, and doesn't feel like it's being melted down by a connection storm."