eople often wonder what kind of hardware Drupal.org runs on. Throughout the project history this has been a question with an ever-changing answer. In the beginning, Drupal.org was a server in a random office building. That server eventually died and required a fundraising effort to replace (the funds were raised in 24 hours!). After the funds were raised, new infrastructure was built out with those funds and donations from the OSU Open Source Lab (managed hosting) and Sun Microsystems (hardware). The most current Drupal.org infrastructure runs on hardware owned and managed by the Drupal Association.
The critical infrastructure is configured to share the load and be redundant. For example, db5 and db6 are configured with Percona Replication Manager to provide for better performance and allow automated and manual failover.
The 2015 Drupal.org Infrastructure Plan includes the following tasks:
Migrate FTP / Downloads to Drupal Association hardware and CDN
Decouple from Managed Hosting Services
DrupalCI
Git migration to a highly available cluster (git1/git2)
Puppet / CentOS 6 migrations away from Cfengine / CentOS 5
Revamp development and staging environments
Move production services to a Private network
Improve infrastructure documentation
More details about the plan can be found in the Google Doc.
As of October 2015 Drupal.org runs nearly all systems with CentOS 6 using a custom Grsecurity enhanced kernel and SELinux enforcement (unless otherwise noted). The Drupal.org infrastructure consists of the following hardware:
2 Load balancers
The load balancers run FreeBSD 10 and HAProxy. These handle all production web traffic for the dynamic and static web servers.
Dell PowerEdge R630 – lb1.drupal.org
Dell PowerEdge R630 – lb2.drupal.org
4 Dynamic web servers
The dynamic web servers host the Drupal sites. The current web stack uses Varnish, Apache httpd, PHP-FPM and Memcache.
Dell PowerEdge R410 – www1.drupal.org
Dell PowerEdge R410 – www2.drupal.org
Dell Poweredge R610 – www6.drupal.org
Dell Poweredge R610 – www7.drupal.org
2 Static web servers
The static web servers serve updates.drupal.org and ftp.drupal.org with Nginx.
Dell PowerEdge R420 – static1.drupal.org
Dell PowerEdge R420 – static2.drupal.org
1 Jenkins job runner
The Jenkins job runner is configured as a limited access slave which performs cron and deployment related tasks for the production Drupal sites.
Sun Sunfire x2270 – jenkins1.drupal.org
2 Apache Solr servers
Drupal.org is powered by Apache Solr. The Solr servers run Solr 5 and HAProxy with DRBD and failover support.
Dell R710 — solr1.drupal.org
Dell R710 — solr2.drupal.org
2 Media servers
These hold the /var/www directories. Their primary purpose is hosting NFS exports for the web servers. They run NFS, DRBD and support failover.
Dell R710 – media1.drupal.org
Dell R710 – media2.drupal.org
2 Database servers
These are the primary database servers for Drupal.org sites. They run MariaDB 10 and Percona Replication Manager for failover support.
Dell R720xd – db5.drupal.org
Dell R720xd – db6.drupal.org
1 Database server for Drupal 6 sites
The remaining Drupal 6 sites (qa.drupal.org, groups.drupal.org) will be decommissioned soon and run on this server. This currently runs MariaDB.
Sun Sunfire X4170 – db3.drupal.org
1 Database server for sanitizing database snapshots
Production databases are sanitized nightly on dbutil for staging and development environments.
Dell R520 – dbutil.drupal.org
2 Git servers
These run git.drupal.org and related services. They use DRBD and support failover.
Dell R720 – git1.drupal.org
Dell R720 – git2.drupal.org
1 loghost server
The loghost server acts as a central syslog endpoint. The server runs rsyslog and the infrastructure remotely logs to it.
Dell R710 – loghost.drupal.org
1 "util" server
This server is used for random tasks and other parts of our infrastructure. Its remaining tasks (Jenkins, mailman) will soon be replaced by virtual machines.