Browse Source

Add proposal for nova-compute-api

Change-Id: Ib33e78ff25636430677a6d487110f23424620b7b
changes/27/411527/1
Clint Byrum 2 years ago
parent
commit
7086083711
1 changed files with 33 additions and 0 deletions
  1. 33
    0
      proposals/nova-compute-api.rst

+ 33
- 0
proposals/nova-compute-api.rst View File

@@ -0,0 +1,33 @@
1
+Introduction
2
+============
3
+
4
+In the beginning there was Nova. It included volumes, networking,
5
+hypervisors, and scheduling.  Since then, Nova components have either
6
+been replaced (nova-network with Neutron) or forklifted out and enhanced
7
+(Cinder). In so doing, interfaces were defined for how Nova would
8
+continue to make use of these now-external services, but nova-compute,
9
+the place where the proverbial rubber meets the road, was left inside
10
+Nova. This meant that agents for Cinder and Neutron had to interact with
11
+nova-compute through the high level message bus, despite being right
12
+on the same physical machine in many (but not all) cases. Likewise,
13
+some cases take advantage of that, and require operator cooperation in
14
+configuring for certain drivers.
15
+
16
+This has led to implementation details leaking all over the API's that
17
+these services use to interact. Neutron and Nova do a sort of haphazard
18
+dance to plug ports in, and Cinder has drivers which require locking files
19
+on the local filesystem a certain way. These implementation details are
20
+leaking into public API's because it turns out nova-compute is actually
21
+a shared service that should not belong to any of the three services,
22
+and which should define a more clear API which Nova, Cinder, and Neutron,
23
+should be able to use to access the physical resources of machines from
24
+an equal footing.
25
+
26
+proposed next steps
27
+===================
28
+
29
+ * Produce an accurate analysis on the current state of nova-compute's
30
+   interaction with other OpenStack services.
31
+
32
+ * Produce a cross-project spec for moving nova-compute out of Nova
33
+   and defining an API for it that meets the needs of all other projects.

Loading…
Cancel
Save