Multiple 'role' instances?

Stef Walter stefw at redhat.com
Thu Jul 3 09:56:05 UTC 2014


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


More information about the server mailing list