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
rayon - Sunday, November 28, 2004 - link
have you guys considered using the Tracing mechanisms of ASP.NET instead of writing your own debugging class?Hudo - Sunday, November 28, 2004 - link
What's up with the 2 paragraphs per page anymore? I mean before you know it, they're be one sentence per page?!I just found it irritating.
kamper - Sunday, November 28, 2004 - link
"It was music to our ears that [FuseTalk] decided to port their product to ASP.NET."Heh, that sounds a little funny coming from you, Jason. Was it entirely a coincidence?
Thanks for an interesting and informative article. I think that anyone bashing you for it is probably just jealous of your job ;)
Jason Clark - Sunday, November 28, 2004 - link
#7 Yep, it wasn't the first time we've had high throughput. We've done 40+ quite a few times, sometimes they last a good portion of the day.#10 A comparo between languages is a very very touchy subject. You can easily run into legality issues, especially if the test isn't 100% fair on both sides. The trickier part comes in writing code that identically architected on both sides of the fence. The minute you use an optimized method in one language and not another, the test isn't fair. Here we're just showing from a performance metrics point what we've gained and how scalable we are.
#4 I'm sorry you took the article that way. We don't write these for any other reason than to let people see what we do, and hopefully learn from it. We are by no means perfect and have made our own fair share of mistakes. Bad code, poor choices in platform, we've been there and done that. We're learning just as much as anyone else in this industry does.
petrusbroder - Sunday, November 28, 2004 - link
As a regular reader I really enjoy the articles, tests and comments. Sometimes I am just amazed over the fact that the comments tell so much more about the writers themselves.It is as if I were in a waiting room where all those who have problems suddenly woke up and - against their normally well developed ability and well defended right to protect their integrity - started "tell and show".
Every day sombody makes my day. In Sweden we have a saying: "Ett gott skratt förlänger livet" - "a good laugh prolongs the life" - probably I'll get to be at least a 100!
To the writers of the reviews and articles: thanks, I like your work; not only the contenst but the mix as well.
To those who comment: I just love it: sometimes because the comments elucidate technical issues, sometimes because the comments prolong my life!
overclockingoodness - Sunday, November 28, 2004 - link
By competition, you mean get other sites to benchmark their servers (like Toms or Slashdot). I don't think those sites would be interested in this as they have nothing to gain from it. Besides, they would not give access to Jason to their back-end servers to make changes and alter. :)I think we are thinking too far ahead. :-)
Reflex - Sunday, November 28, 2004 - link
I am curious as to what they were using beforehand. I would love to see a 'real world' site such as this compare .NET to some of the competition, although it may be more work than they would be willing to undertake.overclockingoodness - Sunday, November 28, 2004 - link
#7: Sorry about that. It just annoyed me that people can't appreciate the work AnandTech puts into their articles and all their hard work gets labeled as "kissing your own ass". :)#8: Are you saying that you were intentionally trying to be a troll? I don't think it would be boring. People could discuss some things in the comments section without having to read through your and my posts bickering back and forth.
msva124 - Sunday, November 28, 2004 - link
Without at least one good troll, the comments section for this article would be very boring.Ardan - Sunday, November 28, 2004 - link
Whoa, easy there tiger (#6). He's stupid, we know, and probably a troll too. No need to get so feisty about it. I'm sure Jason knows we appreciate the articles, since we are always curious just what keeps this site running consistently well :).I was surprised that you have used 64Mbit/second of throughput for a few hours once...wow!