Return-Path: X-Original-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 14C13D139 for ; Thu, 15 Nov 2012 17:43:49 +0000 (UTC) Received: (qmail 44300 invoked by uid 500); 15 Nov 2012 17:43:48 -0000 Delivered-To: apmail-incubator-cloudstack-dev-archive@incubator.apache.org Received: (qmail 44268 invoked by uid 500); 15 Nov 2012 17:43:48 -0000 Mailing-List: contact cloudstack-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-dev@incubator.apache.org Received: (qmail 44258 invoked by uid 99); 15 Nov 2012 17:43:48 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Nov 2012 17:43:48 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of nour.mohammad@gmail.com designates 74.125.83.47 as permitted sender) Received: from [74.125.83.47] (HELO mail-ee0-f47.google.com) (74.125.83.47) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Nov 2012 17:43:43 +0000 Received: by mail-ee0-f47.google.com with SMTP id l10so1068131eei.6 for ; Thu, 15 Nov 2012 09:43:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=KWoU26pbnqQuPQuhhHTvFaMl937JJsZ1V9WHTEuZSjI=; b=DWZwUM2snRtFChIoagEvUsAZCVwsrb6sreF/rGu5juVnscvLr5yHV21gBICrK6JTAl NxFkuHFUN8C7X4AcS2tG/BdCPdqls6QXh4r4phEquXv7pS7m6Chy2KQPQCe9428SOG6v T9VK4s29MTPdojm/O6HrsYSbeVvQGp8J3Socp8lcuxZkCbyBi3Hd9e7hsDBktPFBnVGZ H6a94DvGbmWu2qscMwydDDO7f4fodiXnJt5x1U6EBdeOwdrC8KU1U7qU5vvQtYcLkJ1e 4Gs1QrZsWuAL3Wvuoq6XFeOzvwT+w/47OFGkFy4+AjOuEwVccGLRlVuQvP0tz/iE29IE +0xA== MIME-Version: 1.0 Received: by 10.14.203.69 with SMTP id e45mr5856126eeo.38.1353001402169; Thu, 15 Nov 2012 09:43:22 -0800 (PST) Received: by 10.14.125.202 with HTTP; Thu, 15 Nov 2012 09:43:21 -0800 (PST) Received: by 10.14.125.202 with HTTP; Thu, 15 Nov 2012 09:43:21 -0800 (PST) In-Reply-To: References: Date: Thu, 15 Nov 2012 18:43:21 +0100 Message-ID: Subject: RE: [DISCUSS] OSGi framework for plugins and more? From: Mohammad Nour El-Din To: cloudstack-dev@incubator.apache.org Content-Type: multipart/alternative; boundary=047d7b344100f4f8a404ce8c2f7e X-Virus-Checked: Checked by ClamAV on apache.org --047d7b344100f4f8a404ce8c2f7e Content-Type: text/plain; charset=ISO-8859-1 sounds like a good plan. allow me to brief what has been said: 1- disaggregatio of ACS into a set of services which are accessed restfully 2- the components of these services can be implemented as OSGi or at least OSGi ready any missing points ? additional ones ? other insights ? Sent from my Samsung Galaxy S3 Apologies for any typos On Nov 15, 2012 6:20 PM, "Alex Huang" wrote: > > > > > -----Original Message----- > > From: Alex Huang [mailto:Alex.Huang@citrix.com] > > Sent: Thursday, November 15, 2012 9:15 AM > > To: cloudstack-dev@incubator.apache.org > > Subject: RE: [DISCUSS] OSGi framework for plugins and more? > > > > > > > > > -----Original Message----- > > > From: Mohammad Nour El-Din [mailto:nour.mohammad@gmail.com] > > > Sent: Wednesday, November 14, 2012 7:11 AM > > > To: cloudstack-dev@incubator.apache.org > > > Subject: Re: [DISCUSS] OSGi framework for plugins and more? > > > > > > Hi Alex... > > > > > > Thanks for opening the discussion in the direction of what we need to do > > > and how to do it, I thought no one will respond to my request :D > > > > > > On Wed, Nov 14, 2012 at 3:45 PM, Alex Huang > > > wrote: > > > > > > > Here's my two-bits on OSGi. I actually started a thread like this > > > > sometime ago to which Mohammad reference. I then did some research > > > on what > > > > OSGi can do. The problems I looked at using OSGi for just isn't solvable > > > > by OSGi. > > > > > > > > For example, > > > > - How to contain fault within an availability zone. > > > > - How to do rolling upgrade and phase out the rolling upgrades over a > > span > > > > of days to deal with the time that it might take. > > > > - How to do database upgrades/downgrades for the plugins > > > > - How to scale different components differently > > > > > > > > OSGi does solve some problems > > > > - How to enable and disable plugins on a production system but I'm not > > > > quite sure how reliable that is. Even eclipse asks you to restart eclipse > > > > after adding a plugin. > > > > > > > > > > I know the answer that Marcel would say about this point :D > > > > I just talked to someone who says it does work reliably in their environments. > > > > > > > > > > > > > > > > I think after looking at this, then I decided that > > > > > > > > - For modularity, nothing is better than compilation boundaries. The > > > > problem with some of the plugins is that it depends on cloud-core and > > > > cloud-server. It shouldn't . All plugins must build to cloud-api only. > > > > Since all interfaces of CloudStack is in cloud-api (if you think about > > > > that then cloud-api is basically the OSGi bundle), that's sufficient to > > > > separate the plugins. > > > > - For lifecycle of plugins, it probably requires that we switch to deploy > > > > in something like Karaf before we can achieve runtime lifecycle changes. > > > > I'm not sure it's entire necessary and it doesn't take care of a plugin's > > > > database versioning problem. > > > > - To resolve the other problems, we basically need to break cloudstack > > > > into separate processes. Hence I've proposed the idea of disaggregating > > > > cloudstack. > > > > > > > > > > Again, I am not an OSGi expert, but from what you say it is more about > > > compile and build time and making the separation of what one module > > > should > > > depend on what very clear and documented which we already do in my > > > company > > > as we also have a huge stack and also looked into OSGi which again a great > > > tool but when we don't need everything it offers, we exactly needed what > > > you explained and we manage that mostly through good usage of Maven > > > which I > > > know is tricky > > > > > > About the runtime aspects and database versioning I am afraid I am not > > > aware about the internals and the exact requirements and hence I can't > > give > > > any input > > > > > > On another side, as in either case we need to *disaggregate* ACS, we can > > > make the disaggregated module OSGi ready at least as a 1st step towards > > > assessing whether OSGi is the way we should go or not, and when it is > > more > > > clear then we can either say no it is not the option we need or we will > > > then be ready for the full move to OSGi > > > > > > Thoughts ? > > > > My current thoughts are the large disaggregated CloudStack Services are > > going to be RESTful services. I don't see any benefits for them to be OSGi > > components for the reasons I've already listed. > > > > However, each service still may deploy plugins. Those plugins can be > > converted to OSGi. It shouldn't be too difficult to do it as well. > > And that is if we see there's a good match with OSGi. I can see for example that if people want to add more automation, background monitoring etc, deploying and undeploying those on a live system can be very helpful. That maybe one good use of it. > > --Alex --047d7b344100f4f8a404ce8c2f7e--