Giter Club home page Giter Club logo

Comments (3)

wkloucek avatar wkloucek commented on September 28, 2024

we also could treat replicas like we do resources. We have a global default setting and a per service setting, which wins over the global one. Or do you vote for only a per service option?

from ocis-charts.

Deaddy avatar Deaddy commented on September 28, 2024

Well, that is what I meant with the first point, I do not really think a global setting is useful enough to warrant the added complexity in the helm chart.

I also expect some components like nats to require quorum, so just having one large replica setting might also invite configuration accidents, and I guess most components do not need to scale beyond HA, whereas proxy and frontend probably need quite a few more replicas in most settings.

I think I would even argue that a global setting is kinda useless for resources as well, but having good defaults there might be more tricky than replicas: 1 for each service.

from ocis-charts.

wkloucek avatar wkloucek commented on September 28, 2024

I also expect some components like nats to require quorum

The builtin NATS does not support scaling / clustering. Therefore we have an example with an external NATS cluster. Currently you also need to ensure settings replicas for NATS streams, that's why we recently added NACK to the example to achieve this. See: https://github.com/owncloud/ocis-charts/tree/master/deployments/ocis-nats

There are no other components that have something like a quorum.
But other components that cannot be scaled beyond one replica and should be replaced by external scalable / HA components if needed (IDM = LDAP, IDP = OIDC Provider -> see: https://github.com/owncloud/ocis-charts/tree/master/deployments/external-user-management). Other components are not yet scalable and tracked here: #15

so just having one large replica setting might also invite configuration accidents, and I guess most components do not need to scale beyond HA, whereas proxy and frontend probably need quite a few more replicas in most settings.

I totally get your point and agree that we should offer a replica setting per service.

I guess we should have the following logic when it comes to replicas / HPA settings:

  • apply global replicas setting to service if no global / service-specific HPA / service-specific replicas is set
  • apply service-specific replicas setting to service if no service-specific HPA is set
  • apply global HPA setting to service if no service-specific replicas / HPA is set
  • apply service-specific HPA setting to service if service-specific HPA is set

In short: service-specific setting wins. And HPA wins over the replicas setting when it has the same specifically (global / service-specific).

I think I would even argue that a global setting is kinda useless for resources as well, but having good defaults there might be more tricky than replicas: 1 for each service.

We have this because many service have a similar low need for resources and they can be configured together in this way. But still it's true that you need to check if resources are set correct in the end.

from ocis-charts.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.