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. |