Browse code

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

Sean Dague authored on 2015/01/28 23:29:03
Showing 1 changed files
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.