Dmitry Savenko

Software Engineer. Get in touch:

Don't use GitHub

09 Jan 2017

OK, use it. But only as your in-house Git servers’ mirror, or for throwaways with no real value. And only use it as Git hosting, don’t touch wiki, PRs or issue tracking.

Why?

Because of the Presumption of defectiveness:

Any service found in the Internet is likely broken or will vanish soon.

This way of thinking can keep you out of trouble.

For instance, why use GitHub wiki, if you can write your docs in Markdown or Asciidoc and commit them as files? GitHub manages cross-file links well and shows files just like Wiki pages. What else do you need?

Linus bestowed Git upon us so we can keep many copies of our work and never lose it and endure no delays perfecting it. But we’ve forsaken this amazing gift and started using GitHub for everything, relying on it. GitHub became the cornerstone for many projects, not unlike CVS and SVN servers in the past. It’s even worse now, because there was no single CVS or SVN server for the whole industry.

But retaliation will come. This happened before, this will happen again. You think GitHub is much stronger, than CodeSpaces? You can’t know. CodeSpaces had prospered for 7 years before the sudden instant demise. GitHub is only 8.

I accidentally all your data. Is that bad?

You, management people! Who owns your assets, you or GitHub? The code is distributed across developers and CI machines? OK, but what about issues, pull requests, tech docs, tutorials, etc? Aren’t those your assets, too?

You, the Free Software people, and you, the Open Source people! Your prophets warned you repeatedly, but you wouldn’t listen. How could you let GitHub become the single point of failure for many projects of yours?

Let me reiterate: any service found in the Internet is likely broken or will vanish soon. GitHub will disappear. It did disappear at least once for one country, causing significant trouble to the negligent. This is not going to be the only case.

Some day we will pay for our carelessness and laziness, and the sooner the day comes the better, as later damage may be tremendous12.

So, my point should be clear. Please, don’t use GitHub. And no, switching to Bitbucket won’t help.

Upd: one more stunning example is recent S3 outage. GitHub was affected, but this was much much worse than just GitHub. I’m seriously considering creating a website for gathering information about major breakdowns and mocking about it :)

  1. The case with Telize.com is a spectacular example when extreme violation of the presumption of defectiveness led to huge troubles. In short, the software of set-top boxes of some manufacturer relied on a free public service to get the user’s location. It even expected the service to be always available and always return valid responses! When the service had gone offline, thousands of customers were unable to watch TV. 

  2. @glorphindale pointed out another example: Facebook closing Parse. Those who thought someone else can handle their most valuable assets (servers, databases, etc) have been taught a good lesson.