[openstack-dev] DRY Service Inventory
eric at cloudscaling.com
Mon Apr 22 18:28:06 UTC 2013
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:
* 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.
More information about the OpenStack-dev