Supported messaging drivers policy
Change-Id: Ie62d2f49ca0cb073ec3e54aedd8567e78cd45b6e
This commit is contained in:
parent
fbd64a5dd1
commit
fa30228a71
|
@ -0,0 +1,130 @@
|
|||
..
|
||||
|
||||
=============================
|
||||
Supported Messaging Drivers
|
||||
=============================
|
||||
|
||||
We need to define a policy on messaging in general.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
OpenStack has gravitated toward using RabbitMQ for message passing. There
|
||||
are numerous excellent alternatives available as backends, including
|
||||
QPID and 0mq, but only RabbitMQ has received attention directly in the
|
||||
community at large. As a result, more and more users of these backends
|
||||
are switching to RabbitMQ, and this leaves QPID code lying around that
|
||||
is not well tested and not well supported by the community. Said code
|
||||
will continue to be a burden, and should be removed if it is doing more
|
||||
harm than good.
|
||||
|
||||
There is also anecdotal evidence that users are using the zmq driver
|
||||
to achieve high scale with fixes, but the zmq driver is not well
|
||||
tested either, which may actually be worse than not having it at all,
|
||||
as now anecdotes are passed from user to user but results will be very
|
||||
different for users who stick to upstream code.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
RabbitMQ may not be sufficient for the entire community as the community
|
||||
grows. Pluggability is still something we should maintain, but we should
|
||||
have a very high standard for drivers that are shipped and documented
|
||||
as being supported.
|
||||
|
||||
We will define a very clear policy as to the requirements for drivers
|
||||
to be carried in oslo.messaging and thus supported by the OpenStack
|
||||
community as a whole. We will deprecate any drivers that do not meet
|
||||
the requirements, and announce said deprecations in any appropriate
|
||||
channels to give users time to signal their needs. Deprecation will last
|
||||
for two release cycles before removing the code. We will also review and
|
||||
update documentation to annotate which drivers are supported and which
|
||||
are deprecated given these policies
|
||||
|
||||
Policy
|
||||
------
|
||||
|
||||
Testing
|
||||
~~~~~~~
|
||||
|
||||
* Must have unit and/or functional test coverage of at least 60% as
|
||||
reported by coverage report. Unit tests must be run for all versions
|
||||
of python oslo.messaging currently gates on.
|
||||
|
||||
* Must have integration testing including at least 3 popular oslo.messaging
|
||||
dependents, preferrably at the minimum a devstack-gate job with Nova,
|
||||
Cinder, and Neutron.
|
||||
|
||||
* All testing above must be voting in the gate of oslo.messaging.
|
||||
|
||||
Documentation
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
* Must have a reasonable amount of documentation including documentation
|
||||
in the official OpenStack deployment guide.
|
||||
|
||||
Support
|
||||
~~~~~~~
|
||||
|
||||
* Must have at least two individuals from the community commited to
|
||||
triaging and fixing bugs, and responding to test failures in a timely
|
||||
manner.
|
||||
|
||||
Prospective Drivers
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Drivers that intend to meet the requirements above, but that do not yet
|
||||
meet them will be given one full release cycle, or 6 months, whichever
|
||||
is longer, to comply before being marked for deprecation. Their use,
|
||||
however, will not be supported by the community. This will prevent a
|
||||
chicken and egg problem for new drivers.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
We could remove pluggability from oslo.messaging entirely, and just
|
||||
ship RabbitMQ drivers. This option would alienate users who have private
|
||||
drivers, and would also force users of the zmq driver who are trying to
|
||||
fix it to abandon those efforts and try to scale with RabbitMQ.
|
||||
|
||||
We could also go even further, remove the pluggability, and improve the
|
||||
kombu library enough to support all use cases of oslo.messaging. That is
|
||||
beyond the scope of this document though.
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Clint "SpamapS" Byrum
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
- Record policy in oslo developer documentation
|
||||
- Announce policy to mailing lists
|
||||
- Mark non-compliant drivers as deprecated
|
||||
- Update configuration guides to note non-supported drivers
|
||||
- After deprecation period, remove non-compliant drivers from code and docs
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
N/A
|
||||
|
||||
History
|
||||
=======
|
||||
|
||||
.. list-table:: Revisions
|
||||
:header-rows: 1
|
||||
|
||||
* - Release Name
|
||||
- Description
|
||||
* - Liberty
|
||||
- Introduced
|
||||
|
||||
.. note::
|
||||
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
Loading…
Reference in New Issue