[openstack-dev] [nova] Averting the Nova crisis by splitting out virt drivers

Daniel P. Berrange berrange at redhat.com
Fri Sep 5 09:05:29 UTC 2014


On Thu, Sep 04, 2014 at 02:56:04PM -0500, Kyle Mestery wrote:
> On Thu, Sep 4, 2014 at 5:24 AM, Daniel P. Berrange <berrange at redhat.com> wrote:
> > Proposal / solution
> > ===================
> >
> > In the past Nova has spun out its volume layer to form the cinder
> > project. The Neutron project started as an attempt to solve the
> > networking space, and ultimately replace the nova-network. It
> > is likely that the schedular will be spun out to a separate project.
> >
> > Now Neutron itself has grown so large and successful that it is
> > considering going one step further and spinning its actual drivers
> > out of tree into standalone add-on projects [4]. I've heard on the
> > grapevine that Ironic is considering similar steps for hardware
> > drivers.
> >
> I just wanted to note that this is a huge problem in Neutron, and it
> gets worse with each release as we add on more drivers and plugins
> which carry a maintenance cost without gaining any new reviewers from
> the companies who have the drivers. The rough plan I have for Neutron
> involves moving all non-Open Source drivers out of tree into a
> separate git repository. Your message has made me think that perhaps
> we in Neutron should go one step further and even remove the Open
> Source drivers, leaving the in-tree implementation as the only one
> there. Where we move these is the main issue. Given we have 20+
> drivers/plugins now, one git repository per driver/plugin won't scale,
> as we add 3-5 each cycle. So perhaps a single repository is the best
> idea here, with shared reviews from vendors across each other's code.

While I'll make no secret of my dislike for closed source software,
my feeling is that OpenStack as a project is explicitly welcoming
closed source software & vendors, not least by virtue of using a
more permissive Apache license instead of a strong copyleft license
like GPL. So given the project's stance, I'd not be in favour of
discriminating against drivers for closed source software.

In actual fact though, the premise of my proposal is the idea that
moving a driver out of tree will actually help its development by
giving its team much greater freedom & responsbility. So by only
moving out non-open source drivers, we'd arguably be putting the
in-tree open source drivers at a disadvantage ! I'm also very much
drawn to the idea that having separate repos will let us do more
targetted setup of CI test jobs, so each test job is actually
directly relevant to the code being tested.

I can see your concern about the number of drivers you have in
Neutron and the frequency with which more are added. We don't
have anywhere near this number in Nova and are not likely to
ever grow that much. If you did have 30 separate drivers and
thus 30 separate GIT repos though, the question to consider is
who is ultimately responsible for reviewing those drivers. If
each of those 30 drivers had their own self-organized team of
people the burden of 30 repos is not as bad as it seems, since
any one person would probably only be concerned with a couple
of git repos.  If you still see the single neutron core team
being responsible for each of those repos, then I can see that
having 30 repos would be a big burden. I don't think there is
a single right answer here for all OpenStack projects. It is
entirely conceivable that it might be best for Neutron to have
a single repo for a set of driver, while being best for Nova
to have a separate repo for each driver.


Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|



More information about the OpenStack-dev mailing list