|
|
Subscribe / Log in / New account

Development

OpenStack Designate woes

By Jake Edge
February 15, 2017

The move to the more-inclusive "big tent" model for OpenStack has had some benefits for the umbrella project and many of its sub-projects. But at least one smaller project, Designate, which is a DNS as a service (DNSaaS) component, has not been thriving under that model. DNSaaS provides an API to multiple tenants in a cloud so that they can modify and update the DNS records they are using. Graham Hayes posted a lengthy message to the openstack-dev mailing list (and on his blog) that described the problems the project is having.

Hayes's "tl;dr" for the post should be worrisome to users of the component: "Designate is not in a sustainable place." The project has always been small and DNS is not seen as shiny, pretty, or cool, he said, so it doesn't necessarily attract lots of contributors. Early on, though, there were two organizations that needed DNSaaS for their public clouds, so they were willing to fund development, but things have changed:

Internal priorities within companies sponsoring the development changed, and we started to shed contributors, which happens, however disappointing. Usually when this happens if a project is important enough the community will pick up where the previous group left off.

We have yet to see many (meaningful) commits from the community though. We have some great deployers who will file bugs, and if they can put up patch sets - but they are (incredibly valuable and appreciated) tactical contributions. A project cannot survive on them, and we are no exception.

He went on to say that one more change of corporate direction could leave Designate with no core developers who are paid to work on the project. That is a precarious state for any project, especially if no real community has built up around it as seems to be the case here. But there are other problems as well.

The big tent change, which allowed sub-projects to more easily become part of OpenStack, "was a good thing for the OpenStack project as a whole [but] it had quite a bad impact on us", he said. Effectively, much of the cross-project effort for things like documentation or QA that went into helping with integration of sub-projects prior to a release has dried up. Those teams are largely focused on the larger core sub-projects (e.g. the Nova compute component, the Neutron networking component) and simply don't have the time for the smaller projects. The Designate team had to figure out many of the pieces it needed to implement to integrate with the OpenStack-wide testing frameworks (e.g. Tempest and Grenade), which "took time from other vital things like docs, functional tests and getting designate into other tools".

Ultimately, those problems show up in the information presented in the project navigator entry for Designate, Hayes said, which makes the project less attractive to users. He ended his post with a call for help. He asked those who are using Designate in production, which is around 20% of OpenStack deployments according to user surveys, to contribute their tooling, documentation, and expertise to the project. He also would like to see more help from the cross-project teams for integrating with the other OpenStack components. The blog post also contained two photos that documented the decline of the team (from nine to four) and noted that the next project teams gathering (PTG) will only have two Designate team members present.

As might be guessed, that sparked some discussion on the list. Several thanked Hayes for posting and agreed with many of his points. Jay Pipes pointed out that the role change for the cross-project teams was anticipated by the technical committee (TC) when the big tent plan was being discussed. That meant that the focus for those teams shifted "from a 'we do this work for you' role to a 'we help you do this work for yourself' role". He also suggested that one of the best ways to help get the project back on track would be to get the documentation in good order:

If I had one piece of advice to give Designate, it would be to prioritize getting documentation (both installation as well as dev-ref and operational docs) in good shape. I know writing docs sucks, but docs are a springboard for users and contributors alike and can have a multiplying effect that's difficult to overstate.

Hayes, too, remembered those TC discussions, but from his perspective the "we help you" part has not really materialized. He has reached out, he said, to no avail: "[...] it can be very hard to motivate yourself to work on things when everytime you ask for help you get nothing, other than a link to the docs page you have read a 100 times". He also noted that part of the reason the Designate documentation is a mess is that the project has not figured out how to organize its documentation within the larger OpenStack documentation framework. A response from the documentation project technical lead (PTL), Alexandra Settle, seems like it may lead to a solution to the latter problem, at least.

OpenStack QA team member Andrea Frittoli noted that the team is "committed to serve every single project in [the] big tent community". The team is small, so it can't implement things for other projects, but it can help, Frittoli said. But Hayes pointed out that it is not uncommon for the QA team to simply fix problems for some of the larger project when they are encountered, while the smaller projects do not even find out about them until much later. He described an incident that happened on February 13:

Grenade was being tested for Ocata -> Pike upgrade, before the jobs on master was updated. As part of this change Keystone moved from v2 to v3.

