NG Snakeoil: A Technology Walkthrough
VMWare ESXi
VMWare ESXi is a Server Operating System that allows you to run multiple softwares on a single computer. These softwares are actually virtual computers - meaning the software is running a software version of a computer! This technique is called Virtualisation, and the software computer is called Virtual Machine (VM).
Virtualisation allows me to run multiple VMs in a single powerful computer. E.g. I can run 6 VMs (1 CPU 4 GB of RAM, and 2TB storage) on a single machine that has 32 GB RAM and say 16 TB of storage). The advantage of this are:
- lower power consumption (1 PC instead of 6)
- use up less physical space (Only need space for 1 PC instead of 6)
- flexibility and easy management of the VMs (I can easily manipulate the configuration)
Proper development requires proper hardware. At the time Ryzen/Epyc from AMD are not released yet, Intel Xeon processors reign supreme. This is my Xeon server.
The Xeon CPU is water cooled, has 32 GB of ECC RAM. This machine also has a LSI hardware RAID card with six 2TB Hitachi HDDs, split into two RAID-5 volume (4TB per volume). A NAS provides more storage.
This server is running the following Virtual Machines (VM):
Virtual Machine | Purpose |
---|---|
64 Bit Development Machine | This VM is where I do all my 64 bit development on SnakeoilOS and includes all the development tools required to build and create SnakeoilOS - from firmware to ISO. It is running Ubuntu 16.04.02 LTS 64 Server bits. |
32 Bit Development Machine |
This VM is identical to the machine above, but with everything 32 bits instead of 64. This machine is a luxury because in theory I could do both 32 and 64 bit development on the one single machine (something I used to do in Snakeoil 0.1.x). Using different VM for each 32 and 64 environment for me reduce the complexities of configuration- esp when upgrading the Ubuntu system. |
GIT Server2 | A modern version control system. This will be discussed in more details in the next page. |
Donation Activation Checker | Checks for any PayPal donations and sends a Activation email to the donor. |
Multiple test machines | Multiple test machines with different browsers, testing both the SnakeoilOS installation, as well as the WebApp. |
As you can see virtualisation allows me to run all the above (8 virtual machines) on a single machine. VM provides a lot of control and flexibility. I can create something called a Snapshot, which captures the state of the VM at the time, allowing me to make changes and then revert back to the snapshot state (think of this as a very powerful version of Microsoft Restore Points). This machine is in use since Snakeoil 0.1.4.
NB: I’m in two minds of turning this existing Xeon server into a NAS, and move development into a new AMD Ryzen or ThreadRipper with 64 GB of RAM running Proxmox. It’s more a “want” than a “need” right now. Perhaps in the future when I can afford to stay in a bigger house with more room.