One Ring to Bring Them All

One of the biggest headaches in CS education is the platform mismatch between students, instructors, and the school itself. We are juggling different hardware (x86 vs. ARM), operating systems (macOS, Linux, Windows), and even minor version quirks in the same software. Campus computer labs level the field with a common setup but only if you can swipe in during lab hours.

Virtualization stepped in to help. We moved from full-blown VMs to lightweight containers so every student gets the same sandbox on their own machine. To this end, I’ve built a whole lineup of container images for different classes (modern web application, operating systems, distributed and parallel computing, big data engineering, cloud environments …) and they’ve mostly done the trick: fewer show-stopping bugs, way fewer “works-on-my-machine” cries for help.

However, two new pain points cropped up:

My image repos are ballooning. Storage-wise, they’re starting to look like a junk drawer. Rancher Desktop vs. Docker Desktop. I need Rancher for a new cloud-engineering class, but it butts heads with my existing Docker setup, especially on Windows, where volume mounts need hand-holding.

My plan to address the above issues includes:

Unify the images around shared base layers to shrink storage. Refactor the Compose files so host-path mounts work on macOS/Linux and Windows. Explore converting those Compose files into straight Kubernetes manifests down the road.

All the work-in-progress lives at github.com/ngo-classes/the-one-ring. In the end, I’m after one ring to bring all computing platforms together, and inside and outside of the classrooms, deploy them.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • YARRR: Yet Another Rejection, Resilient Required
  • Entry Level Positions of the Future
  • The Software Jobs Aren't Gone, They Have Only Moved
  • Trying out Ollama locally
  • a post with typograms