Archive for category Cloud Computing
What It Means to be OpenStack
Posted by admin in Cloud Computing on 14Jun11
What does it mean to be OpenStack?
OpenStack has become something of a lightning rod for media attention – attention which, sadly, focuses reliably on the fear, uncertainty and doubt that any disruptive ecosystem will naturally produce. Much like the eddies that form on the edges of fast-moving water, this open-source project throws off a fair amount of confusion, conjecture and rumor.
I’m hoping to get in front of the upcoming round of media frenzy (which is certain to spin out as soon as someone from the Register, CIO Magazine or Network World bothers to skim recent posts to the OpenStack-PPB list), and try to answer a simple question – what does it mean for a project to be “part of” OpenStack?
Ignoring, for just a moment, the eloquent-but-high-level mission statement of the OpenStack project, I will make three simple observations:
1. OpenStack means: a cloud operating system that meets Rackspace’s needs.
2. OpenStack means: a cloud operating system that meets NASA’s needs.
3. OpenStack means: a community effort that meets the needs of its’ members.
While the relative *order* of these observations is likely to provoke outrage from many members of the OpenStack community, I think it’s still reasonably fair to describe it in this fashion – if OpenStack ceases to meet the needs of Rackspace or of NASA, the founding partners, then it will cease to be OpenStack.
What constraints does this put on new projects?
Many.
What has been talked about, at length and by many of the most prominent members of our community, is scale. Rackspace (and indeed many others in our ecosystem) is a service provider, with (at least) tens of thousands of customer accounts. OpenStack has got to scale.
Also discussed, at least in the earliest days, is development philosophy and methods. No, I’m not talking about “development in the open” (although I think it’s generally a good idea), I’m talking about agile, fail-fast, and test-driven development. I’m talking about continuous integration and good unit test coverage. I’m talking about a working-code-trumps-designs-or-promises attitude.
One thing that *hasn’t* been discussed much, is language. Or more precisely, language consistency. Yes, a foolish consistency is the hobgoblin of little minds – and yet, I think it’s no accident that OpenStack is, thus far, 98% Python (plus or minus a smattering of bash).
I sit on the OpenStack Project Policy Board, and I’m getting ready to make myself fairly unpopular. There are a *large* number of projects in the “affiliated with OpenStack” phase, and a few of them are gearing up to apply for official OpenStack status.
Which brings me back to what it *means* to be OpenStack, and particularly NASA’s needs.
(DISCLAIMER: I no longer work for, at, or in any particular association with NASA. I’m speaking merely from my historical position as the architect of the NASA Nebula project, the precursor to OpenStack.)
NASA, like any US Federal agency, is under near-constant IT attack. Far more than any service provider, we have had to focus on the security of our platform. No, I’m not saying that python is more secure than any other language (and NASA has had its share of security issues with EVERY language and platform) – simply that limiting OpenStack to *as few languages as necessary* keeps the strike surface smaller. It keeps system complexity down. And it makes OpenStack monitoring and maintenance a more straightforward process.
Which brings me back to the process of becoming unpopular.
To the best of my knowledge, there are “related” projects in:
- PHP
- JAVA
- Erlang
- Ruby
- C++(?)
Every one of these projects will be considered on the basis of its own merits, by the Project Policy Board and in good time. But for my part, I’ll be looking at security. I’ll be looking at test coverage. I’ll be looking at scale and, yes, I’ll be looking at language.
This applies equally to new project submissions, as well as to legacy projects from both Rackspace and NASA – even a few that I had always thought *were* part of OpenStack.
Oh, and a final thought – to me, OpenStack has always been about being *pythonic*, even in the rare case when we weren’t (yet) writing Python. Which means, as opposed to Perl, there really is “one way to do it”. I love the fact that OpenStack supports every possible hypervisor – but I hate the fact that the test coverage is not equal for each. I love that we have several (many?) different network models available – but I find the current proposal to write, big-design-up-front, a new-from-scratch OpenStack network component misguided at best, and counter-productive at worst. Ditto for the efforts to write a new-from-scratch replacement for the nova-volumes component. Again back to the principles of agile, test-driven development – unless there’s something fundamentally *wrong* with the architecture of the existing components, this strikes me as a bit of NIH syndrome. Iterative improvement, a long set of carefully reviewed changes to an existing codebase, will keep code quality high and interface pain down.
So if I vote against your project tomorrow – it’s not personal. Really. I’ll be voting against some of my own as well – and yes, that really *is* as weird as it sounds.
Build something you care about
Posted by admin in Cloud Computing, entrepreneurs on 14Feb11
Many of you are probably expecting me to say something about my new venture, Piston. You might be expecting some discussion of the Rackspace acquisition of Anso Labs, or why I left Anso. In fact, you might (quite reasonably) be expecting me to talk about why I left NASA.
Too bad.
Have I lost my passion for open source, open data, open science or open government?
Certainly not.
I’m still on the OpenStack Project Oversight Committee, and I plan on kicking ass, now more than ever. At the same time, I have never seen a conflict between a capitalist agenda, and a social agenda – and I’ve now got a great occasion to prove that.

