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
| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,113 @@ |
| 0 |
+============= |
|
| 1 |
+ Quo Vadimus |
|
| 2 |
+============= |
|
| 3 |
+ |
|
| 4 |
+Where are we going? |
|
| 5 |
+ |
|
| 6 |
+This is a document in Devstack to outline where we are headed in the |
|
| 7 |
+future. The future might be near or far, but this is where we'd like |
|
| 8 |
+to be. |
|
| 9 |
+ |
|
| 10 |
+This is intended to help people contribute, because it will be a |
|
| 11 |
+little clearer if a contribution takes us closer to or further away to |
|
| 12 |
+our end game. |
|
| 13 |
+ |
|
| 14 |
+================== |
|
| 15 |
+ Default Services |
|
| 16 |
+================== |
|
| 17 |
+ |
|
| 18 |
+Devstack is designed as a development environment first. There are a |
|
| 19 |
+lot of ways to compose the OpenStack services, but we do need one |
|
| 20 |
+default. |
|
| 21 |
+ |
|
| 22 |
+That should be the Compute Layer (currently Glance + Nova + Cinder + |
|
| 23 |
+Neutron Core (not advanced services) + Keystone). It should be the |
|
| 24 |
+base building block going forward, and the introduction point of |
|
| 25 |
+people to OpenStack via Devstack. |
|
| 26 |
+ |
|
| 27 |
+================ |
|
| 28 |
+ Service Howtos |
|
| 29 |
+================ |
|
| 30 |
+ |
|
| 31 |
+Starting from the base building block all services included in |
|
| 32 |
+OpenStack should have an overview page in the Devstack |
|
| 33 |
+documentation. That should include the following: |
|
| 34 |
+ |
|
| 35 |
+- A helpful high level overview of that service |
|
| 36 |
+- What it depends on (both other OpenStack services and other system |
|
| 37 |
+ components) |
|
| 38 |
+- What new daemons are needed to be started, including where they |
|
| 39 |
+ should live |
|
| 40 |
+ |
|
| 41 |
+This provides a map for people doing multinode testing to understand |
|
| 42 |
+what portions are control plane, which should live on worker nodes. |
|
| 43 |
+ |
|
| 44 |
+Service how to pages will start with an ugly "This team has provided |
|
| 45 |
+no information about this service" until someone does. |
|
| 46 |
+ |
|
| 47 |
+=================== |
|
| 48 |
+ Included Services |
|
| 49 |
+=================== |
|
| 50 |
+ |
|
| 51 |
+Devstack doesn't need to eat the world. Given the existence of the |
|
| 52 |
+external devstack plugin architecture, the future direction is to move |
|
| 53 |
+the bulk of the support code out of devstack itself and into external |
|
| 54 |
+plugins. |
|
| 55 |
+ |
|
| 56 |
+This will also promote a more clean separation between services. |
|
| 57 |
+ |
|
| 58 |
+============================= |
|
| 59 |
+ Included Backends / Drivers |
|
| 60 |
+============================= |
|
| 61 |
+ |
|
| 62 |
+Upstream Devstack should only include Open Source backends / drivers, |
|
| 63 |
+it's intent is for Open Source development of OpenStack. Proprietary |
|
| 64 |
+drivers should be supported via external plugins. |
|
| 65 |
+ |
|
| 66 |
+Just being Open Source doesn't mean it should be in upstream Devstack |
|
| 67 |
+if it's not required for base development of OpenStack |
|
| 68 |
+components. When in doubt, external plugins should be used. |
|
| 69 |
+ |
|
| 70 |
+======================================== |
|
| 71 |
+ OpenStack Services vs. System Services |
|
| 72 |
+======================================== |
|
| 73 |
+ |
|
| 74 |
+ENABLED_SERVICES is currently entirely too overloaded. We should have |
|
| 75 |
+a separation of actual OpenStack services that you have to run (n-cpu, |
|
| 76 |
+g-api) and required backends like mysql and rabbitmq. |
|
| 77 |
+ |
|
| 78 |
+=========================== |
|
| 79 |
+ Splitting up of Functions |
|
| 80 |
+=========================== |
|
| 81 |
+ |
|
| 82 |
+The functions-common file has grown over time, and needs to be split |
|
| 83 |
+up into smaller libraries that handle specific domains. |
|
| 84 |
+ |
|
| 85 |
+====================== |
|
| 86 |
+ Testing of Functions |
|
| 87 |
+====================== |
|
| 88 |
+ |
|
| 89 |
+Every function in a functions file should get tests. The devstack |
|
| 90 |
+testing framework is young, but we do have some unit tests for the |
|
| 91 |
+tree, and those should be enhanced. |
|
| 92 |
+ |
|
| 93 |
+============================== |
|
| 94 |
+ Not Co-Gating with the World |
|
| 95 |
+============================== |
|
| 96 |
+ |
|
| 97 |
+As projects spin up functional test jobs, Devstack should not be |
|
| 98 |
+co-gated with every single one of those. The Devstack team has one of |
|
| 99 |
+the fastest turn arounds for blocking bugs of any Open Stack |
|
| 100 |
+project. |
|
| 101 |
+ |
|
| 102 |
+Basic service validation should be included as part of Devstack |
|
| 103 |
+installation to mitigate this. |
|
| 104 |
+ |
|
| 105 |
+============================ |
|
| 106 |
+ Documenting all the things |
|
| 107 |
+============================ |
|
| 108 |
+ |
|
| 109 |
+Devstack started off as an explanation as much as an install |
|
| 110 |
+script. We would love contributions to that further enhance the |
|
| 111 |
+comments and explanations about what is happening, even if it seems a |
|
| 112 |
+little pedantic at times. |