Under the Covers: Architecture at AnandTech and the Performance of ASP.NET
by Jason Clark on November 27, 2004 12:10 AM EST- Posted in
- IT Computing
Our bread and butter is up next
We're an online publication. It's no secret that advertising is what keeps AnandTech running, so this was the next critical piece of our migration. For years, we've been using FuseAds, which is a ColdFusion based ad serving software package. Since we were moving to a completely ASP.NET backend, we now had to be able to track our advertising within our new architecture.We decided to split up our ad tracking routines into essentially "ad display" and "ad track" applications. Our display functionality selects the right ad for the portion of the site that the user is on, and the tracking software keeps track of how many times an ad was viewed and clicked on. It might seem simple at first glance, but we built these applications for enterprise load. The tracking software runs in memory and dumps to the RDBS every x minutes (configurable), and dynamically tracks the weight of each banner, if a banner is being weighed over a certain period of time. We had some help on our ad tracking system from a good friend of ours, Dominic Plouffe. He was the lead engineer on the old ColdFusion based FuseAds.
Next up was some new functionality that the sales folks required. We were requested to add in the ability to Geo-Target ads, which allows ads to be delivered to different geographic regions. To solve this, we used MaxMind for our geo-targeting needs, by accessing their COM object to deliver these ads.
At the same time that we wrote the new ad framework, we updated the admin interface to our ad software using ColdFusion. Yes, we still use ColdFusion here. ColdFusion's strength is in building form-based interfaces to data, and reporting on that data. Nothing that we've seen compares to ColdFusion in this aspect of web development. ColdFusion still runs the form based administration of the AnandTech website, and probably will for some time to come.
26 Comments
View All Comments
everman - Tuesday, November 30, 2004 - link
Do you have any specific measures built in to handle something such as a slashdotting? Such as a page with lower bandwith requirements (static page with no database queries). Maybe actually be able to dynamically create such a page if it goes over a certain number of requests in a time period.Phiro - Tuesday, November 30, 2004 - link
You cluster for several reasons; peak load (aka slashdot effect), high availability for hardware failure reasons and for maintenance reasons, i.e. a MS security patch. Or power cabling changes in their server room. They can take 1/2 the cluster down (for instance) and do whatever needs to be done, then swap, rinse, and repeat as neccessary.mldeveloper - Monday, November 29, 2004 - link
Jason, can you comment on the effect of a slashdotting? Is this one of the reasons you are running a cluster if normal traffic can easily be handled by one server?Jason Clark - Monday, November 29, 2004 - link
#21, there are tests that state that PHP5 is faster, then others state ASP.NET is faster. I have yet to see a well written and fair test. We prefer ASP.NET, it suits our needs.#22 We use Microsoft SQL Server 2000 Enterprise.
hifisoftware - Monday, November 29, 2004 - link
Nice article. Can you tell us which Db are you using?ncage - Monday, November 29, 2004 - link
Awesome it looks like asp.net has awesome performance. Looks like microsoft did a good job. What i would be interesting in finding out is how it compares in perfomance to PHP. Maybe im wrong but i don't think a "huge" amount of sites use cold fusion a lot of them use PHP or classic asp pages.Jason Clark - Sunday, November 28, 2004 - link
#15 I agree, we'll work on putting more on a page, it is annoying.#16 I took alook at the tracing namespace, I guess not close enough. From what I see it does some of what we need but not the sql syntax passed to ado, which is probably the most valuable part of our debugging class.
#18, we're working on the flash ad issues, i hear ya.
#19 the quad 848 is our db server, all our webservers are still dual athon MP's :)
Jeff7181 - Sunday, November 28, 2004 - link
Pay no attention to #3&4, Jason. He's probably a THG regular over here trolling, lol.Seriously though... I love these articles... it's interesting to know what kind of hardware and internet connection and software is needed to run a site like this.
Is this the same Quad Opteron 848 setup w/8 GB of RAM mentioned in a previous article?
elecrzy - Sunday, November 28, 2004 - link
I was wondering if its possible for you to make the website more compatible with firefox since the ad flickering is really annoying.Reflex - Sunday, November 28, 2004 - link
11 - No, I mean compare it to a Apache/Linux based platform, as well as other options.Jason - You'd want to disclaimer such an article very heavily, and simply put it as your experience. I just know that right now it is virtually impossible to know what platform is going to give you more performance on the same hardware, all you can do is look at various marketing docs and hope your reading half the truth. There was a day where MS was not a serious player in this space, I am curious about how far they have really come. Real world info on that is more or less non existant.