The future of SaaS hosted Git repository pricing
about.gitlab.com
about.gitlab.com
I've been impressed by GitLab. They moved very fast and made good progress recently. It is great to see competition, to what many (at least in start up land) considered a done deal in terms of a winner as far as hosted code is concerned. Remember someone was telling me "if your code is not on GitHub, it doesn't exist".
But then remember getting a sticker shock when we got a quote for GitHub Enterprise a few years back. Ended up picking Atlassian instead, besides the price it was the better ticket workflow, or maybe it was the wiki, I forgot. Anyway, I would have liked to have more choices at that point to look at. Now GitLab is a choice as well.
The Gitlab team seems awesome but these posts always read a bit forced-friendly. Yay we are all friends in this space and we see this and that trend and here are some benefits of gitlab over the competition in a thinly vailed "switch already" piece. I wish they'd just write "these price changes could suck for you, it's a good time to switch to us now". I got a similar vibe from the posts in reaction to the "this is wrong with github" posts.
Responding to their biggest competetor is very smart. I like that they included prices and a comparison table. As opposed to say something too general like "here are our features", they know everyone will compare them GitHub, so they talk about it and compare directly.
I don't think their approach is veiled at all. It seems pretty obviousy. Saying "things like GitHub pricess suck" would be childish and irresponsible though.
If they start paying users to switch from GitHub I would consider it briefly.
At one point Google and FB were trunk based monolithic repositories, and I haven't heard that has changed. If it has not, this might not be the best example for micro services leading to many repos.
https://talkpython.fm/episodes/show/16/python-at-netflix
Transcript: https://talkpython.fm/episodes/transcript/16/python-at-netfl...
> Today, Twitter is excited to announce participation in the first major release of the Pants open source project: 1.0.0, an open source build tool for monorepo-style source repositories.
They (for the most part) had two repos as of 11/2014. They certainly were moving towards one. Here's a public thread mentioning the two repos: science (mostly jobs, shared code) and birdcage (mostly services). https://groups.google.com/forum/#!topic/pants-devel/60Vzkole...
Blame it on Amazon and Google who are making online compute, memory and storage ridiculously inexpensive if you know how to use it right.
So SaaS companies should and will have to price on a different dimension.
I think:
Charge to cover the resource prices. But if your resources are small amounts of storage for code, round down to zero.
Charge per user. It's simple and predictable and a good proxy for budget.
Tier around features.
Sell a totally private on-prem version. Companies will pay big bucks if they need your product features and compliance.
So yeah, basically exactly what GitLab is doing. They really are doing a great job at trying to build an open source business.
Off-topic, but what?! I understand there is a lot of hype about "microservices" right now but I don't think the upsides of the propagated approach are as clear-cut or uncontroversial as the post makes them out to be.
The article defines "microservices" as the act of splitting up an application into many small, individual programms that talk to each other via RPCs.
How does structuring my code into lots of small programs improve revenue of all things? Or are you talking about the revenue of code repository hosting providers and "microservices" consultants?
Also, this approach surely does not improve resiliency and efficiency per se. It actually does the opposite in my opinion. All the additional RPCs are only adding _more_ points of failure (unreliable IPC) and overhead as compared to straight in-process method calls.
And who's saying that "a microservices architecture" improves a dev teams "agility"? How does one even measure agility? The article is stating this like it's an established fact. In my [anecdotal] experience, spreading an application out over lots of individual repositories and binaries makes it harder to work with, not easier.
>> With such tangible business benefits, it is no wonder why Google, Amazon, and Facebook have been using microservice development practices for over a decade.
The fact is that these are a massive software companies with thousands of engineers. Naturally they run an incredible amount of internal software and services. I think this is often conflated with the idea that splitting up a given application into smaller and smaller parts to produce more individual "services" automatically makes it better somehow.
Don't get me wrong. I'm all for having a clear seperation of concerns and well defined interfaces between individual modules. Doing that has been best practice since I started to code. But the latest "let's split our codebase up into 20 different binaries and repos, because microservices" fad is just bonkers.
I don't agree with their stance on microservices, but do find that I need a lot of private repos. In my case I just like to create a bunch of hobby projects.
GitHub's new pricing seems incompatible with smaller studios and agencies who encourage collaboration from non-developers or which frequently hire outside contractors. Make it easier to understand how those migrations might work.
I think this might be an error.
Not sure why Gitlab is still not able to scale the platform.
I run Gitlab on a 2 CPU 4GB RAM VM and it performs very well(even with fairly large repos). There is also the known issue with Gitlab CE itself being resource intensive, but in the case of the version hosted on Gitlab it seems to be a scaling issue.
Resource contention and noisy neighbors require incredibly sophisticated systems to work around.
Automating many smaller, isolated systems is much easier. This is another trend that will affect the SaaS model.
Actually the biggest problem is actually RoR which Gitlab is based on, it offers a very limited performance compared against others. Even if you split, you still need more servers on ruby than you would've needed for C#, Java, C++ or whatever is closer to the metal.
Lots of performance, minimal operations.
Easy to manage tons of installs of this software.
It's not impossible to scale RoR and Postgres but there are architectures that are far easier.
For the RoR application servers we can (and did) just spin up more machines https://about.gitlab.com/2016/04/29/look-into-gitlab-infrast...
The point of the comment was to show that Gitlab performs well when there are appropriate server resources, hence the reason for Gitlab.com not performing well is because it has not been scaled up/out or both.
But the problem is this is expensive (we have 100k+ users) and people can't collaborate easily (you need a new account for each server).