This caused an issue in 2 in-tree grenade projects (Nova and Cinder) due to a behavior difference in the OpenStack CLI

This issue was fixed in tree for these projects, before they knew there was a problem, but projects that have grenade plugins didn't find out until our gate failed, and started blocking patches.

This then meant 30-40 mins or so of debugging the logs, finding the bug, writing a fix, then waiting for the the patch to merge.

The problem was caused by a bug in the Keystone authentication component, but the Designate project never heard about it until later. A simple heads-up email would have made all the difference, Hayes said. It is understandable that the QA team focuses on the core services in OpenStack, but that should not mean that the other projects in the tent get short shrift.

TC member Doug Hellmann brought up the larger issue of how to move projects from getting contributions only from interested vendors to a more sustainable community approach:

I think we have several projects that would benefit by transitioning from relying solely on vendor contributions to building up the deployer/user contributor base. That's a relatively new approach for some parts of the OpenStack community, but it's common elsewhere in open source projects. The shift is likely to mean some changes in the way we organize ourselves, because it may not be reasonable to assume user-contributors have large amounts of time to focus on long review cycles, traveling to sprints, or the other intensive activities that are part of our current routine.

Hayes agreed with Hellmann's assessment and noted that "how we work does make things difficult for user contributors to become key contributors to a project". Just the amount of world-wide travel required to attend the PTG meetings is probably enough to put off many smaller organizations and probably all volunteers/hobbyists. That stands in contrast to other free-software projects, where an email address and a willingness to contribute can be enough to become a key player in the project.

Open-source projects that rely on a single company, or even a small set of companies, have certainly run into problems before and undoubtedly will again. For an umbrella project like OpenStack, though, that can lead to important pieces of functionality eventually falling by the wayside. There was some discussion in the thread about adopting components from other cloud projects (Kubernetes was mentioned a few times), but Hayes contends that there is no real replacement for the functionality that Designate provides. So we will have to wait and see if other users of the component will step up and provide people and resources to help the project back onto a sustainable path.

Comments (1 posted)

Brief items

Development quote of the week

yes, I'm sure there's at least one person out there that uses the touchpad upside down in front of the keyboard and is now angry that libinput doesn't allow arbitrary rotation of the device combined with configurable dwt. I think of you every night I cry myself to sleep.
Peter Hutterer

Comments (3 posted)

KDE updates

This week KDE has released updates to KDE Applications 16.12.2, KDE Frameworks 5.32.0, and Plasma 5.9.2.

Comments (none posted)

PostgreSQL 9.6.2, 9.5.6, 9.4.11, 9.3.16 and 9.2.20 released

The PostgreSQL Global Development Group has released an update to all supported versions of its database system, including 9.6.2, 9.5.6, 9.4.11, 9.3.16, and 9.2.20. "This release includes fixes that prevent data corruption issues in index builds and in certain write-ahead-log replay situations, which are detailed below. It also patches over 75 other bugs reported over the last three months."

Full Story (comments: none)

TensorFlow 1.0 released

The TensorFlow 1.0 release is available, bringing an API stability guarantee to this machine-learning library from Google. "TensorFlow 1.0 introduces a high-level API for TensorFlow, with tf.layers, tf.metrics, and tf.losses modules. We've also announced the inclusion of a new tf.keras module that provides full compatibility with Keras, another popular high-level neural networks library."

Comments (none posted)

Newsletters and articles

Development newsletters

Comments (none posted)

Malcolm: Testing… Testing… GCC

David Malcolm takes a look at the testing going into the upcoming GCC 7.0 release. "The other new approach is in unit-testing: GCC’s existing testing was almost all done by verifying the externally-visible behavior of the program, but we had very little direct coverage of specific implementation subsystems; this was done in a piecemeal fashion using testing plugins. To address this, I’ve added a unit-testing suite to GCC 7, which is run automatically during a non-release build. Compilers use many data structures, so the most obvious benefit is that we can directly test corner-cases in these. As a relative newcomer to the project, one of my “pain points” learning GCC’s internals was the custom garbage collector it uses to manage memory. So, I’m very happy that the test suite now has specific test coverage for various aspects of the collector, which should make the compiler more robust when handling very large input files."

Comments (none posted)

Page editor: Rebecca Sobol
Next page: Announcements>>


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds