GitHub is a platform that hosts public and private code and provides software development and collaboration tools. Features include version control, issue tracking, code review, team management, syntax highlighting, etc. Personal plans ($0-50), Organizational plans ($0-200), and Enterprise plans are available.
$40
per year per user
HashiCorp Terraform
Score 8.5 out of 10
N/A
Terraform from HashiCorp is a cloud infrastructure automation tool that enables users to create, change, and improve production infrastructure, and it allows infrastructure to be expressed as code. It codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned. It is available Open Source, and via Cloud and Self-Hosted editions.
$0
Pricing
GitHub
HashiCorp Terraform
Editions & Modules
Team
$40
per year per user
Enterprise
$210
per year per user
Open Source
$0
Team & Governance
$20/user
per user/per month
Enterprise
Contact sales team
Offerings
Pricing Offerings
GitHub
HashiCorp Terraform
Free Trial
Yes
No
Free/Freemium Version
Yes
Yes
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
—
—
More Pricing Information
Community Pulse
GitHub
HashiCorp Terraform
Features
GitHub
HashiCorp Terraform
Version Control Software Features
Comparison of Version Control Software Features features of Product A and Product B
GitHub
7.9
Ratings
4% below category average
HashiCorp Terraform
-
Ratings
Branching and Merging
9.70 Ratings
00 Ratings
Version History
8.00 Ratings
00 Ratings
Version Control Collaboration Tools
7.10 Ratings
00 Ratings
Pull Requests
9.60 Ratings
00 Ratings
Code Review Tools
7.70 Ratings
00 Ratings
Project Access Control
8.00 Ratings
00 Ratings
Automated Testing Integration
7.30 Ratings
00 Ratings
Issue Tracking Integration
4.10 Ratings
00 Ratings
Branch Protection
9.30 Ratings
00 Ratings
Configuration Management
Comparison of Configuration Management features of Product A and Product B
I’ve worked with Github my entire career and view it as an essential part. As a Product manager it allows me to keep track of my features, epics, issues and QA. It is easy to set up and integrate with tools such as intercom or notion.
8 because it's currently best-in-class and is completely essential to use in contrast to not expressing your infrastructure as code. That said, new contenders are nipping at its heels, and I expect stronger tools to emerge in the coming years. Hopefully the Terraform team is able to keep pace.
Version control: GitHub provides a powerful and flexible Git-based version control system that allows teams to track changes to their code over time, collaborate on code with others, and maintain a history of their work.
Code review: GitHub's pull request system enables teams to review code changes, discuss suggestions and merge changes in a central location. This makes it easier to catch bugs and ensure that code quality remains high.
Collaboration: GitHub provides a variety of collaboration tools to help teams work together effectively, including issue tracking, project management, and wikis.
Not an easy tool for beginners. Prior command-line experience is expected to get started with GitHub efficiently.
Unlike other source control platforms GitHub is a little confusing. With no proper GUI tool its hard to understand the source code version/history.
Working with larger files can be tricky. For file sizes above 100MB, GitHub expects the developer to use different commands (lfs).
While using the web version of GitHub, it has some restrictions on the number of files that can be uploaded at once. Recommended action is to use the command-line utility to add and push files into the repository.
The errors generated by the plan and preview commands are pretty cryptic, it can be hard for newcomers to the scripting language to understand how to address problems.
Access controls around workspaces is limited which makes it harder to secure reduce the scope of teams ability.
Analytics around user usage, applies and plans would be helpful for managemenet.
GitHub's ease of use and continued investment into the Developer Experience have made it the de facto tool for our engineers to manage software changes. With new features that continue to come out, we have been able to consolidate several other SaaS solutions and reduce the number of tools required for each engineer to perform their job responsibilities.
GitHub is a clean and modern interface. The underlying integrations make it smooth to couple tasks, projects, pull requests and other business functions together. The insights and reporting is really strong and is getting better with every release. GitHub's PR tooling is strong for being web based, i do believe a better code editor would rival having to pull merge conflicts into local IDE.
I love Terraform and I think it has done some great things for people that are working to automate their provisioning processes and also for those that are in the process of moving to the cloud or managing cloud resources. There are some quirks to HCL that take a little bit of getting used to and give picking up Terraform a little bit of a learning curve, thus the rating
Terraform's performance is quite amazing when it comes to deployment of resources in AWS. Of course, the deployment times depend on various parameters like the number of resources to deploy and different regions to deploy. Terraform cannot control that. The only minor drawback probably shows up when a terraform job is terminated mid way. Then in many cases, time-consuming manual cleanup is required.
It's a testament to how easy it is to use GitHub and how many others use it that you can pretty much find the answer to any problem you have by searching online. Consequently, I've never needed to use their support. It's an incredibly easy tool to set up initially, so it won't require much onboarding expertise to get started.
Terraform is community driven but does offer support for it's Enterprise product. When contacting the team at HashiCorp we have always gotten resolution to our issues. They have been very responsive in returning our calls and answering our questions as they come up. We are currently using the open source model.
GitHub comes handy in terms of usage and capabilities, it is easy to use and quite a user friendly tools when it comes to user experience, with limited UI/UX and it has vast exposure when it comes to third party integration and being quite mature and yet evolving and popular tool many other platform provide easy integration with the platform and make first choice for many tools architects.
dbt was fine, but you end up with an extremely bloated repo/project. Often where all of the models are the same, named similarly, and generally just doesn't adhere to the concept of DRY coding. In Terraform we're able to template a lot of this work and dynamically generate assets based on variables instead.
GitHub has made branching much easier for our dev team. Easy branching makes it easier for us to gain all the benefits of source control while giving us the flexibility to decide what features/branches we want to go in any particular release.
Integration with third-party tools like Azure DevOps has allowed us to streamline workflows and gain the benefits of automated testing whenever a commit is made.
GitHub has also raised visibility with its integration with our Sprint boards. We can easily jump to a commit from a work item.
Using code, we are able to build and deploy cloud resources faster and more consistently than producing the same resources in the console manually.
For applications that share architectures, we can reuse code to expedite development. We can also do the same with modules that are shared across the organization.
By defining all of our resources as code, we can deploy complete environments with "batteries included." For example, we can use code that spins up servers in a cloud provider and at the same time, creates monitors with in our monitoring provider. Likewise, when the servers are decommissioned, the monitors are decommed along with them. In the past, the creation and decom of the monitors would have been a disjointed, manual step. With Terraform we get it all with one "terraform apply."