We are using GitLab primarily to implement a DevSecOps dataops-like solution, so it is a main orchestration plus code repository that links all other tools to help create data products that are published in a shoppable marketplace.We have linked DBT, Monte Carlo, Talend, Snowflake, Collibra, collibra all with GitLab to allow us to create data products.
Pros
Yml files handling
GitLab CI pipeline orchestration
Integration with other tools like talend , snowflake , dbt, Monte carlo
Code review
Cons
GitLab ci debugging is difficult in case of failures
When pipeline grows using extends , references , includes make yml files very hard to read
GitLab is not yet smooth to use for project management with the issues in GitLab.
Likelihood to Recommend
We have developed a dataops solution making GitLab central to host all the code and connections between different tools while making use of GitLab-CI.yml to orchestrate the flow. While all these are nice for implementation, we have found an issue while managing the entire project via GitLab, as there is still a disconnect between project issues and project management in GitLab, so we have to use Jira for that.
VU
Verified User
Engineer in Engineering (Pharmaceuticals company, 10,001+ employees)
Our organization utilizes GitLab Enterprise to host all source code across frontend, backend, and infrastructure teams and to achieve continuous deployment and continuous integration processes in a fast-paced E-Commerce environment. Development teams use the code review feature to ensure quality and standards across teams and individual contributors. Integrations with a variety of tools allow for cybersecurity use cases such as automatically scanning security issues in the source code while it is still being developed.
Pros
CI/CD Pipelines with GitlabCI
Flexible configuration of rules on a per-repository base
Easy integration of self hosted runners for GitlabCI
Offers a variety of shared (hosted) runners you can use with 'minutes' included in the plan
Cons
The default diff interface on Merge Requests might be confusing to developers. The displayed diff follows git merge-base-diff mode.
Pricing might be too high depending on what features of the Enterprise plan are of value to the organisation.
Support for self-hosted runners on MacOS and images for shared runners is not on the same level as Linux
Likelihood to Recommend
GitLab with the Enterprise plan is well-suited for large organizations that can benefit from the vast range of included features and have the resources to support custom CI/CD pipelines and policies with their own infrastructure and dedicated DevOps resources. They also might value the ability to self-host it.
Companies of small to mid size that mainly develop mobile applications are probably better (and cheaper off) with a different platform for source code hosting and a dedicated Mobile CI/CD platform like Bitrise.io. The complexity may be overwhelming for smaller teams or individuals with limited experience in version control systems, leading to potential inefficiencies and difficulties in adoption.
VU
Verified User
Engineer in Information Technology (Pharmaceuticals company, 1001-5000 employees)
Gitlab is a platform used for collaborative work on multiple files. We use this product to address the same. It can also be integrated with existing infrastructure to provide seamless service and integration. The scope is limited to multi user collaborations so that individual workers can work independently and have version control.
Pros
version control
multi user collaboration
ease of use and integration
Cons
tokenisation
reduced downtime
frequent bugs
Likelihood to Recommend
It is most appropriate in use case where multi user collaborative work is required. If there is use case to integrate with tools and scripts then it can be easily done. Due to bugs in tokenisation, it sometimes lead to bugs and breaks during a typical workflow. Setup can be made easier as well.
VU
Verified User
Engineer in Engineering (Semiconductors company, 10,001+ employees)
For our project code repo. We are using in our organisation. Easy to manage and easy track code and also easy to merge the PR and see the response of build failed , test cases failed em, code quality is passed in the code or not . Because of GitLab we can simply see all things in one place . That's so great .
Pros
Create repository
CI/CD pipeline
Issue tracking
Automation
UI
Likelihood to Recommend
I dont think any area where GitLab is not appropriate . in my understanding GitLab provide so many things to developers to play around . Everybody should have use the GitLab for their company project or freelancer project or personal project . Because of GitLab they can easily manage thier project and track the work done by the developers.
VU
Verified User
Engineer in Information Technology (Chemicals company, 10,001+ employees)
GitLab allows us to manage our source code into different groups. It improves code readability and efficiency, for example, with the Web IDE, which is a good feature. We are also using Gitlab CI, which is very efficient and well-integrated. We centralize users into Gitlab, and we used SAML to get them into other apps that we used within our stack (for example, Sonarqube).
Pros
Source code management.
Continuous integration.
Merge requests flow.
Users management.
Cons
CI variables management is sometimes hard to use, for example, with File type variables. The scope of each variable is also hard to guess.
Access Token: there are too many types (Personal, Project, global..), and it is hard to identify the scope and where it comes from once created.
Runners: auto-scaled runners are for the moment hard to put in place, and monitoring is not easy.
Likelihood to Recommend
Once you have some code source to manage, Gitlab is a good choice. You don’t need to use all features to have a good experience with Gitlab. For example, if you are using another tool for CI and another tool for tickets, you can easily integrate them into Gitlab. But of course, using Gitlab CI and the integrated issues tool improve the user experience and enable the full flow that is available.
VU
Verified User
Engineer in Engineering (Automotive company, 51-200 employees)
I have used it for managing different repositories of our project. Multiple developers manage their branches here and it is also helpful for Jenkin integration. We can manage roles also so that we can give correct access to the right person.
Pros
Manage repository
Manage branches
Manage role and access
Help in deployment
Cons
It can provide its own deployment server.
Docker and Jenkin window can be integrated inside.
Authorization can be handled properly.
Likelihood to Recommend
Gitlab helps in managing code base and it is easy to use and handle. There is a minor bug in creating merge requests but it can be acceptable.
We use GitLab to create a centralized build version control. GitLab allows you to have multiple builds (which we need as we integrate with a variety of customers on a single project that cannot always interconnect or need to remain separate). Along with this, we use Jenkins to test the GitLab builds that we merge into which optimizes how GitLab functions. We use this to manage a build amongst our team of 50+ persons and share this with an organization far larger than we are.
Pros
Safeguards implemented are customizable and allow our organization to set our level of verification before merging.
One of the smoothest and most well-organized version control software products on the market.
Super widespread use so our use of GitLab is understandable and usable by the customer with little "translation" as to what we are doing and what they are doing.
Cons
Sometimes the customizable blocks/verification/etc can become cumbersome and hard to remove.
Use within the command line of GitLab with VPNs is not always easily used.
Creating a better-centralized hub to see all changes and track things back for multiple builds that might be being used.
Likelihood to Recommend
Projects on a scale from 2-50+ people are most well served by this, after a project becomes really big, tracing changes in a build/project become a bit unmanageable. I beieve tracing would be difficult even with GitLabs versioning. A well-designed and easily navigable UI helps everyone understand what's going on, even if they are not super familiar with coding or changes to the code. Wide use amongst other companies allows for easy crossover work.
GitLab covers a variety of use cases for me, both in my professional life and hobbies. Version control systems CICD Deployment Issue & Feature tracking GitLab is an excellent VCS, which can scale from hobby level to enterprise, based on the ability to self-host. It also offers unlimited private repos, which is amazing for small businesses. For the CICD, GitLab has some competition. It isn't as "plug and play" as other CICD integrations like GitHub actions but has more customization, which can be great for more technically adept users. The issues and feature tracking aren't as good as GitHub, but there are options to make it better if you pay, which is a fine solution.
Pros
Private Git Repos.
Integrations.
Cons
Deployments.
Social FOSS.
Likelihood to Recommend
Overall, GitLab is a focused system with amazing defaults. I would prefer hosting almost any application on it instead of GitHub. It excels in allowing a user to customize the particular git-flow that your application wants to take, the security you want to configure, and treats CICD like a first-class citizen. However, if you plan on using GitLab for FOSS projects or have a complicated deployment process but no in-house DevOps, it will not meet the standards you are looking for.
Gitlab is a very powerful tool that can help you to remove a lot of dependencies of other tools. It can be used as a repository, writing pipelines, integrating with Kubernetes etc. GitLab is used for continuous Integration and Continuous Delivery for any development project. When a developer pushes his code to his feature branch you can use GitLab to create a dedicated URL and test on the spot how your changes look like. For example, Facebook developer got a requirement to add an ink called family in fb home page he will write the code and when he pushes his code to GitLab feature branch he will get a dedicated URL and he can instantly check whether his new family link is working or not in fb home page and it will reduce a lot of deployment issues time in production. You can integrate it with kubernetes and with a single click you can deploy the changes in production. In terms of security, it is very secure it provides all features like env variables, masking of sensitive data. You can give specific access to a user to a particular project.
Pros
Complete DevOps platform with seamless connections to downstream sections like CI/CD, Ops, Secure, and Protect
GitLab has project management, issue tracking, and free private repository hosting to make it easier to plan and manage your projects
GitLab offers a features-based system with a centralized, integrated platform for web developers
Built-in continuous integration and continuous delivery features make it seamless to go from a code change to a running pipeline
Cons
Can provide UI like Azure DevOP's to simply drag and drop and at the backend things will automatically get created.
Can fix Merge request issues which is very complicated.
Likelihood to Recommend
1) Integrated with Docker containers to create a specific deployment. It saved our virtual machine costs. 2) With one license we have saved GitHub license costs for project management. 3) Integrated the GitLab pipeline with Azure Kubernetes and Azure Container registries. 4) Run multiple docker containers on the same server with the same port which is not possible without any proxy but with GitLab it can be done easily.
It's being used across multiple teams for CI/CD. It's been quite useful for collaboration between developers and even testers. Also, useful for code reviews with merge requests, we've deployed it into our own servers and use it internally via a VPN. It's easy to integrate and compatible with most projects management software.