On 02.07.2014 15:06, Miloslav Trmač wrote:
----- Original Message -----
Is there (will there be) any concept in rolekit of mulitple instances of a role on a server?
I know that this certainly doesn't apply to some services like IPA Domain Controller.
But for others, such as databases it may be a limitation later on.
I don’t think we need it; roles always can support multiple server instances within a single role, and I guess this would be the right thing to do for non-specialist admins (in particular this gives the _role implementation_ the option to choose for the user whether to implement multiple instances as multiple configurations within a process, multiple processes within a data store, or completely separate data and configuration instances).
Fair enough, that's Fedora's call to make. Cockpit will want to go well beyond this, however.
Exposing multiple instances within a role does have limitations (what is the state of a role in which 90 instances run successfully and 1 has crashed?), but it seems to me that users running into these instances would usually be those running a very large number of instances (e.g. hosting them for customers as a business), i.e. specialist cases which are not the primary taret of Fedora Server.
This is exactly the use case that we're coming up against in Cockpit. And it's not at all a specialist case. Let me explain:
In Cockpit we're talking about reworking our navigation and workflows so they center around the services that the server is providing. These take the form of Roles (in Fedora Server), Server Applications (by others) or Containerized Services (by the docker crowd), but the essence is the same. These are the things the server has been deployed to "do".
I'm going to use the term "service" here for lack of a better all encompassing term. When I talk about these below, I'm not talking about all the systemd internal services ... but services that the server provides, and the raison d'etre for the server.
When someone runs more than one instance of a Service (think MongoDB database, or JBoss EAP instance), they would ideally like to know how each individual instance is doing:
* What is the load (cpu, io, memory) of this service? * Is the data storage for that service running out of disk space? * What critical events have occurred? * Does this need software security updates? * Diagnosis like: is this service accessible from the network, or blocked by the firewall?
We aim to show clear status on the above questions and more in the Cockpit UI centered around the various services being provided, and where possible, each *instance* of those services.
Now I understand that not all services can (due to software limitations) or should (due to sanity, ie: IPA) be deployed with multiple instances ... but many are capable of this, and will be deployed that way.
So rolekit would be limiting itself if it doesn't support multiple instances, and Cockpit would need to try to find a way around rolekit in cases where the underlying role implementation really is running multiple services.
Cheers,
Stef