Document where we are going
Somewhat opinionated document on where we want to be going, should be an accurate first approximation of what Dean and I have chatted about over the last few weeks. Hopefully helpful in framing where we are going. Change-Id: Ia153af27a08203ffc44e37c7db73e04573d3be9f
This commit is contained in:
parent
c2999d190a
commit
2e17d85d80
113
FUTURE.rst
Normal file
113
FUTURE.rst
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
=============
|
||||||
|
Quo Vadimus
|
||||||
|
=============
|
||||||
|
|
||||||
|
Where are we going?
|
||||||
|
|
||||||
|
This is a document in Devstack to outline where we are headed in the
|
||||||
|
future. The future might be near or far, but this is where we'd like
|
||||||
|
to be.
|
||||||
|
|
||||||
|
This is intended to help people contribute, because it will be a
|
||||||
|
little clearer if a contribution takes us closer to or further away to
|
||||||
|
our end game.
|
||||||
|
|
||||||
|
==================
|
||||||
|
Default Services
|
||||||
|
==================
|
||||||
|
|
||||||
|
Devstack is designed as a development environment first. There are a
|
||||||
|
lot of ways to compose the OpenStack services, but we do need one
|
||||||
|
default.
|
||||||
|
|
||||||
|
That should be the Compute Layer (currently Glance + Nova + Cinder +
|
||||||
|
Neutron Core (not advanced services) + Keystone). It should be the
|
||||||
|
base building block going forward, and the introduction point of
|
||||||
|
people to OpenStack via Devstack.
|
||||||
|
|
||||||
|
================
|
||||||
|
Service Howtos
|
||||||
|
================
|
||||||
|
|
||||||
|
Starting from the base building block all services included in
|
||||||
|
OpenStack should have an overview page in the Devstack
|
||||||
|
documentation. That should include the following:
|
||||||
|
|
||||||
|
- A helpful high level overview of that service
|
||||||
|
- What it depends on (both other OpenStack services and other system
|
||||||
|
components)
|
||||||
|
- What new daemons are needed to be started, including where they
|
||||||
|
should live
|
||||||
|
|
||||||
|
This provides a map for people doing multinode testing to understand
|
||||||
|
what portions are control plane, which should live on worker nodes.
|
||||||
|
|
||||||
|
Service how to pages will start with an ugly "This team has provided
|
||||||
|
no information about this service" until someone does.
|
||||||
|
|
||||||
|
===================
|
||||||
|
Included Services
|
||||||
|
===================
|
||||||
|
|
||||||
|
Devstack doesn't need to eat the world. Given the existence of the
|
||||||
|
external devstack plugin architecture, the future direction is to move
|
||||||
|
the bulk of the support code out of devstack itself and into external
|
||||||
|
plugins.
|
||||||
|
|
||||||
|
This will also promote a more clean separation between services.
|
||||||
|
|
||||||
|
=============================
|
||||||
|
Included Backends / Drivers
|
||||||
|
=============================
|
||||||
|
|
||||||
|
Upstream Devstack should only include Open Source backends / drivers,
|
||||||
|
it's intent is for Open Source development of OpenStack. Proprietary
|
||||||
|
drivers should be supported via external plugins.
|
||||||
|
|
||||||
|
Just being Open Source doesn't mean it should be in upstream Devstack
|
||||||
|
if it's not required for base development of OpenStack
|
||||||
|
components. When in doubt, external plugins should be used.
|
||||||
|
|
||||||
|
========================================
|
||||||
|
OpenStack Services vs. System Services
|
||||||
|
========================================
|
||||||
|
|
||||||
|
ENABLED_SERVICES is currently entirely too overloaded. We should have
|
||||||
|
a separation of actual OpenStack services that you have to run (n-cpu,
|
||||||
|
g-api) and required backends like mysql and rabbitmq.
|
||||||
|
|
||||||
|
===========================
|
||||||
|
Splitting up of Functions
|
||||||
|
===========================
|
||||||
|
|
||||||
|
The functions-common file has grown over time, and needs to be split
|
||||||
|
up into smaller libraries that handle specific domains.
|
||||||
|
|
||||||
|
======================
|
||||||
|
Testing of Functions
|
||||||
|
======================
|
||||||
|
|
||||||
|
Every function in a functions file should get tests. The devstack
|
||||||
|
testing framework is young, but we do have some unit tests for the
|
||||||
|
tree, and those should be enhanced.
|
||||||
|
|
||||||
|
==============================
|
||||||
|
Not Co-Gating with the World
|
||||||
|
==============================
|
||||||
|
|
||||||
|
As projects spin up functional test jobs, Devstack should not be
|
||||||
|
co-gated with every single one of those. The Devstack team has one of
|
||||||
|
the fastest turn arounds for blocking bugs of any Open Stack
|
||||||
|
project.
|
||||||
|
|
||||||
|
Basic service validation should be included as part of Devstack
|
||||||
|
installation to mitigate this.
|
||||||
|
|
||||||
|
============================
|
||||||
|
Documenting all the things
|
||||||
|
============================
|
||||||
|
|
||||||
|
Devstack started off as an explanation as much as an install
|
||||||
|
script. We would love contributions to that further enhance the
|
||||||
|
comments and explanations about what is happening, even if it seems a
|
||||||
|
little pedantic at times.
|
Loading…
Reference in New Issue
Block a user