[openstack-dev] Kilo Cycle Goals Exercise

Chris Dent chdent at redhat.com
Sun Sep 7 15:13:06 UTC 2014


On Wed, 3 Sep 2014, Joe Gordon wrote:

> Have anyone interested (especially TC members) come up with a list of what
> they think the project wide Kilo cycle goals should be and post them on
> this thread by end of day Wednesday, September 10th. After which time we
> can begin discussing the results.

I think this is a good idea, but the timing (right at the end of j-3)
might be a problematic. I'll jump in, despite being a newb; perhaps
that perspective is useful. I'm sure these represent the biases of my
limited experience, so apply salt as required and please be aware that
I'm not entirely ignorant of the fact that there are diverse forces of
history that lead to the present.

Things I'd like to help address in Kilo:

* Notifications as a contract[1], better yet as events, with events
   taking primacy over projects.

   The main thrust of this topic has been the development of standards
   that allow endpoints to have some confidence that what is sent or
   received is the right thing.

   This is a good thing, but I think misses a larger issue with the
   notification environment.

   One of my first BPs was to make Ceilometer capable of hearing
   notifications from Ironic that contain metrics generated from IPMI
   readings. I was shocked to discover that _code_ was required to make
   this happen; my newbie naivety thought it ought to just be a
   configuration change: a dict on the wire transformed into a data
   store.

   I was further shocked to discover that the message bus was being
   modeled as RPC. I had assumed that at the scale OpenStack is
   expected to operate most activity on the bus would be modeled as
   events and swarms of semi-autonomous agents would process them.

   In both cases my surprise was driven by what I perceived to be a bad
   ordering of priority between project and events in the discussion of
   "making things happen". In this specific case the idea was presented
   as _Ironic_ needs to send some information to _Ceilometer_.

   Would it not be better to say: "there is hardware health information
   that happens and various things can process"? With that prioritization
   lots of different tools can produce and access the information.

* Testing is slow and insufficiently reliable.

   Despite everyone's valiant effort this is true, we see evidence all over
   this list of trouble at the level of integration testing and testing
   during the development processing.

   My own experience has been that the tests (that is the way they are
   written and run) are relatively okay at preventing regression but
   not great at enabling TDD nor at being a pathway to understanding
   the code. This is probably because I think OO unittests are wack so
   just haven't developed the skill to read them well, but still: Tests
   are hard and that makes it harder to make good code. We can and
   should make it better. Facile testing makes it a lot easier to do
   tech debt cleanup that everyone(?) says we need.

   I reckon the efforts to library-ize tempest and things like Monty's
   dox will be useful tools.

* Containers are a good idea, let's have more of them.

   There's a few different ways in which this matters:

   * "Skate to where the puck will be, not where it is" or "ZOMG VMs
     are like so last decade".
   * dox, as above
   * Containerization of OpenStack services for easy deployment and
     development. Perhaps `dock_it` instead of `screen_it` in devstack.

* Focus on user experience.

   This one is the most important. The size and number of projects that
   assemble to become OpenStack inevitably leads to difficulty seeing
   the big picture when focusing on the individual features within each
   project.

   OpenStack is big, hard to deploy and manage, and challenging to
   understand and use effectively.

   I _really_ like Sean Dague's idea (sorry, I've lost the ref) that
   OpenStack needs to be usable and useful to small universities that
   want to run relatively small clouds. I think this needs to be true
   _without_ the value-adds that our corporate benefactors package around
   the core to ease deployment and management.

Or to put all this another way: As we are evaluating what we want to do
and how we want to do it we need to think less about the projects and
technologies that are involved and more about the actions and results
that our efforts hope to allow and enable.

[1] http://lists.openstack.org/pipermail/openstack-dev/2014-September/044748.html

-- 
Chris Dent tw:@anticdent freenode:cdent
https://tank.peermore.com/tanks/cdent



More information about the OpenStack-dev mailing list