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 network connectivity, capabilities, and how we can use it.
GitHub Enterprise Server
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 better 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. The company takes decision on how to backup its enterprise server, how many rotation schemes and which ones to use, which specific repositories and metadata protect.
GitHub Enterprise Server Backup Utilities
There is also something called GitHub Enterprise Server Backup Utilities. It is a data backup system installed on a separate host which works as a typical backup solution, by making initial backup and regular snapshots of the original server which allows us to restore our GitHub Enterprise instance if needed. It uses a secure SSH network connection to do these backup snapshots. This backup solution doesn’t require incremental snapshots. It will make only differential backups, which is good. So to say, transfer only changes 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 backup solution, 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 data backup tools and backup providers for GitHub Enterprise backup and recovery to build reliable enterprise backup strategy. There are differences between them and maybe other services would fit better in our projects. In general third-party data backup software is something common in IT, and such solutions strictly related to data backup and recovery are becoming more and more popular. As nobody wants to experience data loss or other restore data consequences, yet wants to have exellent data availability. Just look at the GitHub marketplace and the number and popularity of data backup solutions for creating and managing secure backups to protect data.
There are many differences between third-party backup software or 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 create multiple data backup plans/policies or flexible configuration for daily scheduling backups for simplifying the possibility to recover data and have critical data Disaster Recovery tool turned on. What is more third-party backup software has a possibility to backup data from your environment, your entire system, to multiple locations, which will enhance your data protection and make recovery operations easier. Here you can see the nice comparison between GitProtect and Rewind (formerly BackHub) backup software for continuous data protection.
ESBU vs. GitProtect
Let me focus now on the details regarding GitHub. Why could we even be interested in choosing a third-party backup software when there is the Enterprise backup solution? 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 proces over backup and recovery solutions. In my opinion, despite the technical diversities, it is GitProtect.io 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, schedule regular backups, change schedules, create backup window, set up automated backups, create differential or incremental backups, or whatever we want to do or change with just a few clicks. It is a more convenient and versatile backup solution, requiring us to have less technical knowledge. Moreover, it provides different models for recovery solution, like point-in-time restore, cross-over recovery, and granular restore of only data you need to ensure data availability and all your data protection.
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 system. Yes, we do have data backup configuration options, but that is not the main reason for using Enterprise Server.
On the other hand, there is GitProtect.io, which was created precisely (with its user-friendly interface) to protect workloads and business value, prevent data loss, and take care of the continuity of backups, data long-term 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 recovery assurance.
You may find this topic interesting: git clone with SSH key. For many security experts, SSH is a golden standard, hence it’s worth to implement it into your git operations. Using SSH keys you can limit the risk of data interception by unauthorized persons. Another benefit is…