AnandTech 4.0

This release of the site was a fairly major upgrade in terms of back-end code. We decided to do a rewrite on the site code, which we have been using since version 2.0. ColdFusion MX had been released, and AnandTech was used as a high load test site during the beta of ColdFusion MX. Needless to say, we beat on it and found a few issues here and there that were fixed prior to MX's release. One of the significant changes in the ColdFusion language was the ability to form code components into a web-based API, which really helped us organize the code into more reusable sections.

Reporting of web statistics was starting to cause us some grief in this release due to the amount of clustered servers and log file size. We obtained a quote from WebTrends for their software, but it was going to cost around $15,000 for our server farm. We felt that analyzing log files was archaic, and we decided to make our own statistics tracking system. Development of the web statistics system took a couple of weeks, and is the same system that we use to date.

Just as our traffic was increasing, so was the size of our editoral staff, and the amount of content being published. Anand and the other editors asked for an easier way to create their graphs; basically, a central system to manage the data that goes in the graphs and to be able to re-generate them without having to upload images. So, we did some research and found a fantastic piece of software called SwiffChart from GlobFX, a company in France. This graphing engine allowed us to construct our graphs programmatically from our content management system. SwiffChart gave us a number of file formats in which to save the generated graphs. We had originally used Flash because of its file size when compressed (smaller than any other conventional format). We recently switched to PNG format, the next smallest format due to the number of readers who can't have the plugin or want it for that matter. To date, we still use this graphing system, although it has been enhanced over the past year with various features to make it even easier for our editorial staff to use.

During this release, we had a few issues with the Windows version of Apache, which we used because of mod_gzip (HTTP Compression) module. Apache wasn't threading properly on Windows at that time (prior to version 2 of Apache). We decided to switch to IIS, and a HTTP compression module called PipeBoost, which we still use now. The next upgrade was the largest in the history of the site.

Hardware used in version 4.0
5 x Dual AMD Athlon MP 1900+ w/ 512MB Memory

View version 4.0 of the website

AnandTech 2.0 & 3.0 AnandTech 5.0
Comments Locked

67 Comments

View All Comments

  • PorBleemo - Wednesday, July 28, 2004 - link

    vda #30:

    You forget that their servers are a little more powerful then 166Mhz.
  • JasonClark - Wednesday, July 28, 2004 - link

    felix,
    No where in the comparison did we say the performance comparison was CF vs .NET, well aware that there are some differences in page layout along with architecture. The comparison was the old site to the new site. For us to do a fair comparions the code would have to be quite similar, and even then it is still not apples to apples. Overall, platform, css and a re-architecture of the site brought us some large gains (as illustrated).

    Yes we had already invested in licensing, but with some JRUN related issues that went unresolved, and the cost of future licensing .NET was a better choice for us.

    RAD is great, but honestly with Visual Studio 2003, the argument isn't as great as you might think.
  • fbaum - Wednesday, July 28, 2004 - link


    Hey ho...

    Just noted that your interface from pure HTML to CSS doesn't really result in an apples to apples comparison of cf to vb.NET performance. No matter how you slice it, larger pages = slower rendering site. Taking down pages from 130K down to around 45K in HTML would yield huge performance gains without changing your app server, and wouldn't have required you to redevelop code, just presentation.

    Got to agree, the VS IDE is slick. But I'm a RAD fan and a cf fan, I like having useful builtin functions to call upon, and .NET coding sometimes makes development that should be easy harder than it should be.

    Why rewrite? Your server licenses are already bought, right?

    Disclaimer: my email address ends in @macromedia.com, consider my comments accordingly

    -Felix
  • kenny4269 - Wednesday, July 28, 2004 - link

    Nice article, always interesting to read behind the scenes stuff.

    vda:
    I work as a computer tech and have one thing to say about Windows. Outside of the security holes (which ANY OS can have), most Windows problems are caused by the user. Keeping up to date with patches, antivirus, not opening attachments, etc. all all things that MUST be done on ANY OS (open source or not). If you download BonziBuddy on your Windows PC or some poorly written Linux app, you can still have problems.
    Don't get me wrong, I like Linux, but don't tell me it's perfect choice for everything just because it's open source.
  • JasonClark - Tuesday, July 27, 2004 - link

    sonixDivx, the performance gain was a combination of our new layout (removing the news), and the architecture of our .NET version. But, the way we wrote the .NET site is similar to writing a ColdFusion app with CFC's as the backend, very similar. I'm not sure we'll do a comparison of the two, since the two sites are fairly different in layout and content.

    Cheers
  • JasonClark - Tuesday, July 27, 2004 - link

    vda:

    What happens when a 18 year old genius has the source code to the operating system that your entire system architecture relies on? Then exploits a vulnerability in the source code (yes unix developers make mistakes, enough that redhat network sends out a constant stream of e-mail :)).

    Then that exploit (which was easy to find as you had source code) takes your network down and costs you thousands every hour? There is another side to the open source argument, I'm not saying I don't believe in the movement, but your argument is one-sided.

    BTW, the registry has never been corrupt for us, and that's what emergency backup disks are for btw, I certainly hope you don't run linux assuming it will never break :).

    Phiro: we use Linux Virtual Server (vda are you reading this? LINUX virtual server :)). We use 5 web servers run the site, we could run off of 1 except on extremely busy days. We like redundancy.
  • vda - Tuesday, July 27, 2004 - link

    > In regards to linux, our expertise lies in windows and it hasn't given us any grief what so ever

    Problems do happen with every OS. Now, when Windows hangs on you, what do you do? When registry got corrupted, what do you do?

    Nothing. You can do nothing because you have no source of the damn thing. You have next to nothing in regard to debugging facilities. No strace. No gdb. No kernel debugger. Disassembling stuff is
    possible but illegal.

    It does not matter for "yesterday's advanced user"
    style admins and web designers, for they are Gates' target audience.

    For me, it does matter.
  • vda - Tuesday, July 27, 2004 - link

    > Code is as bloated as the developer makes it, experience, experience...

    Hehe. Our corporate Internet gateway have
    lots of stuff. Tons of network utils
    (nmap, mtr, tcpdump, iptables, traffic shaper)
    and services (*transparent chaching web proxy*,
    www, mail, secure ftp, DNS server, DNS cache).

    It runs on Pentium 166 and 40Mb of RAM.

    Try to install Windows NT on that.
    --
    vda
  • vda - Tuesday, July 27, 2004 - link

    I once said this:

    'What happens when you read some doc and either it doesn't answer your question or is demonstrably wrong? In Linux, you say "Linux sucks" and go read the code. In Windows/Oracle/etc you say "Windows sucks" and start banging your head against the wall.'

    To my surprize, it even propagated into some .signature files :)
  • Aaron - Tuesday, July 27, 2004 - link

    A well written C++ .Net ISAPI filter on IIS beat out Apache in any confguration last I checked.

    Anandtech Team: Are you looking to add any additional developers to your team? I am a senior .net dev / usability designer / MS SQL Server DBA / systems architect. Work on your application would make a welcome addition to my resume. Email me if you are interested.

    aaron.dezeeuw #at# gmail.com

Log in

Don't have an account? Sign up now