The Evolution of Open Source
A few weeks ago, I shutdown my personal GitLab server in favor for moving all my projects to the "gitlab.com" domain. The reasoning was simple - MySQL was being removed and changing the database requirement to only Postgres.
GitLab was not in the wrong at all, managing two different databases is not easy. You can't write anything specific to either system and need double the tests for your CI/CD process. However, the day I installed GitLab myself in 2012 I picked MySQL due to my server constraints.
Years went on, I continued to patch and upgrade my own installation. Perhaps my own fault for never switching to the newest and greatest pre-built packages, but I upgraded my own source installation of GitLab every month for 7 years.
I made many mistakes hosting GitLab myself. I went against the norm and used MySQL and Apache. This worked against me multiple times with upgrades enforcing a change that wasn't completely documented for the rare Apache/MySQL combination. It was open source though, so normally a few Google searches an existing knowledge kept my self-hosted copy of GitLab running.
Release after release would add things that would require some work, like adding GoLang as a dependency and updating to latest and greatest Ruby/Node. These are things I would normally have to do, but the monthly GitLab upgrade would force my hand quicker than normal.
The tipping point was when MySQL was removed, the open source product was no longer feasible for me to self-host. While developed in open source, it no longer was feasible for me to use. The barrier of entry was too high. I had to move my projects and shut down my instance. I noticed this pattern with another piece of software, known as Sentry.
Sentry
Sentry is an error tracking piece of software that anyone could easily self-host and is developed in the open source space. It's an amazing piece of software, because it was open source and free unlike the expensive alternative at the time - New Relic. The open source nature meant I could host it for all my hobby projects. Projects that in total hosting cost $2 month simply wasn't worth any SASS offering.
For years this was an excellent product and still continues to be, but early 2018 something changed. A product that had a release very often hadn't had one in 3 months. Additional months passed and it seemed something had changed - the SASS iteration of Sentry (at sentry.io) was continuing to gain features, but no official release had been tagged in the open source iteration.
I could technically upgrade to the latest bleeding code, but without release notes or documenting. I'm sure I would be entering a dangerous area. Unfortunately a tipping point also hit for Sentry, which started with this blog post.
We know this will be painful for anyone self-hosting Sentry, and, while we hope to provide a reasonable migration path, it’s always a good time to reflect on the value of self-hosted Sentry versus letting us operate it securely in the cloud for you.
https://blog.sentry.io/2019/05/14/sentry-9-1-and-upcoming-changes
Companies have to make money and supporting open source iterations of their software probably doesn't make sense. We could argue that working on open source attracts attention which may eventually lead to the SASS option, but more than likely some analytical decision was made that hours spent on a product that does not directly benefit paying users is not worth it.
I'm sure the SASS offering requires some tools to handle the large amount of users. These tools in the case of Sentry are Apache Kafka, ZooKeeper and a few more. Sentry doesn't want to have a crippled open source iteration of their software, while their SASS has a different product offering. This means that unforunately the future releases of Sentry open source will require these new dependencies.
I could stay on the old version, but this is just a ticking time bomb with dependencies and versions till it no longer works. I could attempt to install the required dependencies, but then my hobby project work might become pure dev-ops. Sentry wants paying customers and I don't blame them, but my history with Sentry in the open source space for little hobby projects is now over.
(Context - The only reason I know about the SASS iteration of sentry.io is I use it at work)
Ghost
Finally in our list is the project known as Ghost. An amazing blog written in Node trying to compete with the giant - WordPress. This project is open source along with a SASS offering.
For a few years I've run three blogs self hosting them using Ghost. This has had some hiccups, especially during the upgrades of 0.x to 1.x, but I understood a non 1.0 release would have some growing pains.
Things are great with Ghost and I have no complaints. I upgrade when new versions happen and nothing has gone wrong - yet. However, as shown with Sentry and GitLab is my dance with Ghost going to come to an end? Time will tell, but I hope I can continue to self host Ghost for the foreseeable future.