March 13, 2007

Skinny is speedy thanks to OSS

Author: Tina Gasperson

SkinnyCorp.com has built a group of community-based sites on a traditional LAMP stack -- Linux, Apache, MySQL, and PHP. SkinnyCorp software engineer Harper Reed credits the open source infrastructure with keeping the business agile. He says the licensing costs of proprietary software would have strangled a business that's growing as quickly as his.

SkinnyCorp owns a collection of blog and ecommerce sites. The founders, Jake Nickell and Jacob DeHart, met in 2000 on a graphic design forum. After Jake won a T-shirt design contest, they decided it would be fun to start a business selling community-designed T-shirts. They called it threadless.com. Participants get to submit T-shirt designs, which are judged by the threadless.com community. The winning designs go up for sale on the site, and the designer gets a cash prize.

Since its inception, SkinnyCorp's network of sites has grown to include 15megsoffame.com, a community music site; nakedandangry.com, for community-designed clothing; yayhooray.com, an invitation-only discussion site; a drink recipe site called extratasty.com; and another T-shirt design site called omgclothing.com.

Reed, in charge of managing Skinny's server platform, joined the company two years ago when it was running on one box hosted at freeservers.com. It was his first time working for a small business running on open source. "My background is corporate technology with Solaris or IBM," Reed says. That kind of solution never would have worked for SkinnyCorp, though, with growth that Reed describes as "exponential" over the past two years. "It's just prohibitively expensive to use that and grow like we have. You'd get killed on licensing." Today, Skinny's traffic pattern calls for dozens of load-balanced Web servers, and a "pretty complex MySQL cluster," hosted at Rackspace.com.

At first, Reed started Skinny out on a PostgreSQL database. Now, he's moved everything to MySQL, "because Postgres was annoying. Our MySQL skills were growing, and it was easier to migrate to that, than to pick up people with Postgres skills. PostgresSQL supports more advanced SQL technology, but for general speed and ease of use, MySQL really shines stronger."

With Skinny's continued rapid growth, Reed has made it his goal to increase the efficiency of the CPU power he has now rather than add more servers. "We're figuring out how to leverage caching technology. We gauge it by when the site is slow, and what kind of features we're adding. If we feel like our transactions are being compromised, we don't want people to have a hard time buying a shirt."

Open source has been perfect for SkinnyCorp because of its low cost and flexibility. "It's the ability to grow and try new things with the speed of our personal growth," Reed says. "I think if we were to use Solaris or Windows, we couldn't grow at the same speed. If we decide we want to try some crazy MySQL trick, we can look online and see a bunch of people who've done it. Or we can contribute a patch. We're in control. Now, Linux isn't taking us out for lunches -- that's kind of annoying. But we're able to say, 'This is software we've written that we want to give back to you guys.'"

Reed is also happy with the skills of developers in the open source community. "You can find commodity programmers who have very good skill sets -- not so specific to enterprise Java or Solaris. You find people with more organically grown skills."

"I would have gone with Linux or PHP in my corporate job," he says. "It was hard then [to convince management to use open source] -- to say that all the work this company has done up to now is wrong. No matter what you do, it's kind of the 'hippy punk rock' way to do things. It doesn't quite sit with the COO. Now, if it's $30K a box, they think that's something. It's the philosophy and culture of the organization."

Still, Reed says that some aspects of an OSS-based infrastructure are challenging. "Our expectations are that it will always be perfect. Sometimes, there are little bugs that make it difficult. You just have to wait it out. There are some MySQL replica bugs that drive us up the wall. Still, we're happy with it, so we wait, angry in the corner, until it gets fixed. Sometimes I do wish I had a vendor to call and bitch at."

Click Here!