|
||
---|---|---|
.forgejo/workflows | ||
src | ||
.gitattributes | ||
.gitignore | ||
12136891_Demo-Day.mp4 | ||
LICENSE | ||
README.md |
FYP Demo Day artifact
Details
- Brendan Golden
- 12136891
- https://silver.users.skynet.ie/fyp
- This Document
Overview
This repo is for my Demo Day demo.
Its goal was to find a way to showcase work I had done on my FYP/Skynet.
This was challenging since the work is spread across 15+ repos and the (Skynet) cluster itself.
A small (visual) example of this can be found in my atrium video.
On a more practical sense there are a few stages to what was showcased, which I will go into further detail.
The project as a whole is showcasing one segment of my work on Skynet, that being preserving its legacy for future generations.
The most tangible aspect being removing our website (skynet.ie
) from decades past.
- Recovery
- Preservation
- Infrastructure
Recovery
To be able to pass on a legacy you must first have it in the first place.
Unfortunately for Skynet it has suffered numbers data losses over its 30 year history.
As such we were sorely lacking in archives of what our site used to be.
Fortunately we have hard drives from some of the servers going back 20 years.
Then it was a case of mounting them and examining their contents.
Interesting challenges here were:
- Different locations for key directories/files over time
- Mounting RAID 1 drives is a hassle.
- Old drives are prone to not wanting to work.
Preservation
Preservation is not just keeping an item stuck in time, often it can be making slight modifications in order to allow it to function in the modern day.
That is also true for the old archives of the skynet.ie
website I found.
In the past 30 years the technology behind a website and hosting it has drastically changed.
When Skynet first started JavaScript (1995) and CSS (1996) had not yet been released.
We have used Apache Webserver for much of our history, which brought its own quirks.
One of these was the tidle
host, where users could host their website under skynet.ie/~$username
for example https://skynet.ie/~silver.
This format should be familiar to any in computer science, however it has drawbacks when it comes to modern security and as such they will redirect to a subdomain: $username.users.skynet.ie
for example https://silver.users.skynet.ie.
The second quirk of note is the use of .htaccess
, which allowed the webserver to block access to certain directories in the web root.
Finally what helped immensely was the Internet Archive, specifically the Wayback Machine.
It has copies of the Skynet website going back to 1997.
1996
- https://1996.skynet.ie/
- https://forgejo.skynet.ie/Skynet/website_1996
- Pre Internet Archive
- Was discovered on a failing hard drive nestled in a home dir of a former admin.
- Address was
csn.ul.ie
- Many tags in it are depreciated
- Makes sense since it was before CSS.
- Some links had to be made relative instead of absolute
2003
- https://2003.skynet.ie/
- https://forgejo.skynet.ie/Skynet/website_2003
- Made extensive use of
.htaccess
- Many directories which previously would have been hidden had to be removed from this public archive.
- THis snapshot did nto need much work to make it usable in the modern era/
2006
- https://2006.skynet.ie/
- https://forgejo.skynet.ie/Skynet/website_2006
- Like 2003
.htaccess
was used to block access, these files had to be removed from the public archive. - First version to use PHP with a database.
- This lead to many broken pages
- Wayback Machine was used to recover and rebuild those pages.
- Examples include:
2016
- https://2016.skynet.ie/
- https://forgejo.skynet.ie/Skynet/website_2016
- This was an archive taken of the site using https://www.httrack.com/
- Seems there was not any changes between 2012 and 2016 when ti was archived.
2023 - now
- https://2023.skynet.ie/
- https://forgejo.skynet.ie/Skynet/website_2017
- Current version of the site, no need for recovery
- Able to create yearly snapshots on demand.
Infrastructure
Recovery and restoration is a good start, however for it to truly be a legacy it must be accessible to all.
This is where we step outside of the code in this repo and the other linked repos. and talk about the Skynet Cluster.
Cluster
The Skynet cluster runs a fair few services on many VMs (LXC to be exact).
Full list can be found here
These provide many of the underlying services such as DNS, TLS certs and system monitoring.
The git repo host (Forgejo) and the CI/CD runners are also hosted by Skynet itself.
Even this repo (https://forgejo.skynet.ie/silver/user_deploy) is hosted on Skynet and uses the runners to deploy updates to https://silver.users.skynet.ie/fyp.
Redundancy
As outlined up in recovery the main cause of faulues that have happened to the cluster is data loss.
Thanks to being in a proxmox cluster we hae access to its High Availability
manager and CEPH
.
High Availability
This allows us to designate key services to rollover in case of failure, so if a server goes down the other one will be able to pick up some of its slack.
Currently not fully configure, only in the testing stage.
CEPH
CEPH is network based storage, where each hard drive is able to be independently managed.
We currently have ~120TB of raw HDD capacity.
However due to inbuilt redundancy only ~35TB is usable.
Moreover its spread across multiple (physical) servers, so even if one drive/server dies the others will keep working.
It does come with a tradeoff of requiring a 10gb+ network connection between the servers.