FictFact

Track Your Series

Posts tagged technology

1 note

FictFact in Bullet Points

This is inspired by Ravelry’s and Stack Exchange’s bullet point architecture details. We’ve seen a whole lot of growth in the last 6 months over at FictFact, and we’ve recently rebuilt a large portion of the site from the ground up which has allowed us to spread load across more (but cheaper) machines.

FictFact is a book series tracking site that is primarily built on Microsoft’s ASP.NET and SQL Server. Without the kind folks at BizSpark we probably couldn’t afford the licensing for either one of those so we thank them for their support.

Traffic

  • 300,000+ Page Views per Month
  • 18,000 Uniques per Month

Data Center

  • All of FictFact is currently hosted in Amazon EC2 (their East location)
  • Amazon S3 is used for backup and for serving static files (images)
  • Amazon ELB is used for Load Balancing

Production Servers (Amazon EC2)

  • 3 Web Servers (Windows 2008 Server / IIS / ASP.NET 4.0 / Small Instances)
  • 1 Database Server (SQL Server 2008 / Large Instance)
  • 1 Solr Server (Amazon Linux / Solr / Small Instance)

We recently moved from a large web server to several small after our code rebuild. We’ve also discovered the huge cost differences in buying Amazon reserved instances (it’s more than halved our monthly cost), so if you’re planning on running a project for at least a year and you’ve got the upfront capital I would recommend doing it. Worst case is that if you end up growing you can use those reserved instance for something else.

We do realize that we are over compensating for our traffic, we could run on two small web server instances but we run a third to run backend applications written in C#. The third web server does handle some of our traffic, but we’d love if Amazon ELB had more control on what traffic goes to who. Most likely we will move to something like HAProxy for future load balancing.

Software and Technologies Used

  • C# / .NET
  • MSSQL
  • IIS
  • Microsoft SQL Server 2008
  • Amazon Linux
  • Solr Lucene for search
  • Postmark for email sending
  • MailChimp for monthly bulk emails
  • PHP for scripting
  • Python for background jobs
  • SVN for source control
  • Amazon S3 for backup and static content
  • jQuery

Development and the Future

Most of our development is done in Visual Studio 2010 (thanks again Bizspark), although obviously things like shell scripting, php and python development is usually done in Textmate. There are only two of us (out of a three person team) doing development, so that’s why the operational decision of doing everything in Amazon was decided. When the site REALLY REALLY takes off we can see how cost effective it would be to move to physical hardware at a NOC, but for the time being Amazon is working fine (knock on wood).

We are currently experimenting with queueing with ActiveMQ and Python for some of our “heavier” processes, plus we are looking into using Amazon Map Reduce for making the recommendation engine a bit smarter as well as for generating better reporting.

Although we have looked at using Amazon’s Database offerings we’ve decided to stick with more of a “go with what you know approach” as far as the database is concerned. We are looking in things like Scribe for logging which will be useful for reporting purposes.

And for those who are asking “Why not Microsoft Azure?”, it simply doesn’t offer the flexibility we are getting with Amazon. The major deterrent was it’s lack of ability to run Solr which was tremendously easy to implement and the cornerstone for a whole lot of what we do.

Questions/Comments can be made here or at FictFact’s GetSatisfaction page.

Filed under technology fictfact