Supporting GHC Continuous Integration Infrastructure

To make this proposal a bit more concrete, @davean and I worked through a couple of possible options for replacing the existing Google Compute Engine (GCE) configuration.

Executive summary

I would propose the following:

  • 1x Hetzner ax101 instance (120 EUR/month)
  • 1x Windows Standard 16-core license (around 800 USD one-time-cost)
  • 1x Windows 2-core license pack (120 USD one-time cost)

This would allow us to virtualise four Windows runners on faster hardware than our GCE resources currently provide for a small fraction of the cost.

Options evaluated

For reference, I describe the options I evaluated below.

Funding the existing GCE setup

The scenario below is presented only for reference; the scenario that I would propose is described in the following section

The current Windows capacity consists of five Google Compute Engine n1-standard-4 instances. These are four-core (Skylake-class) hardware with sufficient memory and disk to accommodate one GHC build. The hardware and license costs of each of these instances sums to roughly 250 USD/month. This totals to around 1250 USD/month.

However, this is considerably higher than strictly necessary as GCE only offers Windows Server Datacenter edition licensing, which is nearly an order of magnitude more than Standard edition. Consequently, over half of total cost is being eaten by licensing.

Moving to Hetzner

In my experience Hezner has considerably lower prices than traditional cloud providers. Moreover, it would give us access to Windows Server Standard edition, which reduces licensing costs substantially. For instance, we might opt for a machine type like the ax101 (16 cores/32 threads, 128 GB RAM, 3.8 TB disk) which at 120 EUR/month is roughly one-fifth the price of one of the previous GCE instances. This hardware could easily run four or five concurrent builds.

Licensing Windows Server Standard through Hetzner would add roughly 55 EUR/month. Alternatively, we can provide our own license, which would come at an up-front cost of roughly 800 USD. The break-even point for providing our own license is roughly 14 month; as I expect this configuration will be used for at least two years it may be worthwhile going this rough.

1 Like