The MySpace.com Cowboys

I've been at CFUNITED all week, and based
on the amount of blog coverage that's occurred without my help, I
didn't feel compelled to post.  However, the day three New Atlanta
/ MySpace.com keynote was an amazing talk that couldn't go without my
opinions being expressed to the world.

First, some background.  MySpace.com is a huge
CFML site that has recently moved from CF5 to BlueDragon.NET. 
They seem to be the centerpoint of New Atlanta's marketing efforts, at
least for the CFUNITED crowd. 
They get about a bazillion hits a day, and have had lots of problems
scaling their infrastructure and codebase over the crazy growth curve
they're on.

However, after listening to one of the
Directors of Something Techical speak at the keynote, it's not hard to
see why they have this problem.  He said several times that they
often push code two, three, four times a day.  They don't have
separate development, staging, QA, and production server
infrastructures.  They don't scale their server architecture, they
just increase it's size (which sounds similar, but is quite different).

One of the specific problems he
mentioned was unsufficient throughput of their database drivers on CF,
specifically that the database servers couldn't handle more than X
connections, and that if you have Y server, you're necessarily limiting
each server to X / Y connetions.  With a huge web farm, that might
mean X / Y is only 5 or so connections, which greatly cripples the
throughput of the web server.  So how do they solve it?  Not
build a more scalable database infrastructure that can handle more
connections (something that I understand MS SQL Server can do easily
with replication and distributed servers, though I've never actually
done it).  They switch to ADO.NET native drivers, rather than the
JDBC drivers that CF uses.

I don't want to rail MySpace.com too much, but I couldn't pass up the chance to share my amazement such that a huge
site does things in such a ridiculous way, and then complains when they
have problems, and looks for a solution to the symptoms, rather than a
solution to the problems.  The moral of the story, of course, is
that your infrastructure (both server, and development processes) is vitally
important.  And unfortunately, that kind of cowboy attitude
reflects rather poorly on New Atlanta, since they seem to consider
MySpace.com to be such a core part of their marketing efforts.

And
to round out some context, I originally had no intention of going to
the keynote, because I figured it'd be an hour of New Atlanta doing
MS's marketing for them.  However, I was pleasantly surprised to
see a truly legit case study from a real client, solving real-world
problems, and it wasn't overtly sales-pitchy.

