Wednesday, May 27, 2015

Is it worth investing time and money in OpenStack?

Last week I attended the OpenStack Vancouver summit. It was a good experience for me.

In the past, I attended Interop, PuppetConf, TechEd and Citrix Synergy. All these conferences I was able to obtain the full conference pass for free.

For the OpenStack Vancouver summit, I actually have to pay for the full conference pass (early bird fee is $600). As I have stated in my previous blog post, I think it is worth the investment to attend this OpenStack summit. I have also set for myself 2 objectives that I wanted to accomplished in attending this summit. The 2 objectives are:
  1. Get a jump start on OpenStack
  2. Meet people in the OpenStack community
So did I accomplished my objectives and was it worth the investment?

Getting a jump start on OpenStack
I believe I have achieved this objective.  I am now very comfortable in the entire commit process to GitHub, using etherpad to communicate as well as hopping onto IRC to talk to members of this open source community.  Currently I am working on my second bug fix in Neutron. It was fun setting up the development and testing environment.  I think I have installed Ubuntu 14.04 and DevStack at least 10 times.  As the idiom goes "Practice make perfect". I start to like my Dell XPS dual boot laptop more and more because of the speed and the long battery life.

Meeting people in the OpenStack community
I am not sure how to evaluate how I have accomplished this objective. I have met people in person that I know via social media and I passed out all my business card. I get to know a few people and exchanged Email addresses. I guess it takes time to get to know different people in the community.  I will try again if I ever have the chance to attend another OpenStack summit.

Unexpected accomplishment
There are, however, some unexpected things that I have accomplished by attending this summit.  I have signed up for the vBrownBag TechTalk and my topic was "What a beginner should know about OpenStack".  At first I prepare the presentation based on my OpenStack beginner series in which the target audience are developers.  Two days before the vBrownBag TechTalk I have changed the content such that the target audience are architects or IT managers that needs to make business decision.  I started to look at OpenStack from a business point of view instead of technical point of view.  I looked at "Total cost of ownership" and if OpenStack is "enterprise" ready.  This is a new angle on OpenStack that I have never explored before.
Due to the time constrain (I only get 10 minutes to present), I was a bit rush and was not able to communicate to the audience what I  prepared.  You can find my presentation here at YouTube.  This time I tried something new in my presentation.  I started to walk around during my presentation.  I have learned that presentation skill is also useful both internal and external of an organization.  I might not be a product marketing engineer or a technology evangelist, presentation skill is equally useful to talk to upper management on technical subject and their business values.
Another unexpected thing that I have accomplished is to attend the SwiftStack hands on workshop on Friday (May 22).  I get to deploy a swift node and to use cuRL to manage objects.  I was also able to get one of the nice SwiftStack t-shirt with the maple leave design by answering one of the question from the trainer.  At the conference, I went to the SwiftStack booth 4 times and every time the t-shirts are all gone.
 
Overall, I think attending this OpenStack summit in Vancouver is worth my investment and I am hoping to contribute more to this open source community and get to know more people in this community.



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:



Reference:
"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.

Monday, May 25, 2015

OpenStack Project Classification – a new direction


OpenStack is an open source software based cloud infrastructure. Some time it is also referred as the cloud OS. OpenStack is used to manage compute, storage and/or networking resources.
 

OpenStack comprises of different projects. Each project is to manage a specific portion of the cloud infrastructure and to provide the cloud consumer a service and sometime it is referred to “X As A Service” For example Nova is to manage the compute resources and is referred to as “Compute As A Service”.
 

The software for each of these projects resides on “https://github.com/openstack”. Developers use the software “git” to check out the source code, made modification, unit test and then check the code back into the repository.
 

At the inception of OpenStack, there are projects that are referred to as the “core” project – without them OpenStack will not run. As OpenStack progresses, it deploys a 3 tier model to classify different projects in OpenStack. The 3 different types of projects are:
  •     External
  •     Incubated
  •     Integrated
 image source: https://github.com/openstack/training-guides/blob/master/doc/upstream-training/source/_assets/04-02-lifecycle.png
Integrated projects
These are considered as the main components of OpenStack. The reason that they are referred to as integrated is because the are tested as a whole at the gate when code change s are checked in. OpenStack has a very systematic unit testing system. There are close to 18,000 unit test cases to test the integrated project as a whole system.
 

Incubated Projects
These are the projects that are on track to be come an integrated project for OpenStack. All projects has to be an incubated project before being promoted to being an integrated project.
 

External Projects
These project are considered as not being part of OpenStack at all but are good ideas or concepts that can be in-cooperated into OpenStack.  These projects can applied to become "incubated" project.
 

There is, however, one draw back with this incubate/integrated approach of project classification. New projects which are good concepts or useful to OpenStack but are in the external or incubated status does not get enough attention for developers to commit code changes to make them work or to fix bugs in these projects. 

OpenStack is now moving to a new way for project classification - the "Big Tent" approach.  In this "Big Tent" approach, projects are no longer being classified as incubated or integrated.  Instead, projects are assigned tags.  Existing tags can be found here.  Tags for the projects are assigned by Technical Committee in which it will co-ordinate to make sure various projects are 
  • aligned to the OpenStack mission, 
  • interoperable with each other 
  • projects will not overlap with each other trying to solve the same problem
  • development efforts are evenly distributed
There are a few challenges to this "Big Tent" approach.  The first one is for the cross functional groups such as documentation and infrastructure may be over loaded with more works as their works are not limited to the integrated projects only.  Another challenge is the number of unit test that needs to be run.  Currently unit test are only done for the integrated project.

I like the symbol of Tai Chi where inside black there is white and inside white there is black.  This is very true in the world that we live in - Everything has its pros and cons


Hopefully, this "Big Tent" approach is able to move OpenStack to a good and healthy direction.