Lorin Hochstein

Ramblings about software, research and other things

Constraints and complex software deployment

leave a comment »

OpenStack can be tricky to get up and running: it’s composed of multiple services, some of which are broken out into separate projects (nova, glance, keystone, novaclient), and each has multiple external dependencies. Plus, the various Linux distributions do things differently, so what works on Ubuntu may fail on, say, RedHat Enterprise Linux. For example, someone on our team just discovered that a problem was related to using the wrong version of the WebOb Python library (he was using 1.2, and it worked when reverting back to 1.1).

It would be useful if there was a very easy way to capture these constraints, (e.g.: WebOb != 1.2), and then run a checker before starting things to up to see if any constraints were violated. Maybe annotate the constraints with some metadata (e.g., date, version of nova and keystone used, OS) that could also be checked, to give a heuristic about how likely it is this contraint applies in the current context. These contraints would have to be:

  • Easy to capture incrementally (so people would actually document them once they discovered them)
  • Easy to check (so other people could actually use them)
  • Easy to update (so that they could be removed or invalidated when they no longer applied)

Basically, something akin to the checks done by the configure script generated by GNU autootools, but simpler for an end-user to update.

Advertisements

Written by Lorin

December 16, 2011 at 11:41 am

Posted in research, software

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: