[openstack-dev] [nova] Call for Help -- OpenStack API XML Support

George Reese george.reese at imaginary.com
Fri Aug 10 14:47:42 UTC 2012


Subtitle: Why George Is So Grumpy with the OpenStack Community These Days

-- Let's start off with a disclaimer about my motivations and role in OpenStack --
 
Personally, I think OpenStack is a wonderful set of technologies. It's a great foundation for something that can be something great in whole. I see the promise of it, and I want to see it realized. If I weren't in a start-up, I'd think about contributing to it. Though you probably would not want my code. I am really, really good with Java and C++ (and LPC, but that's another story), but I'm a marginal hack at Python even though I really like it as a language.

Professionally, I have no dog in this fight. enStratus is completely platform agnostic. We want to see our partners successful, and a number of our partners have bet on OpenStack. Therefore, we want to see OpenStack succeed because we want our partners to succeed. I'll also say that we want CloudStack, Eucalyptus, Joyent, and Nimbula to succeed as well. I think the market is big enough and the value propositions are divergent enough for several of the above to succeed. I personally don't care if vCloud goes down in flames, but enStratus supports vCloud as a platform as well.

Now, having said that, the biggest commercial point of pain for enStratus is the duration and effort for a customer PoC. We are wholly dependent on success at the cloud platform level before we can be a success at our level of the platform. We invariably spend more time and effort addressing issues with the underlying cloud platform than we do our software. None of the OpenStack competition is perfect and enStratus is definitely not perfect. But we're here on THIS LIST to discuss OpenStack and make OpenStack better. Right now, OpenStack costs me limited resources because of significant OpenStack issues in operability, stability, compatibility, and interoperability.

-- The Issues --

It's not about a disagreement over XML vs JSON or whether the Cider approach is superior to the current approach. I'll say straight up: I prefer JSON over XML and I prefer the Cider approach to the current approach. So if I agree with you guys on the technical merits, why the hell am I so viciously angry with you in the discussions?

It comes down to those four issues: operability, stability, compatibility, and interoperability

Operability - How easy it is to get OpenStack downloaded, installed, and functioning.
Stability - Got it running? How well does OpenStack continue to function in a predictable and proper manner.
Compatibility - Is my OpenStack environment compatible with ecosystem tools? When I upgrade, does my existing infrastructure go belly-up?
Interoperability - Can I leverage work done against OpenStack environment in another OpenStack environment, even if from different (but proximate) versions?

-> I know a number of corporate members of Open Stack are doing some great things when it comes to Operability. You all know about Dell's work on Crowbar. There are others I'm not at liberty to talk about right now. But the bottom line is, we're getting that problem licked even if it isn't completely licked at this point. The interesting point is that this area isn't being driven by the developers, it's being driven by the corporate members around their own distributions.

-> Essex did a lot for Stability. Sincere congrats to the community on this. But there's still a long ways to go.

-> Compatibility has ranged from non-existent to crappy.

-> Interoperability is just plain non-existent.

NOTE THAT TECHNICAL MERIT IS A COMPLETE NON-ISSUE IN MY OPINION. OpenStack is technically very, very good.

-- The Grumpiness --

As I noted above, the compatibility and stability issues cost me money. Worse, however, I think they are creating a very negative perception external to the OpenStack community and I don't think you guys see it. At least, I see no evidence that you guys see it. The Cider and XML items exemplify this.

But it's not as if I suddenly showed up and thought I'd start yelling at people. I've been engaging in conversations around OpenStack since before Bexar. Over time, I've gotten the impression that, when it comes to issues of stability, interoperability, and compatibility (especially on compatibility), no one is listening.

Actually, worse than that. That an echo-chamber has developed within these mailing lists in which criticism is considered being a "hater" and everyone believes that if their friends agree with them, then everyone should. The XML vs JSON topic is perfect.

Based on my experience with the enStratus API (and I am sure Rackspace has a similar experience with their old API), real people use XML. And these are not the kind of people who will be contributing to OpenStack or hanging on these mailing lists. Here are the reasons prefer XML:

* It's better at streamed parsing than JSON
* In some languages, the tools for parsing XML are significantly superior to those for parsing JSON
* Many enterprises have a very rich tool set around consuming XML and those same tools are non-existent for JSON

The type of people who are contributing to OpenStack probably don't much fit into caring about those items. I don't. That's fine. There's nothing wrong with that. There is something wrong, however, with extrapolating from your needs to universal needs.

Please don't get caught up here in a debate on XML vs JSON. My point above is that we have a significant sample bias in this community and the community repeatedly fails to recognize that sample bias. It seems to be that the only time it becomes evident is when I start yelling.

But it's more than just that. I feel that the people doing development in OpenStack in general, and at Nebula in particular, just don't give a damn about compatibility issues. I see absolutely no evidence that this is the case. Note how people really keep avoiding the compatibility issue in the XML and Cider discussions and try to take it back to technical merits and "who would this really hurt anyways"? The fact that there's code in OpenStack that doesn't generate XML at this point in the cycle is 100% unprofessional and unacceptable. The fact that there are few, if any, tests to validate XML is beyond unprofessional and entering clown territory. Those aren't ad hominems. You all know damn well that these two things in themselves aren't how software development is conducted in any serious organization.

I'm not claiming that 100% test coverage always exists and it's a shame that OpenStack only gets 99%. I'm the first to admit, enStratus doesn't have 100% test coverage and I'm not going to throw those stones. But we're talking about not bothering to write tests for XML at all because of lack of interest *and then using that as a justification for removing XML support*. That's just plain absurd.

That's clownish. It makes OpenStack look really, really, really bad.

Why, as an OpenStack customer, would I trust that OpenStack will support feature X that I like if the core requirement for that feature is developer interest?

Clownish.

This community needs to grow up with respect to the issues I have described here. And it needs to grow up fast.

I'm grumpy because this is now a crisis issue. And my attitude won't change until the situation improves. And every time I see developers driving a developer-focused agenda, I will be blunt as hell about it. Because the emperor has no clothes here and it's time to end the groupthink.

-George


--
George Reese (george.reese at imaginary.com)
t: @GeorgeReese               m: +1(207)956-0217               Skype: nspollution
cal: http://tungle.me/GeorgeReese   




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20120810/4dcbf0b0/attachment-0001.html>


More information about the OpenStack-dev mailing list