Monday, January 14, 2019

Building a flexible server configuration for experimentation and other workloads

Some years ago now I revived an old PC and set it up as a headless server to run various projects. Basically it was something that you could use to spin up VMs, play with new OSes, test new configurations or install and run apps like Jenkins, Kubernetes or databases. I've created and torn down many configurations since then but found during the most recent hardware rebuild that it's good to put a bit of extra effort into the set-up to reduce the overhead of maintaining the platform.

You may argue that this is all a bit anachronistic in the era of cloud computing but IMHO there's no substitute for getting your hands dirty with the basic building blocks that the big cloud providers use so you can see the nuts and bolts of the architecture.

So the basic config is:

  • An old PC - mine was an old AMD hex-core with 32GB of cheap memory sticks installed, and modest hard drive for the hypervisor.
  • Ubuntu Server 18 with the Xen hypervisor.
  • A NAS for various services (you could host these somewhere else that's always on (like a router), or use a substitute in some cases)
    • iSCSI (or local LVM2, if you have the disk for it)
    • DNS
    • DHCP
    • LDAP
    • NFS
  • Networking infrastructure like routers and switches, and an internet gateway

No comments:

Post a Comment