[openstack-dev] DRY Service Inventory
rbryant at redhat.com
Mon Apr 22 19:31:19 UTC 2013
On 04/22/2013 02:28 PM, Eric Windisch wrote:
> A summit discussion that didn't make the cut, but seems quite important, is that of redundant service inventory solutions.
> Presently, we have in OpenStack:
> * ServiceGroup,
> * MatchMaker,
> * OpenAttestation
> * Database (Cinder still does this - Quantum has introduced a NEW DB-backed solution)
> Problems with the database updates are obvious. The ServiceGroup is only in Nova, and OpenAttestation barely fits here at all, but isn't altogether unrelated, either. The MatchMaker is presently in Oslo.rpc, has a static JSON file backend, as well as a Redis backend, and being pluggable by 3rd-parties.
> Clearly, we need to pursue DRY with these efforts.
> What I would like to see in Havana, is the creation of a ServiceGroup driver driven by the MatchMaker, or the outright removal of ServiceGroup. The addition of ServiceGroup's non-DB backends, and possibly the DB as well, into the MatchMaker. Then, to seek the adoption of the MatchMaker by the Oslo.rpc.service module, Cinder, and Quantum.
> I do not intend to be so biased as only to say that my code, as the MatchMaker is, should be the winning solution here. However, whatever solution is chosen must be in Oslo, and at present, only the MatchMaker fits that requirement. Additionally, since the MatchMaker is used internally by RPC, although not universally, and all present uses of ServiceGroup are really maintaining relationships that map to RPC relationships, there seems to be disadvantages to keeping these too far separated.
> Whatever the outcome of this thread might be, I want to seek an end to DB-only service inventories, and an end to having multiple implementations of the same service within OpenStack.
Note that the servicegroup API in nova does not completely abstract away
the use of the db for everything here. The *only* thing it covers is
health checking. The list of services and their metadata is still
exclusively database backed.
More information about the OpenStack-dev