RSS
 

Grooveshark Lite Credits

16 Apr

Grooveshark Lite is up and the backend seems to be relatively stable now. I’ve been playing music seamlessly for a couple of hours. I noticed that we don’t have any specific information about the GSLite Team, so I thought I’d put up something quick:

People

Design

John Ashenden

Front-end

Katy Richard

Katy is our flex/flash guru. Many perceive her powers to be magical, despite her protestations to the contrary.

Back-end

Jay Paroline (me!)

I created a SOAP interface using NuSOAP to allow Katy’s front end to communicate with the API that I wrote, which does a combination of DB work and communicating with the existing Grooveshark framework.

Streaming media server

Qiu Yuanzong, Paulo Dasilva, Edwin Fuquen

None of these guys appear on the about page right now, so I can’t include their pictures. They got Red5 up and running on 3 amazon ec2 servers in preparation for launch.

Infrastructure

Colin Hostert

Colin set up the ec2 service, put up a bunch of front-end web nodes to load balance across, and made sure we had access to memcached.

Oh shit, stuff is broken

Travis Whitton, Chris Suter, Douglas Bell

When Red5 started crashing hardcore on our ec2 servers once hundreds of people tried to use it at the same time while the red5 team was out, Travis and Chris jumped in to debug the problem and hack together some temporary solutions. Meanwhile, Douglas got us hooked up with a few more ec2 instances to help balance the load.

Technology

Amazon S3 and EC2
Cloud computing FTW! While long-term this is an expensive solution, when you need instant scalability, that’s what these services are for. Once we have time we’ll have in-house solutions for both hosting cached MP3s (currently on S3) and streaming them (currently on EC2).
MySQL (InnoDB)
All of our data exists in a massive MySQL database. It took about 6 hours worth of UPDATEs and ALTERs to the schema to get the DB in shape for Grooveshark Lite.
SOAP (NuSOAP)
SOAP is a bulky way to communicate, and we ran into limitations both in NuSOAP, PHP SOAP and Flash in terms of implementations, but we got it working anyway. In the next iteration of GS Lite we will most likely forgo SOAP in favor of JSON-RPC or some other lightweight protocol.
Memcache(d)
The highest levels of navigation all reside in memcached, which give us the massive benefit of removing a huge amount of load from the MySQL DB. I was also able to decrease the load on our web servers (building XML in an interpreted language is very expensive!) by adding some hacks to NuSOAP so that any message that contains non-volatile information is cached after it is built. I believe that memcached deserves the bulk of the credit for why the back end was able to withstand the massive amounts of load we were under even when red5 couldn’t handle the strain.
Red5
Red5 is an open source clone of flash media server written in Java. Despite the problems we’ve had with it, without Red5, GS Lite would not be possible.
Sun
All of our in-house servers are Sun boxes.
PHP5
Backend programming language of choice for Grooveshark. It may not be as sexy as Ruby or Python, but it’s hellaciously powerful.
Apache
Goold ol’ Apache, what would we do without you?
Flex
Flex is an incredibly powerful open source framework for creating complex flash apps easily. From what I gather from Katy, Flex’s default behavior is both a blessing and a curse; often making things pretty by default, but a horrible pain to override if you need it to do something different.

Other

It goes without saying that GS Lite would not be at all possible without the existing Grooveshark infrastructure, so really the whole Grooveshark development team deserves credit.

 
 
  1. Travis

    April 17, 2008 at 9:01 pm

    Yup, kudos to the whole team. Assisting in the deployment of GS Lite has been one of the most challenging and exciting projects I’ve worked on professionally, and it’s only going to get better.

    I’m really looking forward to seeing where it lands in the next few months.