Include a rationale for tracking base services
It was pointed out in #openstack-tc[*] that we may be making some assumptions about the reasons for base services without having fully expressed them in any durable form. As an example, when we added a distributed lock manager to this list the driving reason was that several services had already implemented their own (some completely independently, some by copying from other services and then perhaps making modifications). There are times when we solve this problem by adding new shared libraries, hence the remit of Oslo, but some solutions need full-blown services in their own right which may or may not be developed within the OpenStack community. We also realize that deployments may be hesitant to turn on useful features by default because they rely on yet another service, and this hampers adoption of something which if ubiquitous would perhaps snowball into the addition of similar useful default capabilities in OpenStack deployments. [*] http://eavesdrop.openstack.org/irclogs/%23openstack-tc/%23openstack-tc.2018-05-16.log.html#t2018-05-16T17:55:51 Change-Id: Ie85658e95dad210ea8ef838eb2fb5a571ed02cab
This commit is contained in:
@@ -11,6 +11,29 @@ leverage advanced features exposed by those base services without fear of
|
||||
increasing the overall operational complexity for OpenStack deployers.
|
||||
|
||||
|
||||
Rationale
|
||||
=========
|
||||
|
||||
There are two related reasons behind the existence of this list. First and
|
||||
most straightforward, as stated by the Definition above, OpenStack
|
||||
components are allowed to rely on a solution listed here without needing to
|
||||
provide an alternative or fallback mechanism to account for situations when
|
||||
the solution is not present. The other and perhaps more subtle reason is to
|
||||
drive consistency of implementation between different OpenStack components
|
||||
who may have similar needs but would otherwise likely end up embedding
|
||||
their own varied implementations.
|
||||
|
||||
When someone developing a new feature is aware that there is a standard
|
||||
solution provided by this list, they are likely (and encouraged) to use it
|
||||
instead of designing something from scratch. This helps mitigate the risk
|
||||
that multiple components might otherwise independently provide similar but
|
||||
divergent solutions to the same basic problem space. It's also intended to
|
||||
encourage more useful base functionality by default across OpenStack
|
||||
components, because the perceived cost (to performance or complexity) of
|
||||
including this one extra dependency is lessened by each other component of
|
||||
the system which may also benefit from using it.
|
||||
|
||||
|
||||
Current list of base services
|
||||
=============================
|
||||
|
||||
|
||||
Reference in New Issue
Block a user