Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-10-09 Thread SuichII, Christopher
Interesting. I'm not sure how I missed this thread... I'll try to chime in where I can, then. However, everything going on in here sounds like work for post-4.3, but if we are adding revert volume snapshot to 4.3, we will need a solution to that before then. It seems like the idea I've got for t

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-10-09 Thread John Burwell
Kelven, As I stated in my proposal, I think it is important to recognize the distinction between components that control/interact with infrastructure and components that represent orchestration abstractions/mechanisms within the management server. Currently, these two concepts are conflated --

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-09-09 Thread Kelven Yang
John, I understand. The effort we did in 4.1 was mainly to free developers from the needs to work at low-level plumbing layer, prior to 4.1, not every developer knows how to modify ComponentLocator safely, switching to a standard framework can let us focus on Cloud operating business logic. Break

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-09-07 Thread Marcus Sorensen
There has been much discussion recently on the board about refactoring/rearchitecting. There are some great ideas being thrown around, but I would like to see a focus on testing prior to any of this work, so we can see what breaks after the major changes. It would be nice if we could dedicate a wh

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-26 Thread Darren Shepherd
John, I mentioned before I'd been thinking up some ideas that go along with some of the things you've proposed here. I'm working through a lot of different ideas right now, but I've thrown up some notes in a totally random part of the CloudStack wiki. Take a look, this is a complete work in

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-26 Thread Daan Hoogland
I could give inline answers, but let's not waste to much more time. One point I would like to make is that the live-cycle functions that driver writers implement take care of how (in what state) instances are stopped. Your point on restricting dependencies is valid and a real concern. And to not

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-25 Thread John Burwell
Kelven, Please don't take my proposal as a criticism of the approach taken in 4.1. I think the current model is a big improvement over the previous approach. Given the time constraints and ambitions of that work, I think it was a solid, pragmatic first step. I believe we are at a point to as

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-25 Thread John Burwell
Daan, I think I mentioned in my proposal to defer hot loading/unloading to a later release. It is a hard issue, and not required to address the current pain points. Thanks, -John On Aug 25, 2013, at 7:43 AM, Daan Hoogland wrote: > It seems I am the only one not sharing your reservations reg

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-25 Thread John Burwell
Darren, Please see my responses in-line below. Thanks, -John On Aug 21, 2013, at 11:42 AM, Darren Shepherd wrote: > I also agree with this. Spring XML should always be treated as code not > really configuration. It's not good to have a sysadmin touch spring config > and frankly it's just

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-25 Thread John Burwell
Prasanna, Generally, Spring configuration files should be packaged in their associated JARs with property substitution for configurable items (e.g. connection pool min and max sizes). Unfortunately, Spring does not allow component wiring to be modified through property files. Since plugins ar

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-25 Thread John Burwell
Daan, Please see my responses in-line below. The TL;DR is that I am extremely skeptical of the complexity and flexibility of OSGi. My experience with it in practice has not been positive. However, I want to focus on our requirements for a driver mechanism, and then determine the best impleme

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-25 Thread Daan Hoogland
It seems I am the only one not sharing your reservations regarding OSGi, so let's go for it, John. I would personally try to not bother with the hot-loading and -unloading of drivers and create a install and a drivers directory for all running processes, where these will be checked upon starting

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-22 Thread Kelven Yang
Spring is not meant to be used as a solution for run-time "plug-ins". Darren is correct that Spring XML should be treated as code (ideal place for it is the resource section inside the jar). Why we end up the way now is mainly for practical reason. Since most of our current pluggable features are n

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-21 Thread Darren Shepherd
I also agree with this. Spring XML should always be treated as code not really configuration. It's not good to have a sysadmin touch spring config and frankly it's just mean to force them to. I would ideally like to see that registering a module is as simple as putting a jar in a directory.

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-21 Thread Prasanna Santhanam
On Tue, Aug 20, 2013 at 05:43:17PM -0400, John Burwell wrote: > Leaky Abstraction: Plugins are registered through a Spring > configuration file. In addition to being operator unfriendly (most > sysadmins are not Spring experts nor do they want to be), we expose > the core bootstrapping mechanism

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-21 Thread Daan Hoogland
John, You do want 'In-process Installation and Upgrade', 'Introspection' and 'Discoverability' says that you do want flexibility. You disqualify Spring and OSGi on this quality however. If we can restrict the use of bundles to those that adhere to some interfaces we prescribe I don't think either

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-21 Thread John Burwell
Daan, I have the following issues with OSGi: Complexity: Building OSGi components adds a tremendous amount of complexity to both the building drivers and debugging runtime issues. Additionally, OSGi has a much broader feature set than I think CloudStack needs to support. Therefore, driver

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread Amit Das
Hi John, This is really good thinking on the future of cloudstack driver/plugin architecture. I would be very happy if we can decouple the ACS releases from vendor specific releases. I also agree on the research & experiments (POCs, tools) that needs to be undertaken to conclude if decoupled dri

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread Daan Hoogland
John, Nice work. Given the maturity of OSGi, I'd say lets see how it fits. One criteria would be can we limit the bundles that may be loaded based on what Cloudstack supports (and not allow loading pydev) if not we need to bake our own. But though I think your work is valuable I disagree on desig

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread Darren Shepherd
Sure, I fully understand how it theoretically works, but I'm saying from a practical perspective it always seems to fall apart. What your describing is done excellently in OSGI 4.2 Blueprint. It's a beautiful framework that allows you to expose services that can be dynamically updated at runti

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread John Burwell
Darren, My response does hand wave two important issues -- hot code reloading and PermGen leakage. These are tricky, but well trod issues that can be solved in variety of ways (e.g. instrumentation, class loaders, OSGi). It would require a some research/experimentation to determine the best a

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread John Burwell
Darren, Actually, loading and unloading aren't difficult if resource management and drivers work within the following constraints/assumptions: Drivers are transient and stateless A driver instance is assigned per resource managed (i.e. no singletons) A lightweight thread and mailbox (i.e. actor

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread Darren Shepherd
I know this isn't terribly useful, but I've been drawing a lot of squares and circles and lines that connect those squares and circles lately and I have a lot of architectural ideas for CloudStack. At the rate I'm going it will take me about two weeks to put together a discussion/proposal for t

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread Mike Tutkowski
I agree, John - let's get consensus first, then talk time tables. On Tue, Aug 20, 2013 at 4:31 PM, John Burwell wrote: > Mike, > > Before we can dig into timelines or implementations, I think we need to > get consensus on the problem to solved and the goals. Once we have a > proper understandi

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread John Burwell
Mike, Before we can dig into timelines or implementations, I think we need to get consensus on the problem to solved and the goals. Once we have a proper understanding of the scope, I believe we can chunk the across a set of development lifecycle. The subject is vast, but it also has a far re

Re: [DISCUSS/PROPOSAL] Upgrading Driver Model

2013-08-20 Thread Mike Tutkowski
Hey John, I think this is some great stuff. Thanks for the write up. It looks like you have ideas around what might go into a first release of this plug-in framework. Were you thinking we'd have enough time to squeeze that first rev into 4.3. I'm just wondering (it's not a huge deal to hit that r