Tuesday, February 26, 2013

ApacheCon LiveBlog: CloudStack's Plugin Model

This is a live blog from ApacheCon that I'm attending this week.  This session is by Don Lafferty.

Usual Live Blog Disclaimer: This is more of a brain dump typing as fast as I can, please excuse typos, format, and coherent thought process in general.


  • Open Source Community Leadership Drives Enterprise-Grade Innovation is the opening bullet
    • Of course, CloudStack's plugin model permits this!
  • This presentation will be a case study for the addition of Hyper-V as a newcomer (meaning Don is a new comer) support into CloudStack - This shows where Don is coming from and challenges as he is getting started in this ecosystem
  • To be able to learn to plugin to CloudStack, you need to break it into pieces to make the learning curve more manageable: Hardware management (provisioning plugins), CloudStack Orchestration, Adapters (to bridge Orchestration & Provisioning) & Framework
  • Plugin serves two masters: Server component (java, adapter API's, RESTful API's, etc.) & Server Resource (Agent Proxy i.e KVM or Direct Connect i.e. Xen)
  • Follow the Apache Process for New Features:
    • Announce over mailing list
    • Publish Spec & Design
    • JIRA Ticket
    • Setup Dev Environment
    • Branch on github, use your own public branch
    • Submit changes to Review Board
  • Decide which wiki you want to use: Incubator Wiki (cleaner, simpler  or CloudStack Wiki (more in depth, harder to new comers) - DO NOT use the pre-Apache wiki!
  • Don recommends breaking the project into small steps to start just to learn the Apache process. Once you have the process down, then move onto more complex development
  • For the Hyper-V example he broke this into Phase 1 (talk over Message Bus to talk to an agent) and Phase 2 (WS-Management to the WMI layer)
  • Reuse and Repurpose rather than Rewrite!  (There is a ton of CloudStack code that exists, use it!)
  • Don discusses Phase One - He borrowed code from the KVM version of the agent and communicated over the message bus and combined with code from the Hyper-V plugin for OpenStack
  • Don went into some code examples and command examples - over my head :) - Take away, how do you want to structure the "conversation" between the management server and the agent.
  • Pay attention the development mailing lists and see if a development trend helps solve your issue.  (i.e. NFS to secondary storage in CloudStack, Hyper-V of course prefers an SMB connection, there was a project already going on to make this happen so no need to do that code)
  • Make Preparations for IP Clearance - These things take time and need to make sure the source code can be donated to the Apache Foundation to make sure everything is kosher from a legal standpoint.
  • Session wrapped up with Q&A around how much of the learning curve is Apache related vs. CloudStack related.  It is a "two headed monster" to get going.  You have to learn the process and you have to learn the product.  They go hand in hand.

No comments: