My server journey
This page is about my journey using server software and operating systems on a spare computer which I got from school.
Server V1: Truenas
Initially I used Truenas as my operating system as I only intended to use my server as a NAS (Network Attached Storage)
I originally chose to create a NAS to store our family photos which we have 19 years worth roughly equating to 500GB.
For the storage I salvaged hard drives from old computers and external storage drives then grouped them together in a pool using raid 1.
Truenas
Truenas is a server class operating system used for network attached storage operations. It uses drives in a raid array to store data which can be accessed over the network.
Server V2: Proxmox
After realising I wanted to do more with my server than just a NAS, I switched to Proxmox which is a hypervisor. A hypervisor is an operating system which has the main goal of running virtual machines. I created many virtual machines including a reverse proxy, a Minecraft server, a NAS, a webserver for this website, a VPN and many more. However, over time I learned there was a more efficient way of running many services on one server...
Server V3: Docker
Recently I have transitioned all my services to Docker which is a containerisation service. Containers are different to virtual machines because containers use the host operating system's kernel whereas a virtual machine will create a new kernel for each VM, this is very resource intensive, so a container is better because it uses less resources but has the same properties, isolated, fast and secure. I have created containers for the same services I had VMs for and now each service uses vastly less resources.
Server V4: Kubernetes
I recently acquired a new server from my friend. It has the same specs as my current server, so I decided to cluster them together to easily scale my applications across many nodes.
After learning that Kubernetes was the container orchestration tool of choice for many companies such as Google, Spotify and Reddit I decided learning it would greatly benefit me in terms of employability and general computer science knowledge.
I currently have a 2-node setup, one master node and one worker node however the master node has been tainted so it can also run processes. I plan to expand to a 4-node setup in the future by buying old parts from my friend and turning them into a server as well as getting parts for a server from my school.
Kubernetes
Kubernetes is a container orchestration tool which manages Docker containers within things called pods, multiple pods of the same container can be run simultaneously, and traffic can be load balanced between them to maintain up time in a high availability environment.