We’ve had some questions about what kind of hardware we’re developing the software on, so I’ve decided to write an entry about it. As we describe in the FAQ, we’ve decided on Linux on x86 as the target platform, and we’ve built a development cluster accordingly. We have 5 Linux servers of varying configuration: 1 database server, 2 application servers, and 2 load balancer/firewall servers:

Database Server
HP Proliant DL585
Quad 2.4 Ghz Opterons
(attached to a Storageworks SCSI Enclosure)

Application Servers
HP Proliant DL380
Dual 3.4 Ghz Xeons

Load Balancers/Firewalls
HP Proliant DL140
2.4 Ghz Xeon

This is all networked with a HP Procurve gigabit switch.

You could basically think about it in three distinct parts:

  • Database. The database layer is the heart of the system. It houses the database, and controls access to the data.
  • Application. The application layer is where all of the business logic is performed. It then asks the database layer to make any appropriate changes to the data.
  • Network. The network layer allows for communication between the servers and to the clients.

This image gives a logical overview of the setup:

Cluster Diagram

Using this configuration as a baseline, as we develop the software, we can do load testing to determine exactly what kind and amount of hardware we need to support the load of PINES. However, from what we’ve seen in our testing so far, the production cluster may look very similar to the current development cluster.