Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

GitLab
GitLab

10.4K
8.2K
+ 1
2.1K
Terraform
Terraform

2.2K
1.5K
+ 1
253
Add tool

GitLab vs Terraform: What are the differences?

Developers describe GitLab as "Open source self-hosted Git management software". GitLab offers git repository management, code reviews, issue tracking, activity feeds and wikis. Enterprises install GitLab on-premise and connect it with LDAP and Active Directory servers for secure authentication and authorization. A single GitLab server can handle more than 25,000 users but it is also possible to create a high availability setup with multiple active servers. On the other hand, Terraform is detailed as "Describe your complete infrastructure as code and build resources across providers". With Terraform, you describe your complete infrastructure as code, even as it spans multiple service providers. Your servers may come from AWS, your DNS may come from CloudFlare, and your database may come from Heroku. Terraform will build all these resources across all these providers in parallel.

GitLab can be classified as a tool in the "Code Collaboration & Version Control" category, while Terraform is grouped under "Infrastructure Build Tools".

Some of the features offered by GitLab are:

  • Manage git repositories with fine grained access controls that keep your code secure
  • Perform code reviews and enhance collaboration with merge requests
  • Each project can also have an issue tracker and a wiki

On the other hand, Terraform provides the following key features:

  • Infrastructure as Code: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used.
  • Execution Plans: Terraform has a "planning" step where it generates an execution plan. The execution plan shows what Terraform will do when you call apply. This lets you avoid any surprises when Terraform manipulates infrastructure.
  • Resource Graph: Terraform builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, Terraform builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure.

"Self hosted" is the primary reason why developers consider GitLab over the competitors, whereas "Infrastructure as code" was stated as the key factor in picking Terraform.

GitLab and Terraform are both open source tools. GitLab with 20.1K GitHub stars and 5.33K forks on GitHub appears to be more popular than Terraform with 17.7K GitHub stars and 4.83K GitHub forks.

According to the StackShare community, GitLab has a broader approval, being mentioned in 1233 company stacks & 1475 developers stacks; compared to Terraform, which is listed in 509 company stacks and 312 developer stacks.

What is GitLab?

GitLab offers git repository management, code reviews, issue tracking, activity feeds and wikis. Enterprises install GitLab on-premise and connect it with LDAP and Active Directory servers for secure authentication and authorization. A single GitLab server can handle more than 25,000 users but it is also possible to create a high availability setup with multiple active servers.

What is Terraform?

