4 ms·
Scaling a multi-tenant service is an incredibly hard problem. Resource contention and noisy neighbors require incredibly sophisticated systems to work around.
by nzoschke 10y ago
Scaling a multi-tenant service is an incredibly hard problem.
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.
- merb 10y agoWhich is akward to install for the average user. If you have an Ops team that is fine, but I doubt even at gitlab.com they don't have too many folks that automate that stuff, so either they spend time developing or they spent time automating / splitting. 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.
- nzoschke 10y agoAgree. I'm building software in Go and using the AWS DynamoDB service. 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.
- sytse 10y agoThe hardest part to scale are the shared services, particularly the fileserver, see https://gitlab.com/gitlab-com/operations/issues/1/ https://gitlab.com/gitlab-com/operations/issues/1/ For the RoR application servers we can (and did) just spin up more machines https://about.gitlab.com/2016/04/29/look-into-gitlab-infrastructure/ https://about.gitlab.com/2016/04/29/look-into-gitlab-infrast...