While I was tripping around Italy over new years, I had a chance to tour Pompeii with my children. It’s a great place to pause for a moment and appreciate permanence, and the idea of building something to last.
What are *you* working on? If it was dug out of the ashes 1,000 years from now, would you feel proud of it?
OpenStack – Where we’re going, and why
Posted by admin in Cloud Computing on 21Jul10
I didn’t sleep much on Sunday night. By the time I headed for bed, the news was out, and the twittubes were flooded.
Desperate to get sleep, but I’m terrified to wake up to 1,000 new bug reports. It’s like streaking the quad, but with code. #openstack @jmckenty
There was a video up from an interview I had given the week before.
There were over 100 developers camped out in the #openstack channel, asking probing questions. Most of them were politely worded versions of: “What the hell were you thinking?”
Patches started coming in. Then a New York Times blog post. More bug reports. More patches. More press.

Original Nebula Logo
I’d love to say that we shared a moment of solidarity as a team, toasted ourselves, and wrote more code. But truthfully, half of the NASA Nebula team were on a red-eye flight to DC, to run another set of training workshops for new Nebula users. Some were holed up with the legal teams, trying to figure out how to take the Nova example (brute-force software release) and use it to reshape NASA’s open source software release policy. Vish was bravely manning IRC, answering the flood of questions.
And in a classic case of nostalgia, I started thinking back over the crazy history of this “thing” that has had more names, than developers.
The code name of the “compute” component in Open Stack is called “Nova”. While, if you had the appropriate access to NASA internal systems, you could find early references to the “Novae” task in Nebula development (which was originally the PXE and Puppet-based configuration management system we used for deploying Nebula to physical hardware), the earliest public record of nova is this:
“NASA Nebula Bonding Lunch – We Are the Nova”
Which is possibly one of the worst photos of me on the internet. C’est la via.
While in Austin, Texas last week, at the first Open Stack Developer’s Summit, I had an opportunity to give a brief presentation about NASA Nebula – why we were in the Cloud business, some of the history that led us to this point, etc. While I never prepare slide decks to be standalone (I prefer to use them as audio-visual aids to the substance of the event, which is obviously paying attention to me), you can have a look at the whole thing:
It was based, loosely, on an internal memo I sent a while back to some members of the Nebula team (excerpts below):
There are, literally, a ton of people on the Nebula team now. Which is awesome. But it also mean there are dozens of you that I’ve never had a chance to interact with personally, who may have missed a lot of our early (ancient) discussions about WHY we’re all working so damn hard.It’s not about the money.Which is to say, Nebula is not, primarily, about cost recovery. It’s not (mostly) about saving money, for missions, projects, or the Agency at large.And on the flip side, we’re not DOING this just because it’s our job. Nebula is not the place for “work to rule” – if you don’t wake up every morning with a burning desire to get to your keyboard and roll the Nebula ball forward, then there are honestly better places and projects for you to be working on.It’s not about being on the “cutting edge“.We get a ton of press on Nebula, most of it excited over how innovative NASAhas become, how we’re embracing new technologies, how we’re leading the government forward. And all of that is great – but that’s not why we’re doing it. This is not innovation, for the sake of innovation.It’s about the Science.I haven’t really been at NASA long enough to have a good grasp of its long and illustrious history. So in the same fashion that I get away with practicing Computer Science without having formally studied it, I have to work from first principles. In this case, the first principles are a happy little document titled, the “Space Act” (Specifically the Declaration of Policy and Purpose, section 102):Sec. 102. (a) The Congress hereby declares that it is the policy of the United States that activities in space should be devoted to peaceful purposes for the benefit of all mankind.(7) Cooperation by the United States with other nations and groups of nations in work done pursuant to this Act and in the peaceful application of the results thereof;(8) The most effective utilization of the scientific and engineering resources of the United States, with close cooperation among all interested agencies of the United States in order to avoid unnecessary duplication of effort, facilities, and equipment;So I’d just like to point out that the mission statement of the Agency, includes specifically section 102(d)(8) – is to cooperate with other agencies in order to make effective utilization of scientific and engineering resources. AKA… Cloud Computing.Open Source, by which I mean participation in an open source process, as well as the release of source code under an open license, is an activity NASA can partake of under section 102(a). It is way more meaningful than most of the rest of what we’re doing.
