Files
nova-specs/priorities/liberty-priorities.rst
John Garbutt c46a91bebb Improve description of priorities with no plan
Added more detail to the existing bullet points.
This should help encourage folks to step up before the next summit.

Change-Id: I9b52adfca54b5e18f36a0a4704eefce9b1e7d401
2015-09-07 15:39:31 +01:00

169 lines
7.0 KiB
ReStructuredText

.. _liberty-priorities:
===========================
Liberty Project Priorities
===========================
List of priorities (in the form of use cases) the nova development team is
prioritizing in Liberty (in no particular order).
+-------------------------+-----------------------+
| Priority | Owner |
+=========================+=======================+
| `Cells V2`_ | `Andrew Laski`_ |
+-------------------------+-----------------------+
| `V2.1 API`_ | `Ken'ichi Ohmichi`_, |
| | `Sean Dague`_ |
+-------------------------+-----------------------+
| `Scheduler`_ | `Jay Pipes`_ |
+-------------------------+-----------------------+
| `Upgrades`_ | `Dan Smith`_ |
+-------------------------+-----------------------+
| `DevRef Update`_ | `John Garbutt`_ |
+-------------------------+-----------------------+
.. _Andrew Laski: https://launchpad.net/~alaski
.. _Ken'ichi Ohmichi: https://launchpad.net/~oomichi
.. _Sean Dague: https://launchpad.net/~sdague
.. _Jay Pipes: https://launchpad.net/~jaypipes
.. _Dan Smith: https://launchpad.net/~danms
.. _John Garbutt: https://launchpad.net/~johngarbutt
Priorities without a clear plan
-------------------------------
Here are some things we would like to be a priority, but we are currently
lacking either a clear plan or someone to lead that effort:
* A plan for the future of flavors, image properties and host aggregates.
* Flavor extra specs are leading to a poor API experience. Poor discovery
of whether a feature is available, and often leaking implementation
details.
* Image creators are exposed to many hypervisor specific image properties
when trying to get the best performance for their image. We need a better
way to deal with that.
* Many private cloud users want more flexibility than flavors allow.
One of the main trade-offs being losing the capacity planning
simplification strict flavors can bring.
* Those who like flavors are faced with an explosion of flavors that might
be better handled as some kind of optional add on. With some features
users are forced to create images to set some image property to get the
feature they want activated.
* This fights against our mission for all deployments to have the same API.
* Tasks for API triggered operations
* It is often hard for a user to tell if the action triggered by their API
request has actually completed.
* While we have instance actions, they do not cover all operations yet
* We do have request-ids but they are quite hidden in headers, and not well
documented as a way to track actions
* The error handling for operations being interrupted when forcibly
restarting nova-compute is messy and non-standard, need more consistency.
* Ideally there would be a more async API with web call backs or a more
event friendly protocol, but that effort is really separate.
* Simplify Quotas
* The current quota code has proved unreliable
* A premature optimisation has been identified that causes DB level races,
we should experiment with removing that optimisation.
* The quota reservation and commit system is complicated, we should consider
removing that complexity, if possible.
* This effort should make it easier to add new features like nested quotas.
* Revisit how we talk to Glance, Neutron and Cinder APIs
* Cinder has created os-brick, which should make it easier to support
new volume drivers in Nova, and stop duplicate code.
* Neutron VIF driver code in Nova has similar issues to the volume drivers.
As neutron becomes more decentralized, we need to model the same in our
VIF driver logic in Nova. A new library has been proposed.
* More generally, we have had lots of issues with races in the create port
code that lives in the neutron network API. Ideally we can create some new
Neutron APIs that reduce the impedance miss match, and reduce races.
* With glance, there is some code duplicated in both Cinder and Nova to
access data in glance, including support for the v2 API. It would be good
to have a library to reduce that duplication.
* Feature Test Classification
* Our users should also be clear about what features are experimental vs
tested and ready for production vs deprecated and scheduled for removal.
* We should look again at the hypervisor support matrix, and look at ways
to dig into our testing gaps and plug them. Be that missing tempest tests,
or missing test environments/combinations.
* Ideally this should include plugging any documentation gaps, particularly
around API documentation.
* Fixing more bugs
* We need to get all the pending bug fixes reviewed
* Need to get a better understanding of all the bugs without fixes
* Look to identify key themes, like the Quota bugs, to identify areas
that need some attention.
Cells v2
--------
We started the cells v2 effort in Kilo. During Liberty are are focusing on
making the default setup a single cells v2 deployment.
In the M release, we hope to have support for multiple cells in a cells v2
deployment, including a way to migrate existing cells v1 deployments
to cells v2.
V2.1 API
---------
Complete the work around API microversions, with a particular focus on
documentation, tempest coverage and python-novaclient support.
We also need to define the policy around when to bump the API microversion
and what changes are allowed in a microversion bump.
We are explicitly excluding work on porting any cosmetic changes from the
previous v3 API efforts into new API microversions.
Scheduler
---------
During Kilo we made much progress on cleaning up the interface between the
scheduler and the rest of Nova.
In Liberty we hope to complete the work around request spec and resource
objects. We also want to start looking at the service group API,
and more work on the resource tracker.
Upgrades
---------
While we have made great strides with our upgrades in the last few releases,
there are several items related to database migrations that need completing.
Firstly, we need to fully document our new online data migration approach that
we tested out during kilo to perform the flavor migration from system metadata
to instance extra. In addition, we should tidy up the documentation around
how we bump RPC and object versions across release boundaries to remove
technical debt.
Secondly, we must complete the first step towards us having online schema
migrations, by splitting the schema migrations into an expand and contract
phase.
Thirdly, we must complete the final parts of converting all code to access
the database via DB objects.
DevRef Update
--------------
A key part of being able to scale out the Nova team is doing a better job of
sharing information on how the Nova community operates, how the Nova
architecture works, the basic design tenets we are using,
the scope of Nova, and so on.
The main goal is to make it easier to on-board new Nova contributors and
make it easier to discover any decisions that have been already made by the
community.