[openstack-dev] [all] Switching to longer development cycles
clint at fewbar.com
Thu Dec 14 06:55:31 UTC 2017
Excerpts from Ed Leafe's message of 2017-12-13 23:02:11 -0600:
> On Dec 13, 2017, at 5:44 PM, Clint Byrum <clint at fewbar.com> wrote:
> > One thing I've always admired about Swift was how immune to the cadence Swift
> > appears to be.
> As I've pointed out before , Swift is a whole 'nother thing.
> It does not have API interdependencies with anything else in OpenStack. It is free to do things its own way on its own schedule.
_this is exactly my point_
First, Swift has plenty of API interdependency. Swift consumes Keystone's
API just like everyone else. Swift also fronts a glance driver which is
optional to use. Trove backs things up to Swift.
The reason it doesn't feel like they're entangled with the rest of OpenStack
_is because they aren't_.
> The rest of OpenStack is what Nova originally was. It was split into many different project because of the sheer complexity of the tasks it had to perform. But splitting it up required that we occasionally have to make sure that we're all still working together well.
My entire point is that we should draw clearer lines around our API's and
admit that we have a ton of tight coupling that requires us to release
things in an integrated fashion.
While I agree, where we're at is a tightly coupled mess, what I don't agree
with is that the answer is to keep shipping the mess.
I've said this before and honestly, I got crickets back in Atlanta for
saying it, but nova-compute should be renamed 'hypervisor'. Anything that
needs to run on a hypervisor should be in this service's world, and not
in the respective projects. Each hypervisor host is an endpoint of this
API, placement being the service discovery mechanism for that endpoint.
Neutron and Cinder would be treated as first-class API consumers of
the hypervisor API. If you want to upgrade cinder, go ahead, as long as
the hypervisor API version you have is supported by Cinder, Cinder can
control the volumes on it.
Right now we just can't do that. We know they were split out and we let
them share a filesystem and a network namespace on nova-compute and keep
a tight ratchet on that poorly defined API by releasing everything from
neutron agents to brick versions in lock-step. As long as we do that,
we're stuck with a massive monolith of a product to ship, and that is
likely not serving our users.
More information about the OpenStack-dev