With Terraform, you describe your complete infrastructure as code, even as it spans multiple service providers. Your servers may come from AWS, your DNS may come from CloudFlare, and your database may come from Heroku. Terraform will build all these resources across all these providers in parallel.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose GitLab?
Why do developers choose Terraform?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con
    Jobs that mention GitLab and Terraform as a desired skillset
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    What companies use GitLab?
    What companies use Terraform?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with GitLab?
    What tools integrate with Terraform?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to GitLab and Terraform?
    GitHub
    GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers. Over three million people use GitHub to build amazing things together.
    Bitbucket
    Bitbucket gives teams one place to plan projects, collaborate on code, test and deploy, all with free private Git repositories. Teams choose Bitbucket because it has a superior Jira integration, built-in CI/CD, & is free for up to 5 users.
    Jenkins
    In a nutshell Jenkins CI is the leading open-source continuous integration server. Built with Java, it provides over 300 plugins to support building and testing virtually any project.
    Gogs
    The goal of this project is to make the easiest, fastest and most painless way to set up a self-hosted Git service. With Go, this can be done in independent binary distribution across ALL platforms that Go supports, including Linux, Mac OS X, and Windows.
    Git
    Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
    See all alternatives
    Decisions about GitLab and Terraform
    Tim Abbott
    Tim Abbott
    Founder at Zulip · | 13 upvotes · 120K views
    atZulipZulip
    GitLab
    GitLab
    GitHub
    GitHub

    I have mixed feelings on GitHub as a product and our use of it for the Zulip open source project. On the one hand, I do feel that being on GitHub helps people discover Zulip, because we have enough stars (etc.) that we rank highly among projects on the platform. and there is a definite benefit for lowering barriers to contribution (which is important to us) that GitHub has such a dominant position in terms of what everyone has accounts with.

    But even ignoring how one might feel about their new corporate owner (MicroSoft), in a lot of ways GitHub is a bad product for open source projects. Years after the "Dear GitHub" letter, there are still basic gaps in its issue tracker:

    • You can't give someone permission to label/categorize issues without full write access to a project (including ability to merge things to master, post releases, etc.).
    • You can't let anyone with a GitHub account self-assign issues to themselves.
    • Many more similar issues.

    It's embarrassing, because I've talked to GitHub product managers at various open source events about these things for 3 years, and they always agree the thing is important, but then nothing ever improves in the Issues product. Maybe the new management at MicroSoft will fix their product management situation, but if not, I imagine we'll eventually do the migration to GitLab.

    We have a custom bot project, http://github.com/zulip/zulipbot, to deal with some of these issues where possible, and every other large project we talk to does the same thing, more or less.

    See more
    John Kodumal
    John Kodumal
    CTO at LaunchDarkly · | 3 upvotes · 27.7K views
    atLaunchDarklyLaunchDarkly
    Armory
    Armory
    Packer
    Packer
    Terraform
    Terraform
    Spinnaker
    Spinnaker
    Ansible
    Ansible

    LaunchDarkly is almost a five year old company, and our methodology for deploying was state of the art... for 2014. We recently undertook a project to modernize the way we #deploy our software, moving from Ansible-based deploy scripts that executed on our local machines, to using Spinnaker (along with Terraform and Packer) as the basis of our deployment system. We've been using Armory's enterprise Spinnaker offering to make this project a reality.

    See more
    GitHub
    GitHub
    GitLab
    GitLab
    Bitbucket
    Bitbucket

    Bitbucket provides 5 private repositories for free that is I believe the best feature. GitLab seems very simmilar to GitHub. The only reason I've choosen GitHub is its popularity. It seems faster than GitLab, uglier than Bitbucket and featured as others. The best open source projects are hosted on GitHub. Many applications are integrated with GitHub like my favourite #GitKraken.

    See more
    Jaime Leonardo Suncin Cruz
    Jaime Leonardo Suncin Cruz
    GitLab
    GitLab
    GitHub
    GitHub

    Keep with GitHub if you feel comfortable, If you want to switch to other keep in mind the change of mindset and you will need time to adapt, i'm not saying that GitLab is bad or difficult just the opposite, but it can be overwhelming because it have more integrated features (I love this) than GitHub , what it means more configs available that you can mess up.

    See more
    Jona Koudijs
    Jona Koudijs
    Infrastructure Engineer at True · | 5 upvotes · 3.6K views
    GitLab
    GitLab

    I use GitLab because of the tight integration with Gitlab CI. I noticed that having the entire build chain integrated into one platform, makes it easier for developers and infrastructure engineers to work with automated testing and deploying even though not everybody has the same amount of experience with it.

    See more
    Logan Campos
    Logan Campos
    Computer Programmer at cryptosec.dev · | 10 upvotes · 44.2K views
    GitHub
    GitHub
    GitLab
    GitLab

    As an former administrator for GitLab enterprise I can say for closed source development it is an amazing tool to have. It does however have limits. For starters you will need to bother your unix administrators to assign a license to you. And after that happens the same guys start getting cranky if you use git LFS(Large File Storage) or manage a couple repos about ~100MBish. if you fork open source efforts remember to git clone --depth 1 ! As a free user of GitHub , I don't get crazy CI pipelines or crazy project management tools. I also don't need it !

    See more
    Joseph Kunzler
    Joseph Kunzler
    DevOps Engineer at Tillable · | 9 upvotes · 23.7K views
    atTillableTillable
    AWS CloudFormation
    AWS CloudFormation
    AWS Elastic Load Balancing (ELB)
    AWS Elastic Load Balancing (ELB)
    Amazon EC2
    Amazon EC2
    Amazon S3
    Amazon S3
    Terraform
    Terraform

    We use Terraform because we needed a way to automate the process of building and deploying feature branches. We wanted to hide the complexity such that when a dev creates a PR, it triggers a build and deployment without the dev having to worry about any of the 'plumbing' going on behind the scenes. Terraform allows us to automate the process of provisioning DNS records, Amazon S3 buckets, Amazon EC2 instances and AWS Elastic Load Balancing (ELB)'s. It also makes it easy to tear it all down when finished. We also like that it supports multiple clouds, which is why we chose to use it over AWS CloudFormation.

    See more
    Russtopia Labs
    Russtopia Labs
    Sr. Doodad Imagineer at Russtopia Labs · | 3 upvotes · 22.7K views
    GitLab
    GitLab
    Go
    Go
    GitHub
    GitHub
    Gogs
    Gogs

    I installed Gogs after a few repos I planned to use on GitHub disappeared without explanation, and after Microsoft's acquisition of same, it made me think about the over-centralization of community-developed software. A self-hosted solution that enables easy point-and-click mirroring of important repositories for my projects, both in-house and 3rd-party, ensures I won't be bitten by upstream catastrophes. (So far, Microsoft's stewardship has been fine, but always be prepared). It's also a very nice way to host one's own private repos before they're ready for prime-time on github.

    Gogs is written in Go and is easy to install and configure, much more so than GitLab. The only major feature I wish it had is an integrated code review tool.

    See more
    Daniel Quinn
    Daniel Quinn
    Senior Developer at Founders4Schools · | 6 upvotes · 7.3K views
    atThe Paperless ProjectThe Paperless Project
    GitLab
    GitLab
    GitHub
    GitHub

    We use GitHub because it's the default go-to place for the Free software community. Currently, Github is enjoying the network effect: you write code there because everyone writes there code there, so this choice was less of a choice than "what we all end up doing".

    Personally, I prefer GitLab for its bundled-in tools like CI, boards, packaging, and Docker repo, but so long as the vast majority of talented nerds out there are on Github, that's where Paperless will be.

    See more
    AWS CloudFormation
    AWS CloudFormation
    Google Cloud Deployment Manager
    Google Cloud Deployment Manager
    Terraform
    Terraform

    I use Terraform because it hits the level of abstraction pocket of being high-level and flexible, and is agnostic to cloud platforms. Creating complex infrastructure components for a solution with a UI console is tedious to repeat. Using low-level APIs are usually specific to cloud platforms, and you still have to build your own tooling for deploying, state management, and destroying infrastructure.

    However, Terraform is usually slower to implement new services compared to cloud-specific APIs. It's worth the trade-off though, especially if you're multi-cloud. I heard someone say, "We want to preference a cloud, not lock in to one." Terraform builds on that claim.

    Terraform Google Cloud Deployment Manager AWS CloudFormation

    See more
    GitLab
    GitLab
    Bitbucket
    Bitbucket
    GitHub
    GitHub

    I use GitHub because it's the coolest kid on the block for open source. Searching for repos you need/want is easy.

    Especially with the apache foundation moving their workloads to them, unlimited private repos, and a package registry on the way, they are becoming the one stop shop for open source needs.

    I'm curious to see how the GitHub Sponsors(patreon for developers) plays out, and what it'll do for open source. Hopefully, they design it in a way where it's not abused by big tech to "plant" developers that look like they're building open source when they're actually building proprietary tools.

    Bitbucket GitLab

    See more
    Tom Klein
    Tom Klein
    CEO at Gentlent · | 9 upvotes · 24.4K views
    atGentlentGentlent
    Visual Studio Code
    Visual Studio Code
    npm
    npm
    Varnish
    Varnish
    HAProxy
    HAProxy
    Kubernetes
    Kubernetes
    Docker
    Docker
    GitLab
    GitLab
    GitHub
    GitHub
    Git
    Git

    We're using Git through GitHub for public repositories and GitLab for our private repositories due to its easy to use features. Docker and Kubernetes are a must have for our highly scalable infrastructure complimented by HAProxy with Varnish in front of it. We are using a lot of npm and Visual Studio Code in our development sessions.

    See more
    Bitbucket
    Bitbucket
    GitLab
    GitLab
    GitHub
    GitHub
    #Githubmarketplace

    A bit difference in GitHub and GitLab though both are Version Control repository management services which provides key component in the software development workflow. A decision of choosing GitHub over GitLab is major leap extension from code management, to deployment and monitoring alongside looking beyond the code base hosting provided best fitted tools for developer communities.

    • Authentication stages - With GitLab you can set and modify people’s permissions according to their role. In GitHub, you can decide if someone gets a read or write access to a repository.
    • Built-In Continuous Integrations - GitLab offers its very own CI for free. No need to use an external CI service. And if you are already used to an external CI, you can obviously integrate with Jenkins, etc whereas GitHub offers various 3rd party integrations – such as Travis CI, CircleCI or Codeship – for running and testing your code. However, there’s no built-in CI solution at the moment.
    • Import/Export Resources - GitLab offers detailed documentation on how to import your data from other vendors – such as GitHub, Bitbucket to GitLab. GitHub, on the other hand, does not offer such detailed documentation for the most common git repositories. However, GitHub offers to use GitHub Importer if you have your source code in Subversion, Mercurial, TFS and others.

    Also when it comes to exporting data, GitLab seems to do a pretty solid job, offering you the ability to export your projects including the following data:

    • Wiki and project repositories
    • Project uploads
    • The configuration including webhooks and services
    • Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, and other project entities.

    GitHub, on the other hand, seems to be more restrictive when it comes to export features of existing GitHub repositories. * Integrations - #githubmarketplace gives you an essence to have multiple and competitive integrations whereas you will find less in the GitLab.

    So go ahead with better understanding.

    See more
    Pedro Arnal Puente
    Pedro Arnal Puente
    CTO at La Cupula Music SL · | 7 upvotes · 29.4K views
    atLa Cupula Music SLLa Cupula Music SL
    Ansible
    Ansible
    Packer
    Packer
    Terraform
    Terraform
    Amazon ElastiCache
    Amazon ElastiCache
    Redis
    Redis
    Amazon RDS for Aurora
    Amazon RDS for Aurora
    Amazon S3
    Amazon S3
    Amazon EC2
    Amazon EC2
    Debian
    Debian

    Our base infrastructure is composed of Debian based servers running in Amazon EC2 , asset storage with Amazon S3 , and Amazon RDS for Aurora and Redis under Amazon ElastiCache for data storage.

    We are starting to work in automated provisioning and management with Terraform , Packer , and Ansible .

    See more
    Tassanai Singprom
    Tassanai Singprom
    Slack
    Slack
    BrowserStack
    BrowserStack
    Sentry
    Sentry
    Kibana
    Kibana
    Visual Studio Code
    Visual Studio Code
    npm
    npm
    GitLab
    GitLab
    GitHub
    GitHub
    Git
    Git
    Elasticsearch
    Elasticsearch
    Postman
    Postman
    Google Analytics
    Google Analytics
    MariaDB
    MariaDB
    GraphQL
    GraphQL
    Amazon RDS
    Amazon RDS
    Lumen
    Lumen
    Laravel
    Laravel
    Firebase
    Firebase
    Vue.js
    Vue.js
    Sass
    Sass
    Ubuntu
    Ubuntu
    Amazon EC2
    Amazon EC2
    Redis
    Redis
    jQuery
    jQuery
    HTML5
    HTML5
    PHP
    PHP
    JavaScript
    JavaScript

    This is my stack in Application & Data

    JavaScript PHP HTML5 jQuery Redis Amazon EC2 Ubuntu Sass Vue.js Firebase Laravel Lumen Amazon RDS GraphQL MariaDB

    My Utilities Tools

    Google Analytics Postman Elasticsearch

    My Devops Tools

    Git GitHub GitLab npm Visual Studio Code Kibana Sentry BrowserStack

    My Business Tools

    Slack

    See more
    Interest over time
    Reviews of GitLab and Terraform
    Avatar of veggiemonk
    JavaScript Developer
    Review ofGitLabGitLab

    You cannot get easier setup and deployment with GitLab. The documentation is huge and many common use cases are covered. It has a Community Edition (CE, free, 100% open source) and an Enterprise Edittion (EE, see pricing). The CE is more than good enough. Although in the entreprise world, the EE is much better suited if, for instance, LDAP is needed. There is a Web UI that allows people to version their work without too much hassle. If you are a developer and have worked with git before this is really easy.

    How developers use GitLab and Terraform
    Avatar of Eldoria
    Eldoria uses GitLabGitLab

    Als einer der größten Konkurrenten zu GitHub und BitBucket, stellt GitLab eine verlässliche Alternative dar. Als private GitLab Instanz oder als Service bietet GitLab alle Features die wir benötigen und das völlig Kostenfrei in der Community Edition. Hier liegen alle unsere Repositories.

    Avatar of Scrayos UG (haftungsbeschränkt)
    Scrayos UG (haftungsbeschränkt) uses GitLabGitLab

    Gitlab offers us a self-hosted replacement for Github and even more than we were expecting from it. All of our code is hosted in our private GitLab-instance, that also hosts our artifacts and is used to deploy them into production.

    Avatar of HyVive
    HyVive uses GitLabGitLab

    Our self hosted gitlab service provides us with a private and secure environment for developing and testing our internal software. All of our dockerfiles, source code and configuration files for our infrastructure are stored here.

    Avatar of Refractal
    Refractal uses GitLabGitLab

    GitLab is our main Git server, housed on a separate box inside our VPN, it's diverse features and sandbox-support allows it to be an extremely good way to secure your source code.

    Avatar of Royal Icing
    Royal Icing uses TerraformTerraform

    Terraform makes it so easy to deploy AWS and Google Cloud services, with the declarative approach avoiding so many headaches of manual work and possible mistakes.

    Avatar of yaswanthgoud3235
    yaswanthgoud3235 uses GitLabGitLab

    GitLab is a web-based Git repository manager with wiki and issue tracking features, using an open source license, developed by GitLab Inc. The software

    Avatar of Bùi Thanh
    Bùi Thanh uses TerraformTerraform
    • Infrastructure as Code.
    • Central tool to deploy all infratructure: AWS, CloudFlare, StatusCake
    Avatar of Prime Technologies
    Prime Technologies uses TerraformTerraform

    The entire AWS environments is described and setup using Terraform.

    Avatar of Binded
    Binded uses TerraformTerraform

    All of our infrastructure is stored as code thanks to Terraform.

    Avatar of Razorpay
    Razorpay uses TerraformTerraform

    We orchestrate our AWS infrastructure using Terraform.

    How much does GitLab cost?
    How much does Terraform cost?
    Pricing unavailable