Sunday, July 15, 2007

I'm glad EnvisionConnect wasn't built like MySpace

My son, Blake, is a teenager. He lives on the Internet.

error2 From his perspective, his geeky dad's advice is completely useless—until he has a computer problem.

On weekends, I spend many long hours debugging MySpace for him—and each time, I grow more thankful that EnvisionConnect wasn't created using Adobe Cold Fusion.



The Cold Fusion Markup Language(CFML) was all the rage in 2003—when we first considered options for developing an Internet-ready version of Envision.

We had heard that a new online application—MySpace—was using it, and—considering their marketing strategy—we believed CFML was a technology worth investigating.

error4 In the end, however, we rejected the idea.

Being a markup (text-based scripting) language like HTML, developers were skeptical that Cold Fusion would not provide the power and flexibility that Envision users required, and—contrary to MySpace's expectations—we were concerned that a Cold Fusion application would not scale to meet the needs of a customer the size of Seattle or Orange County.

Following months of analysis, Decade became a Microsoft partner and adopted their dotNet managed code strategy—creating EnvisionConnect counting on the power of C# and Visual Studio.

Following this strategy, we developed a solid, scalable product in record time.

The MySpace development team was not so lucky.

At the Cold Fusion United conference in 2005—Peter Amiri—then MySpace's Technical Director—reviewed the history of their application:

  • MySpace went online using Cold Fusion 5 in September of 2003.
  • By December of 2003, their development team realized the application would not scale to handle the number of users logging in, and they began looking for alternatives.
  • It took nearly two years to find a CFML solution that would scale.

Scalability—the ability to scale—is best defined as...

"The ability to support the required quality of service as the system load increases without changing the underlying system."

Finding something scalable that supported the CFML legacy code wasn't easy for MySpace. The company didn't settle on a solution until 2005, when they adopted New Atlanta's Blue Dragon.

New Atlanta describes their product this way...

"Blue Dragon for the Microsoft .NET Framework allows you to natively integrate and deploy your CFML on the .NET platform. Leverage Blue Dragon for native high-performance integration with COM, ASP.NET, ADO.NET, C# and Visual Basic.NET."

pacman It seemed like just the solution they needed, but unfortunately, layering CFML over managed Microsoft code was not enough to solve MySpace's scalability problems.

In 2005, MySpace made headlines all over the world. The application was down for over 12 hours, while traffic was redirected to a Flash-based Pac Man game.

Fortune Magazine reported...

"MySpace needs an upgrade. The site crashed for over half a day in late July. Page loads have slowed dramatically, and the site, say tech bloggers, suffers from inadequate hardware and junky code."

When the company blamed the down-time on heat-related power-outages, bloggers didn't buy it.

Aram Sinnreich—an analyst in MySpace's home turf, Los Angeles County—wrote:

"Proxy servers hold cached copies of every site and every page and every piece of information on fail-over servers. The idea that this company could fall victim of a power outage is frankly absurd. It's possible that there's some larger reason for the outage, like that they reached the limits of scale. The company could be reluctant to admit it, because they don't want to turn off advertisers or their user base, and they don't want to get negative publicity out of it."

Today, a simple Google search for "MySpace errors" will return over two million pages of discussion.

google myspace error

In a Yahoo forum, one user described the situation this way:

"MySpace errors are caused by the volume of users. MySpace records millions of hits every day and MySpace struggles to keep up with it. This is the reason you have to wait so long for updates to appear to other users. MySpace is just one annoying experience after another!"

Two weeks ago, Fumbled.org compiled a list of MySpace's 2007 application's woes, entitled "Reasons MySpace Will Fail Within a Year".

Their list is summarized here:

"1. Security is a nightmare. All accounts are routinely hacked by vandals, and Spambots hijack your account to send marketing messages to your friends—in your name!"

2. Cryptic errors display at least once each time an account profile is displayed.

3. Pages load at half the speed of other Internet applications—even using a cable 8 MBPS connection. The more people there are online, the slower pages load.

4. Three in every ten logins fail.

5. The interface is outdated and inconsistent.

6. Tom Anderson, the owner, doesn't update his account profile. (What does that tell you? )

7. Competing products like FaceBook and Windows Live Spaces are stable with clean, modern interfaces."

MySpace errors today are so common that one site hosts an image gallery of MySpace error messages, and there is a petition on the web to get them corrected—or at least get them converted to human readable text.

The petition begins:

"This online petition was created for users of MySpace to come together to express their dissatisfaction with the constant error messages (and image loading problems) which we face (on a very regular basis) while using their site, all of which are presumably being caused by MySpace's refusal to upgrade their web hosting services to better suit the needs of their many devoted users."

error1

The "Friends of MySpace" site instructs users how to avoid what they call "error pot-holes".

Unknown to these users, it is unlikely that the problems are related to hosting services. MySpace is said to be hosted on a massive server farm, consisting of a fully-redundant array of high-performance servers.

The latency problems still appear to be directly related to the scalability of the software. I captured the error messages that appear in this article after using the application only ten minutes.

These messages are too cryptic to understand—even for programmers, but in each case, continuing to refresh the application eventually solved the problem.

error3 Today, Blake and his "friends list" endure these problems without complaining. They are accustomed to clicking the refresh button.

Blake says it's no big deal...

"We hung out at Friendster before MySpace came along. When Friendster and HiFi started getting slow and having problems, we moved to MySpace. Eventually, we'll move to something else. It doesn't cost us anything to switch."

The moral of this story, according to the .NET development community...

"If some smooth talking salesman tries to sell you a business-critical web application, make sure the product is built using technologies from Microsoft or it's partners."

And if that salesman admits that his product is dependent on Cold Fusion, CFML, or Blue Dragon...

...run for your lives!


No comments: