Tuesday, May 26, 2015

Introducing - OpenStack DefCore

When you pick a movie to watch, how do you decide which one to watch?  Do you base on the movie title, story or who the main cast is?

One time I went to watch a movie because one of my favorite character was listed as the main cast.  Two minutes into the movie my favorite character was killed in the movie.  His twin brother, son not his ghost never came back into the movie.  I was extremely disappointed.

To avoid this problem of product not performing as advertised in the OpenStack world where some commercial product is using the OpenStack trademark and in fact not delivering OpenStack functionality or characteristic. The OpenStack Foundation is forming a committee with the purpose of defending the OpenStack trademark for commercial product claiming to be powered by OpenStack by defining - DefCore.

image source: http://ddf912383141a8d7bbe4-e053e711fc85de3290f121ef0f0e3a1f.r87.cf1.rackcdn.com/openstack.jpg

What is DefCore?
DefCore establishes the required minimum feature set for OpenStack products.  As mentioned in the above paragraph, this applies to commercial products only.  According to Rob Hirschfeld(@zehicle) a member of the OpenStack Foundation, DefCore is a process that defines:
  1. capabilities
  2. designated sections of code
  3. must-pass tests
These definitions use community resources and involvement to drive interoperability by creating the minimum standards of products labeled as - OpenStack™

DefCore Guiding Principles
While this is still in working process by the OpenStack Foundation DefCore committee, currently there are a list of "guiding principle" listed in GitHub:
  1. Implementations that are Core can use OpenStack trademark (OpenStack™)
  2. Core is a subset of the whole project
  3. Core definition can be applied equally to all usage models
  4. Claiming OpenStack requiring use of designated upstream code
  5. Projects must have an open reference implementation
  6. Vendors may substitute alternate implementations
  7. Tests can be remotely or self-administered
  8. A subset of tests are chosen by the Foundation as "must-pass"
  9. The OpenStack board owns the responsibility to define 'core' – to approve 'musts'
  10. OpenStack Core means passing all "must-pass" tests
 Or in a pictorial form:

 image source: https://github.com/openstack/defcore/blob/master/images/500px-Core_flow.png

At the OpenStack Vancouver summit, Jonathan Bryce at the keynote announced 16 companies has passed this test and is certified to bare the OpenStack label in their product.  These are the 16 companies that are certified:

"OpenStack DefCore Review 2014." OpenStack DefCore Review 2014. N.p., n.d. Web. 26 May 2015. 
"Openstack/defcore." GitHub. N.p., n.d. Web. 26 May 2015.