Currently, the IT world is evolving at a tremendous pace. But if I had to find just one word that best describes how the industry looks like today, the best option would be the word “service.” Nowadays, most things are or are becoming services. From a simple image hosting to at least AWS, which is, after all, a service. This time I’ll focus on a specific, extremely popular one – GitHub. And, what is more, on its on-premise version, namely GitHub Enterprise.
This is a paid plan for advanced collaboration for individuals and organizations, which includes security, compliance, and flexible deployment features. In fact, with it, we can deploy and manage GitHub on our own, with extensions for advanced auditing, single sign-on, LDAP, or some environment protection rules. However, we are most interested in GitHub Enterprise Server, its capabilities, and how we can use it.
It is a self-hosted platform for software development. I have already mentioned some of its functionalities above. The most important from the perspective of our enterprise is, of course, the topic of security, and here we have a lot of opportunities to minimize risks. Enterprise Server runs on our own infrastructure with our firewalls, policies, access controls, monitoring, etc. It is up to the company to decide how secure its source code will be.
GitHub Enterprise Server Backup Utilities
There is also something called GitHub Enterprise Server Backup Utilities. It is a backup system installed on a separate host which works as a typical backup tool, by making regular snapshots of the original server which allows us to restore our Enterprise Server instance if needed. It uses a secure SSH network connection to do these snapshots. What is nice about this tool is that it will transfer only the differences between the last snapshot and the current version. As a result, it will minimize the impact on performance or memory usage. In GitHub Docs we can find step-by-step instructions on how to set up this tool, so there should be no problems with its basic configuration. Let me just mention a little more about the different versions of GitHub Enterprise and their support. Updates come out on average every few months, and the vendor declares support for the latest four versions of both GitHub Enterprise Server itself and for the Server Backup Utilities.
Eliminate data loss risk and ensure business continuity with the first TRUE Disaster Recovery software for GitHub.
Third-party backup tools
As always, however, there is an alternative. GitHub Backup Utilities are good, no doubt. However, we should at least consider some third-party backup tools. There are differences between them and maybe other services would fit better in our projects. In general third-party tools are something common in IT, and tools strictly related to backup are becoming more and more popular. Just look at the GitHub marketplace and the number and popularity of tools for creating and managing backups.
There are many differences between third-party backup tools. The first is, for example, the ability to integrate with various Git hosting services. Today we focus on GitHub, but GitProtect, for example, also works well for protecting the data on such platforms as GitLab and Bitbucket. Other differences may be the possibility to do multiple backup plans/policies or flexible configuration for daily scheduling. Here you can see the nice comparison between GitProtect and Rewind (formerly BackHub) tools.
ESBU vs. GitProtect
Let me focus now on the details regarding GitHub. Why could we even be interested in choosing a third-party tool when there is GitHub Enterprise? Let’s check out some functionality for ourselves:
|Feature||GitProtect||Enterprise Server Backup Utilities|
|GitHub packages||unlimited GitProtect Cloud, 10 GB for free||50GB for private|
free for public repos
|Multiple backup plans/policies||yes||single backup.config file|
|Flexible daily scheduler||yes||scheduled using cron(8) or similar command to schedule a service|
|Backup on demand||yes||depends on our storage type and configuration|
|Point-in-time restore||yes||not default|
|Storage types||multi storage support (any S3 compatibility cloud, local storage, NAS devices, GitProtect Cloud, etc.)||any S3 compatibility cloud|
|Monitoring and audit||advanced audit logs, Webhooks, Slack, or mail notifications||audit logs related to Enterprise Server itself|
|Management||user-friendly web GUI or REST API||manual|
|Compatibility||all GitHub packages||GitHub Enterprise packages|
|Price||depends on the number of repositories||$231 per user/year|
As you can see, there are some differences, which may be important during the decision-making. In my opinion, despite the technical diversities, it is GitProtect that has a big advantage when it comes to convenience and ease of use. The web user interface allows us to configure the appropriate plans, select storage, change schedules, or whatever we want to do or change with just a few clicks. It is a more convenient and versatile tool, requiring us to have less technical knowledge.
Let’s also note the basic difference between the two options. GitHub Backup Utilities is a part of GitHub Enterprise Server, the main purpose of which is quite different from taking care of backups and disaster recovery. Yes, we do have backup configuration options, but that is not the main reason for using Enterprise Server. On the other hand, there is GitProtect, which was created precisely to take care of the continuity of backups, data retention, and recovery plans. And in this field, it is simply better and offers more possibilities. Nothing prevents you from using both solutions. For now, all we need to do is to answer for ourselves which will be a better choice for us and which we will ultimately opt for.