Before we jump into the actual topic of interest here, you need to first understand what a version control system is and why do you need it. A version control system is a developer’s go-to tool for tracking and managing the history of project files over time, and which help them work and collaborate better with other developers. Fortunately, there are a plethora of tools out there that allow organizations to host private Git repositories to source their code. GitHub is probably one of the most popular and widely used version control and collaboration tools out there that makes it easy for developers to collaborate on projects, irrespective of their physical location. Then there’s AWS CodeCommit – an equally popular version control system provided by Amazon under its umbrella term of Amazon Web Services. Let’s take a look at how the two Git repository services stack up against each other.
What is GitHub?
GitHub is a web-based code hosting platform for version control and collaboration that allows developers to work together and collaborate together on projects. When multiple people are contributors of a project, tracking changes becomes too difficult and it increases the chances of overwriting each other’s changes. It was created in 2008 to host Git projects, but is now a subsidiary of Microsoft. GitHub is a teamwork tool that allows you to deal with remote repositories; it is code hosting server for Git projects. Think of GitHub as your own Git server but without the extra bells and whistles. GitHub is a like a social media for developers that brings together a community of millions of developers from around the world, and creates a space for them to build, share and document their projects. It not only serves the open source community but also the professional teams who want to create their private repositories without worrying about using their own server.
What is AWS CodeCommit?
AWS CodeCommit is a fully-managed, highly scalable source control system that allows companies to host secure Git-based repositories. It’s among the set of powerful services provided by AWS to simplify delivery of applications and services efficiently. It is basically a version control system managed by Amazon Web Services to privately store and manage assets in the Cloud, and integrate with AWS. It is a secure version control system that supports the standard functionality of Git, meaning it efficiently manages the changes that you make in your project from start till the end. These changes are called ‘versions’, hence the name version control system. The fact that it s fully managed, it scales automatically based on the varying needs of the project, meaning you do not have to worry about hosting, maintaining, and scaling your own source control servers. It stores data in Amazon S3 and Amazon DynamoDB – a fully managed document database by Amazon under the AWS portfolio.
Difference between GitHub and AWS CodeCommit
Tool
– AWS CodeCommit is a highly scalable version control system fully managed by Amazon under the portfolio of Amazon Web Services to privately store and manage assets in the cloud and integrate with AWS. Like GitHub, it is a source control service that allows organizations to host secure Git-based repositories. However, what makes GitHub really special is the development workflow it offers. GitHub is not only a code hosting platform but also a developers’ tool for managing projects. It allows you to host and review code, manage projects and build software alongside a diverse community of over 36 million developers.
Security
– While GitHub is great for publishing free open source libraries and it provides seamless integration with many third party tools, it is not as future-proof as AWS CodeCommit, which, on the other hand, is fully integrated with AWS Identity and Access Management (IAM), making it highly secure. It uses IAM for user-level or specific API-level security and the repositories are encrypted while they are in AWS CodeCommit or when they are being cloned somewhere. So, AWS CodeCommit is clearly the winner on the security grounds.
Storage Limit
– GitHub places a strict limit on the size of files allowed in repositories exceeding 100 MB, meaning it only allows you to store files up to 100 MB in size and blocks push to a repository if you exceed the maximum file storage limit. AWS CodeCommit, on the other hand, does not have any limit on file size and file type, which means there are no size limits for the repository and you can store as many files you want of any type you want.
Pricing
– GitHub is free for teams, offering them access to unlimited private repos with unlimited collaborators free of cost. The paid plans start at $4 per user per month for GitHub Team and go up to $21 per user per month for the Enterprise plan. With AWS CodeCommit, you get five active users per month for free, after which you have to pay an additional $1 for each user per month. For every active user, you get 10 GB of storage and 2,000 Git requests every month.
GitHub vs. AWS CodeCommit: Comparison Chart
Summary
While GitHub would be a great choice for publishing free open source libraries and provides seamless integration with several third party applications, however, it is not as secure as AWS CodeCommit, which, on the other hand, is fully integrated with AWS Identity and Access Management and uses IAM for user-level or specific API-level security, making it highly secure. Unlike GitHub, you do not have any size limit for the repository with AWS CodeCommit, which in fact, allows you to store any type of files and of any size. So, each repository service has its own set of pros and cons, so, at the end of the day, it all comes down to your needs and which one serves your needs best.