Comment by gregwebs
3 years ago
Gitlab pricing used to be something like $4/mo and they saw incredible growth. They raised their rates to $19/mo and now are seeing slow growth. In April they are raising to $29/mo- not sure what they think is going to happen. Also, for anyone that actively watches, they have to wonder if there will be another price hike once you are on their platform.
Github Enterprise is only $21/mo and for most users it has all the same features of Gitlab.
Gitlab's main differentiator for a long time was CI, but now Github has its own equivalent (Actions).
It seems that Gitlab is only going to be left with 1) existing Gitlab users 2) users that want some enterprise feature set that doesn't exist on Github, and want it in a single platform without a third party
At $29 * 7 * 12 per year it became way cheaper for us to just piece together functionality we needed from nginx+cgit+homegrown database to store users/repos/acl/push info and a few git hooks written in a few lines of PHP. The cost is now independent of the number of developers using the system.
So far it did cost ~1 month of paying for github in dev time and I can't imagine it costing much more when we'll want to add some automation on top of the list of accepted pushes/ref updates, for which we did not have a need for so far.
Certainly beats installing 1GiB debian package of selfhosted gitlab and having to figure out why some stupid ruby service is eating increasing amounts of hundreds of MiB of RAM on an empty gitlab instance while doing nothing at all.
That's $2.5k/yr that can be put into something else.
When developers do operations... I guess. :D
I mean I dislike the gitlab pricing increases, and we are kind of regretting sticking with them (especially since everyone on the Gitlab instance has to pay for a seat, even when not using any of the premium features) considering how Github is cheaper and has a higher release velocity at this point... But to be very fair, we never saw what you describe about memory leaks or slow ruby services. Migrations are also usually silent and done in the background. I guess the software itself is pretty heavy, but predictably so (RAM usage rarely spikes, for example).
We have a 400+ seats instance, with a decade worth of code and it just works 99.99% of the time, and upgrades are generally painless. Though our instance is pretty vanilla, and internal to our corporation. The runners are more finnicky and buggier, especially since we have tons of different build targets but that's besides the point if we are just talking about using it as a dumb git repo. And if you only need it for that purpose why even pay instead of using the community edition?
(I'm in the AI team but I sometimes help the devops team that takes care of the instance to customize our AI pipelines, so I'm familiar with gitlab and with my colleagues experience with it)
The company I'm currently at uses a self hosted instance, which due to our "security"* constraints we're grossly behind in updates. Not to say that's Gitlabs fault at all, but the amount of issues we have near daily is hilarious (if it didn't simultanously crush productivity).
That said, I recall issues with the Gitlab Enterprise Support / whoever we contact about our license etc, mostly to do with slow or poor communication. Requests would sit for a month before we got a reply, often dismissive or generally unhelpful, though we _were_ on an outdated version so I don't blame them.
I vaguely recall an email about support ending on self hosted instances? I can't recall the details, but I know it triggered an internal investigation into moving away from Gitlab. EDIT: Pretty sure I'm remembering self hosted Jira, a quick Google search shows Jira EOL but no Gitlab.
All of that said, I largely blame my company for the failures here. I wouldn't expect any company to support self hosted, outdated versions. The support issues were annoying, but I'm also not sure how much I can blame Gitlab for that. I'm also struggling to remember the details, so take this as one mans hazy annecdote.
* film industry, security by obscurity in the worst ways, leads to incredibly outdated and neglected tech (we only _just_ transitioned to Python3, and that's only the core services)
4 replies →
My bad experience was mostly just with installing gitlab on a 1GiB RAM VM, to see how it will fare and how easy it is to manage. I expect it to work for people who don't mind throwing a 16GiB+ RAM machine at it. But our dataset is currently like ~200 MiB and simple relatively dumb git hosting just works much better in our case.
2 replies →
The problem with a homegrown system is that every developer working within it will see it as a barrier rather than a cost saving. Whenever they can't do something that's trivial on Github/Gitlab it'll be a reminder that the company would rather save $xxx/year than make their job easier.
Ultimately, having a simple, well-integrated, industry standard stack that includes the same tooling every other company uses is a perk of working at a well-funded or profitable company. People leave for less.
> it'll be a reminder that the company would rather save $xxx/year than make their job easier.
My company has already made this crystal clear by switching to MS Teams.
3 replies →
A developer costs about 250K a year all up. That doesn’t include opportunity cost.
49, 40 hour weeks a year = $127.55 an hour.
29* 7 * 12 / (127.55) = 19.09 hours
If it takes you more than 2.3 dev days (100% productive) you’re negative ROI doing it yourself.
This math doesn’t even factor in the opportunity cost of doing this.
>> A developer costs about 250K a year all up.
Gotta love HN math. Calculations to two decimal places, starting with a number plucked from the high end of a distribution with standard deviation of at least 100K.
3 replies →
> A developer costs about 250K a year all up.
I currently cost more like 80K in euro's if I reason from my employer's side. So tell me, how are you getting to the 250K exactly?
Europe exists as well and even in the US there are enough companies that don't pay FAANG salaries.
10 replies →
A developer:
in the US
in specific rich cities in California, New York, Texas, Washington, and Colorado
at a handful of tech companies which are currently bedevilled by lay-offs
averaged across all roles
GitLab doesn't have regional pricing.
That assume that gitlab is friction free and takes zero time to use?
Maybe something like gitea+teamcity solution is better and cheaper and has less opportunity cost?
I like gitlab, but it feels they have been walking in the wrong direction for many many years and the consequences are starting to pile up.
I think the point is too many times developers are a penny wise and a pound foolish when it comes to build vs buy. Because they can build, and it is often fun if you haven't done it before.
Though I often don't take my own advice, I try to ask is what I'm about to build core to our ROI/product, is there an existing solution that gets us 80% there, and yes, what is the cost.
If it is not core to the business, won't drive revenue, and cost are not outrageous, which is a company by company truth, then I much prefer to spend X time building new product than recreating an existing product/tool.
One final point - don't forget to consider the maintenance costs, which in the long term often greater then the initial investment. If your CI goes down, you just blew away and savings you were planning on.
1 reply →
Their solution is not a monthly recurring event.
4 replies →
Hehe, even at US prices we'd break even after half a year.
Average salary where I live is $21k/yr with average devs taking maybe $25-40k/yr. Top jobs being ~$65k
The classic HN Dropbox comment, never gets old.
… sometimes, I do think it's merited. We switched to Github Actions for our CI and it's been … mixed. It was a hell of a lot of work to switch (GHA is significantly different than what we were moving from and … buggy) and even then, some of the pricing on GHA high. 24¢/GiB/mo for storage[1] which is like 8×? 10×? the sort of cloud baseline, 50¢/GiB data transfer [2], and the runners are similarly costly, IMO. I'm not sure if GHA wins out, in part because we're not done switching.
You can do self-hosted runners aaaand… welcome to infra/ops?
A little NIH syndrome would do the industry good. We need more stuff invented. The current stuff is mediocre.
[1]: https://docs.github.com/en/billing/managing-billing-for-gith...
[2]: I think it's only egress, and only from packages though?
Yes, but all we used gitlab for was git repo hosting with push access control for about 40 repositories to allow sharing code via push/pull and not much else (almost no issues/pull requests). It's ridiculous to pay $2500/yr so that 7 people can do push/pull over slow growing set of ~200MiB of data when it can be handled in much more performant way by a 36$/yr (+ a small one time setup cost) VM we already had for running other things.
2 replies →
Why don’t you just run gitlab community edition or gitea
Gitlab is massive piece of software, and has inordinate HW requirements for the job we'd be using it for. Also it would not run on the VM we already have set up for other services, backed up, etc.
Gitea is fun and all, but it's not in debian repo, so would require manual updates. Annoying.
2.5k doesn't pay 1 day of a developer in a top-of-market startup.
I need to up my rate :D
I reckon their growth was mostly killed by Microsoft purchasing GitHub and making private repositories free. Most of the open source community seem to be on GitHub anyway so it just removed any incitament for average people to join Gitlab. Once you're invested in one environment it takes something special to move.
This. A while ago Gitlab was really the better option: mostly free and more features (CI, project management...). Github caught up on features and price so why bother going against the network effect when the alternative is not even better?
Unless Actions has gotten a lot more fleshed out since I last used it, I don't think it's as robust as Gitlab CI.
- Github Action's design is much better, just look at [1] for example, there's a lot of low-hanging fruit in Gitlab that's not done for some reason
- I've had tons of issues with their kubernetes runners, hard to debug spurious system failures
- They still don't display the last N bytes of the logs when logs get long, just the first N bytes, which is entirely useless when a build fails
- It's awfully slow to navigate through pipelines, in particular child pipelines
- The `stages` things is just useless noise, I just wanna specify dependencies please, I don't want to be forced to also put each job in a stage, it's weird.
- You can't expose a secret only to a single job step; they don't really have finer granularity for job steps like Github Actions has -- they just generate a script.sh that's executed directly.
- Github has many more reusable actions from the community, I don't think Gitlab has that at all? At least not in a convenient way.
[1] https://gitlab.com/gitlab-org/gitlab/-/issues/395964
> Github has many more reusable actions from the community, I don't think Gitlab has that at all? At least not in a convenient way.
This is the big one.
Github’s ability and dominance in the social space means they have the most active actions ecosystems.
They made actions easier to import share and built marketplaces and now gobs of developers build value into it just for clout (and because they enjoy software of course).
If you think about it carefully, it’s actually a security nightmare. You have no idea what a random Github action you “uses:”d is doing, but in practice 90%+ of the time it doesn’t matter, you get good functionality and save time for free.
1 reply →
> The `stages` things is just useless noise, I just wanna specify dependencies please, I don't want to be forced to also put each job in a stage, it's weird.
You don't have to. GitLab supports dependencies. Using the `needs:` keyword.
It was released in August of 2019.
https://about.gitlab.com/releases/2019/08/22/gitlab-12-2-rel...
1 reply →
Oh my god their kubernetes runners are a nightmare sometimes. Even the configuration is arcane and the parameters can overlap, or not. It's crazy.
> The `stages` things is just useless noise, I just wanna specify dependencies please, I don't want to be forced to also put each job in a stage, it's weird.
I think there a few things like this in GitLab (like the ability to run pipelines against both commits and pull requests) - GitLab give you a lot of flexibility... but so far it's all just been extra bother to deal with.
I used to think this, but after having gotten used to Github Actions I’m moving everything over.
Ultimately I constantly felt like everything was half baked when using Gitlab. I still kind of feel that way with Github, but to a much lesser extend.
More importantly, they allow me to pay my $21/month monthly which means they get my business instead of ‘only pay per year’ Gitlab.
GitHub actions are great.
Gitlab CI is a bunch of weird hard to understand bolt on conf, undergirded by a defunct docker-machine project
I tried debugging some problems I was having with a runners. Turns out the default Ubuntu AMI was like 6 years old. Does anyone use this thing?
I disagree. Actions is really nice and I don’t have to set up and debug runners. In GitHub, I can have dedicated runners if I want, but99% of the time, I just use vanilla Ubuntu runners.
My fear though is that GitHub will Jack up their prices once I’m running everything. Right now they give 50k minutes per month, but that could change at any point. GitHub enterprise started out at $8/month and now it’s $20+.
> Github Enterprise is only $21/mo and for most users it has all the same features of Gitlab.
Of those things that I like more in Gitlab, it is deploy tokens: an easy way to be able to dole out permission to clone code where needed without having to bother with key management or user management. As far as I can tell GitHub has something like this but it requires setting up an app to talk to the API and isn’t nearly simple as the button available in Gitlab.
Not sure what you mean. Adding a deploy key is about as simple as I can imagine, definitely doesn’t require messing with apps, which I agree is a pain.
https://docs.github.com/en/authentication/connecting-to-gith...
(disclosure, former GH)
That's a different thing. Here's some info on deploy tokens: https://docs.gitlab.com/ee/user/project/deploy_tokens/. It's a one-off username+password pair that can be used for HTTP cloning without setting up SSH keys or creating users. As far as I can tell in Github you use either automatic tokens[1] or personal tokens[2]. Personal tokens look easier to set up, but they are tied to a user and not the repo or organization, which isn't great if you're using this for a company—you have to create a whole separate token user if you don't want it tied to someone's personal account. Automatic tokens require a script to manage.
As nice as this one feature of Gitlab is it is not a major show-stopper. Almost everything we need is available in most git services. So to GGP's point: we are likely to go for the most affordable option even if there's some tradeoffs.
[1]: https://docs.github.com/en/actions/security-guides/automatic... [2]: https://docs.github.com/en/authentication/keeping-your-accou...
I think the GH app is a workaround for this:
> Deploy keys only grant access to a single repository. More complex projects may have many repositories to pull to the same server.
$29 / month as it relates to developer salaries is not impactful.
It adds up. 29$ for GitHub, 19$ for GitHub Copilot, 20$ for ChatGPT Plus, a few codespaces and runners, perhaps 7.5$ for the sadomasochist project managers who wants Jira, and you may get a nice bill at the end of the month.
And then you have people like GitKrakken who ask 19$ for a git client, or Teleport who ask 36$ for a ssh client.
It does, but you have to associate these cost as part of the employee expense and not a separate budget line item. An extra $100 / month for tools needed by somebody being paid $5,000+ / month is nothing.
In my previous organisation $19/month (IIRC) was a dealbreaker. That was non-US so salaries are lower, and suddenly I had to explain why we absolutely needed the paid version so much (instead of sticking to the free one). To make it worse, most of the people that had access to gitlab were researchers/managers/non-technical people and not actually developers, so only a few people would benefit from the paid version. So we never bought the paid version.
> It seems that Gitlab is only going to be left with 1) existing Gitlab users 2) users that want some enterprise feature set that doesn't exist on Github, and want it in a single platform without a third party
Add in 3) people who want a reasonable option to self-host that's not charging you to oblivion.
GitLab Auto DevOps and (now) GitLab Ultimate are definitely compelling differentiators that Github doesn't currently have, but I can't see Github just _not_ responding to that in a big way.
Or (3) Gitlab users that want to self-host. But while those might be users, they are not great customers.