> Another alternative for achieving this (without adding the per-hypervisor
> logic to CloudStack itself) might be to build a framework for plugging in 
> best-
> of-breed update tools for the various hypervisors (and bare metal servers).
> Example: provide the KVM update feature via a combination of puppet
> manifests and mcollective instructions, where CloudStack isn't responsible
> for the actual update tracking or installation of updates, merely calling an
> appropriate external tool to query status and force policy updates.  A simple
> command line specification for inputs and outputs could allow for various
> environments to have scripts that drive the process that's most appropriate
> for their specific conditions.
> 
> Thoughts?

+1

I don't see CloudStack as completely just orchestration.  It should be the 
entire stack of tools to make cloud work including management.  However, I 
don't see any reason to normalize this functionality into one call and provide 
different adapters for that call.  

The key is to decouple orchestration from these services.  Therefore, I think 
it makes more sense for this host update feature to be self-contained within a 
plugin.  With a plugin, you can add APIs to cloudstack's APIs via the 
PluggableService interface to enact the way to update a specific type of 
hypervisor.

For example, I can see the following for XenServer.

Cloud-plugin-xenserver.jar contains the following interfaces implemented
  - PluggableService: to introduce APIs to self-manage.  For example, for the 
administrator to invoke to see if there are updates to XenServer or to set a 
periodic update check policy.
  - HypervisorGuru: to implement the provisioning needed for hypervisors when a 
VM is started
  - ServerResource: to implement the actual interface to different versions of 
xenserver
  - Discoverer: to implement different ways to add different versions of 
XenServer into CloudStack.

You can even write cloud-plugin-xenserver-56, cloud-plugin-xenserver-60, etc to 
have different plugin jars to work with different versions of the XenServer.

By doing this, then KVM or VmWare plugins can introduce its own functionalities 
and features.


--Alex
  

Reply via email to