I'm part of the application development team comprising 10-12 developers and I have used GitLab for configuration and version management. We have also used it for DevOps, but I have not been involved in the DevOps side. My work with GitLab involved basic version management (i.e. checking in, checking out, merging) and related features.
I have also used GitLab for doing remote builds, which is when you check in and it triggers the build on the application remotely. For example, we have a YAML script that has been written for performing builds on GitLab automatically and when that script gets executed, it performs the builds and copies them to the destination folder. All of this gets triggered from GitLab.
I like that you can use GitLab as a double-sided solution for both DevOps and version management. It's a good product for working in these two areas, and the user interface makes it easy to understand.
There was a problem with the build environment when we were looking at developing iOS applications. iOS build require Mac machines and there are no Mac machines provided by GitLab in their cloud. So to build for mobile iOS application, we needed to use our own Mac machine within our own infrastructure. If GitLab were to provide a feature such that an iOS application could also be built through GitLab directly, that would be great.
I have used GitLab for two months.
Once all the scripts are written, it becomes scalable. When an application gets deployed and people start using it, it's on the cloud and so it becomes scalable. All the applications that we design are deliberately written in such a way as to be scalable.
We only used GitLab for a short duration, so there was not much scope or need for contacting technical support.
The setup is straightforward to an extent because the part of GitLab that I was using for version management was similar to other tools that I have used such as Git and SVN. When I use GitLab, it's more or less the same process and workflow as these other tools, so there wasn't a big learning curve for me.
Our application was an accumulation of multiple applications, so there were multiple builds happening at any given time. GitLab would process the builds and it would take only a couple of hours for us to deploy the builds on the cloud.
The other thing is that the GitLab user interface is good, so it's easy to understand. You, yourself, can learn it simply by exploring and trying it out. Then there's a lot of help that is available on the GitLab website on how to use it.
For the implementation, we had a DevOps engineer who was the primary technical guy, and then the others were developers and related entities performing the development.
Personally, I can't say much about the return on investment because the licensing and costs and everything have been borne by our customer. We were just using it. But I think that the return on investment must be good, and it might be one of the reasons why the customer is using it for all their projects.
I'm not aware of the licensing costs because those were covered by the customer.
I can certainly recommend GitLab. It's a good product and I would rate it an eight out of ten.