Hello Friends,
It’s been a few months since we spoke, hope you’re doing well and having some luck in the clack sales : )
When we purchased GH we said we wouldn’t change anything big... we lied, I’m sorry. We changed everything about the hosting and server structure for GH to make it as fast and reliable as Massdrop.
Before MD, GH was run on a single server, beside other services and personal projects. Today GH runs on a distributed set of servers and systems described here:
- Federated Services - ultimately what we have done is taken all of the required services it takes to run geekhack and silo into their own instances. This allows us to quickly diagnose issues in the backend, should geekhack be experiencing any.
- Fully Redundant Backend - all of the required services which we broke apart during the federation, are now fully redundant. This helps us to strive towards 100% uptime by knowing we have instances in hot standby waiting to replace any failure that is detectable.
- Load Balanced Across Multiple Web Servers - previously geekhack was run on a single instance, we have taken steps to ensure that geekhack is capable of running on multiple instances, so we can have little to no downtime.
- Content Delivery Network - previously all static content for geekhack was served back by the webserver. Now we leverage a Content Delivery Network (CDN) to move those assets closer to the edge so our users can retrieve them faster; a happy side effect of this is that it also reduces contention on the geekhack web servers.
- Code / Request Optimizations - we have taken steps to ensure some code flaws and requests which were exhibiting high failure rates, are no longer doing so. One such example would be a broken attachment url, that was held over from a long time ago and would generate 5XXs around the clock as people looked at old threads or crawlers scraped us.
- Operational Overhaul - upon taking over geekhack, we wanted to make sure we conformed to some of the same standards we do at Massdrop, when it comes to instance provisioning / configuration / lifecycles. We have taken the time to create operational recipes so we can quickly and easily, replace or add infrastructure as needed.
- Security Lifting - we have done a few things to help with security as well; the biggest thing we have done, is to do our due diligence to ensure the instances or our users’ data isn’t accessible to the internet except through the geekhack. This has allowed us to properly internalize and protect geekhack’s datastores and the data they contain, which has allowed me to sleep better at night.
This transition required a lot of work from our team, and Matt_MD in particular. Feel free to PM him your compliments.
Thanks for your time and contributions to the geekhack community!