The code

Nexus sites run off a custom coded Content Management System, known internally as the Nexus Engine, it was designed and written by Robin in PHP. Each Nexus site runs off its own local MySQL database that contains all data local to that site (files, images and articles) and taps in to a centralised member database provided by Invision Power Board software running The Nexus Forums. The result is independent and unique sites all linked through a single member database -- when you're registered on one you're registered on them all.

The Nexus Engine was designed to be easily adaptable and flexible using a modular based system, enabling new features and updates to be quickly applied across the sites, as well as the ability to quickly "switch off" certain modules that might be causing high load or security related issues. While easy to maintain and expand, the software is easily replicated to produce additional Nexus sites for other games. Fallout 3 Nexus was installed and ready to use after just an hour of work.

Tools and experience

Robin codes his sites, mainly out of habit, using Dreamweaver with the graphics produced in Adobe Photoshop. Robin uses a dual-monitor setup, coding on a 24" monitor and using a 21" monitor to preview edits made to his code in real-time.

System specifications
Asus P7P5DD P55 motherboard
Intel Core i5 750 2.66Ghz processor
Corsair XMS3 8GB (4x2GB) DDR3 PC3-12800C9 1600MHz memory
ATI HD5850 1024MB GDDR5 video card
Creative Audigy 4 Pro soundcard
1 x OCZ Summit Series 120GB 2.5" SATA-II Solid State Hard Drive, 2 x 1.5GB SATA drives in RAID-0, 2 x 500GB SATA drives in RAID-1
Antec 900-2 Case

Robin is completely self taught, picking up new coding techniques and languages as and when necessary. He has a common knowledge of HTML, CSS and Javascript and a more intricate but not expert understanding of PHP. He spent two years at the University of Exeter learning object-orientated Java programming.

Robin's current projects are very traffic intensive. As a result Robin has had to learn to adapt not only his coding skills to produce more efficient code but also how to work remotely with the servers the sites run on to squeeze out every bit of performance possible. This has meant learning how to work in a linux environment via SSH technology.

Server architecture

The Nexus sites run off of eight seperate servers located in Seattle, Washington, Texas and London. The servers are split in their functions, with three powerful web servers running the four seperate Nexus sites and five servers used as high bandwidth file serving solutions.

Web servers
Optimised to run the Nexus Engine, these servers run on higher specifications than the file servers as they have to cope with more requests. Running Apache on Red Hat Linux the servers use highly tweaked HTTPD, PHP and MySQL ini files and custom software forks for optimal performance and functionality.

Specifications: 2 x 2.0 Ghz Xeon 5405 (Quad Core) processors, 16GB DDR2 RAM, 2 x 300GB SCSI drives, 1GBit pipe with metered bandwidth

File servers
Running on lower specifications than the web servers, these servers act as high bandwidth solutions for all file downloads on the Nexus sites. As a secondary role these servers also run daily backups of the Nexus sites and store them chronologically in case of any issues with a Nexus site.

Specifications: 1 x 2.4 Ghz Xeon 3220 (Quad Core) processor, 4GB DDR2 RAM, 1 x 750GB SATA drive, 100mbit pipe with unmetered bandwidth

Bandwidth

Nexus sites are not only traffic intensive but also file intensive. Visitors come to Nexus sites in search of files that can range anywhere in size from one kilobyte to hundreds of megabytes. On average Nexus sites serve over 60 terrabytes (60,000 gigabyes) of file downloads to users each month. It is therefore necessary to not only allow for high processor and memory usage through the use of the Nexus sites but also for high bandwidth consumption through the downloading of files from the site.

Nexus sites make use of RSYNC technology via SSH that mirrors files uploaded by users on to the file servers. The system is expandable allowing for additional file servers to be added at a moments notice should the need arise.