13 responses to “The MySpace.com Cowboys”

  1. jared chandler

    you can be my friendster friend, but not my myspace friend.

  2. Mike Brunt

    I saw the New Atlanta announcement and felt a bit peculiar and now having read what you heard and saw I am a bit, no, a lot astounded. For the 5th biggest site on the Internet (and growing) to be effectively patching things like this can only spell big troubles for them down the road, in my opinion. I am not critisizing New Atlanta by the way but this really is not a solution crafted on solid ground. If there is no effective QA-Staging environment how in heavens name do MySpace know that this major shift in underlying architecture will actually work in the world wild web?

  3. Rey Bango

    Hi Barnie. I can't give an opinion about MySpace's development process because I wasn't there to hear the keynote nor do I work for them but, I have to disagree that this reflects poorly on NewAtlanta in any way. If MySpace's infrastructure is as poor as you mentioned and BD.Net allowed MySpace to actually scale better, then that's certainly a testament to how well NewAtlanta's product performs. Just my 2 cents.

  4. barry.b

    Hi Barney,

    I'm just looking at this in isolation – I wasn't at the keynote and I've no idea who MySpace are but…

    "They switch to ADO.NET native drivers, rather than the JDBC drivers that CF uses"

    is the biggest worry about New Atlanta using another idea for db connections?

    Do you not consider this an area where CF (of what ever breed) is not the strongest area? I mean, there's more than a few people frustrated at the (lack of) features and performance of the humble cfquery/cfstoredproc tag, instead using java for their connections and transactions.

    ADO (and more so ADO.NET) is pretty powerful. Having the ability to talk natively to the database is, IMHO, a big plus (with the drawbacks being for other RDBMS – SQLclient for SQLServer and OLE-DB for everything else).

    My point is that there can be some real weaknesses with CF and database interconnectivity, when push comes to shove*. Features are barely at the ADO (classic) level, let alone the huge steps forward MS took with ADO.NET.

    While I also might not agree with what NA have done, do they at least have a point in a specialised area (.NET platform)?

    just my 2c
    barry.b

    (PS: "INsufficient" not "unsufficient", yes?)

    * "data shaping", multiple recordsets in a dataset, data "relations" (querying across recordsets in memory by defining relationships between the recordsets), native XML support into and out of the database, etc. And these are only features ADO.NET does that I want, let alone native instead of a JDBC "swamp"

  5. Jennifer Larkin

    When you select a site as your example site for how a product can help people and present it to an audience that contains a significant number of experts in that area, you need to pick a good example. In this case the example was apparently "We did all of this stuff wrong and weren't willing to fix the stuff we did wrong to something reasonable, so instead we switched platforms and database drivers and, well, one of those things worked so we'll credit both."

    It's not a good example. Because they detailed the things about their architecture that are really bad and said that X let them get around their really bad architecture, it leaves the audience wondering why such a horrible architecture was used as an example for how a product can help others. The primary implication is that they couldn't get a better example and if they couldn't get a better example, the audience is forced to wonder why. The next and more insulting implication is that the software can help us because we all build things with attrocious architecture like the example site.

    There's nothing quite like a sales pitch that features examples that insult the intelligence of the audience.

  6. Barney

    Rey,

    I think you're kind of missing the point. Jennifer's comment is almost perfectly dead-on as to why the example reflects poorly on New Atlanta.

    Note that nowhere has any mention of BD.NET occured. In fact, BD.NET is almost certainly a better platform for MySpace.com than what they were running, because of their specific needs.

  7. Barney

    Barry,

    I can't really comment. Though I've never had issues with CF's database drivers, I can see how they could be problematic. However, those problems are nothing more than you'd run into with any piece of Java-based code.

    Java is fundementally platform independant, while .NET is fundementally platform dependant. Because of that, you should expect to see better performance on just about every aspect of an application with .NET. The cost is that you HAVE to have Windows servers, and almost have to be using SQL server, while with a Java app, you can pick your platform and database from a whole list.

    Same thing goes for SQL Server. .NET should (and from what I understand does) absolutely SLAUGHTER any other platform for connections with SQL Server, because it's 100% native from end to end. CFMX uses JDBC, which is intentionally not native, instead using an abstraction layer so your application's aren't tied to a single database. Sure, you might not get screaming performance with a particular database, but you'll get reasonable performance with EVERY database.

    So it's just a different approach. MS has a "you must do it this way" approach, while the Java world generally has a "here's a tool, do what you want" approach.

  8. Vince Bonfanti

    You completely missed the point of the presentation. The comments Peter made about architectural issues and their "cowboy" approach to code deployment were made on a slide entitled "early days" and were meant to illustrate "lessons learned", and the way *not* to do things, not thier current practices. Also, some of these were meant to be amusing anecdotes about their growing pains, and were on a slide entitled "Story Time."

    We deliberately deferred discussion of BD.NET until the end of Peter's talk because we *didn't* want this to come across as a pure sales pitch. (I guess no matter how hard you try, you just can't please everybody…sigh).

    You should read the summary of the keynote that I posted on my blog and review the original slides (a link is on my blog):

    http://blog.newatlanta.com/index.cfm?mode=entry&entry=DCE930CB-C4BB-BCD4-66AE12F14C9315A7

    Compare my summary to the original presentation starting on slide 18, and I think you'll see my summary is accurate. That's the real meat of the presentation as far as their reasons for switching to BlueDragon.NET.

    And, yes, they did try to upgrade to CFMX and use the JDBC drivers for SQL Server, but they didn't work. I wasn't there for that testing, so I can't really comment, but problems with the CFMX JDBC drivers are common knowledge and well-documented. I'd also that to point out that BlueDragon wasn't brought into the picture until *after* MySpace had already evaluated and rejected CFMX.

  9. Pete Freitag

    So vince, in other words, they probably would have switched to ASP.NET if BD didn't exist.

    So regardless of what your opinions are of BD, this is a win for CFML.

  10. Sutton Yamanashi

    Hey – does anyone know where I can get that chart New Atlanta / MySpace.com displayed at CFUnited? Specifically, I am looking for ratings of the top 10 website traffic. A client of mine needs to overcome the ColdFusion / fusebox objection… I need everything I can to battle the .NET propaganda machine :)

    Thanks in advance for your help, compadres!

  11. Barney

    Sutton,

    Here's New Atlanta's press release for the topic. Not the chart you're looking for, but surely some cannon fodder for the managers.

    http://www.newatlanta.com/corporate/news/myspace_announce.jsp

    You might also want to check out the CFUNITED site (http://www.cfunited.com/) over the next week or two. I couldn't find them yet, but supposedly there will be additional stuff to download that wasn't in the attendee packet for the various sessions. Don't know if keynotes fit the bill, but they might.

  12. Mike Brunt

    And this very recent article in the Los Angeles Times indicates how much traffic MySpace gets: –

    http://www.latimes.com/technology/la-fi-myspace5jul05,0,4701402.story?coll=la-home-headlines&track=hppromobox

    for instance "Only Web giants Yahoo Inc. and Microsoft Corp. displayed more online ads in May than MySpace, according to research firm Nielsen/NetRatings."

    There is lots more but the bottom line is MySpace running on CFML and FuseBox is one of the most heavily trafficked sites on the web and is growing rapidly.

  13. Chris

    Anyone else having bother with myspace or is it just my pc?
    Last couple of days it seems it wont let me download any song from anywhere.
    Anyone having same bother – or anyone how to sort it?