Hi JB

Changing subject to start new thread ...

I have taken a look at Winegrower, but have not played around with it yet.
I am curious if something like Winegrower would be interested in using OSGi
Connect to back it with an OSGi R8 framework implementation or perhaps use
Atomos for bundle discovery?

Tom

On Fri, Apr 17, 2020 at 9:15 AM Jean-Baptiste Onofre <j...@nanthrax.net>
wrote:

> Hi Thomas,
>
> Did you take a look on Winegrower ? (Just curious):
>
> https://github.com/apache/karaf-winegrower <
> https://github.com/apache/karaf-winegrower>
>
> Regards
> JB
>
> > Le 17 avr. 2020 à 15:47, Thomas Watson <tjw...@gmail.com> a écrit :
> >
> > I just want to clarify a bit on Atomos and OSGi Connect.  While OSGi
> > Connect does allow some more flexibility in the Module Layer of OSGi, it
> is
> > not entirely getting rid of it.  There is still a resolution, there are
> > still bundle wirings and the powerful requirement/capability model, there
> > are still bundle events and so on.  What it does allow is loading of
> > bundles from alternative formats/sources to allow the usage of OSGi
> > technology in environments not previously possible (such as Graal
> > native-image).  If you have issues today getting resolution to work for a
> > particular deployment of OSGi bundles then these same resolution issues
> > will be present when using Atomos.  On the other hand, if you find value
> in
> > the OSGi development model then you can continue to develop your bundles
> as
> > you do today but then have the flexibility to deploy your bundles in
> > environments not previously possible.  The fact that we continue to do a
> > resolution of connect bundles is an effort to make sure all the things
> your
> > bundle needs to be functional is available and accessible from your
> connect
> > bundle.
> >
> > Tom
> >
> > On Wed, Apr 15, 2020 at 1:11 AM Grzegorz Grzybek <gr.grzy...@gmail.com>
> > wrote:
> >
> >> Hello
> >>
> >> First, I'm not good at telling what should be done or providing visions
> for
> >> something new and revolutionary. I'm experienced with checking what
> SHOULD
> >> NOT be done and how to polish/stabilize/cleanup existing things,
> created by
> >> much clever people than me.
> >>
> >> [...] such as graalvm or quarkus. (I know so little about this that I
> could
> >>> be wrong about what these are).
> >>>
> >>
> >> I can provide a little explanation, but I'm not core Quarkus dev. When
> >> talking about "cloud", the above are very important.
> >>
> >> GraalVM is based on HotSpot with these (roughly) differences:
> >> - through JVMCI interface (https://openjdk.java.net/jeps/243) the
> normal
> >> _compiler_ of hotspot (the bytecode -> native code compiler, not the
> source
> >> -> bytecode one) is replaced by Graal compiler
> >> - Graal compiler is written in Java, so it's JITted itself
> >> - Graal claims to create better native code
> >> - *Graal allows ahead-of-time compilation*
> >> - SubstrateVM being part of Graal has `native-image` tool, so you can
> get
> >> ELF binary from a Jar
> >>
> >> Quarkus leverages the above, and brings many dev-friendly aspects to it
> >> (it's developed by Red Hat and it's kind of similar situation as with
> >> Kubernetes - OpenShift) - mind that I'm not much experienced with it yet
> >> - brings new tools to the dev toolkit (mostly maven plugins)
> >> - brings an API to expose the ahead-of-time aspects of Graal -
> generally,
> >> you can mark methods/classes of your code (through annotations) as
> "running
> >> in build phase"
> >> - "build phase" is executed before even starting the VM. Imagine
> >> HIbernate. When you create Hibernate based µservice and you start it,
> lots
> >> of time is spent reading XML/annotations and building SessionFactory.
> With
> >> Quarkus, this *all can be done at build phase* and you end up with
> bytecode
> >> (or in native case - premade memory pages that can simply be mapped to
> your
> >> process). Then when your main() starts, you don't have to create
> >> SessionFactory - you *have it*
> >>
> >> Mind that the above is not precise, but should not miss the picture (I'm
> >> for example not sure about the premade memory pages).
> >>
> >> OK. Now what should be avoided. In Red Hat Fuse 6 was based only on
> Karaf.
> >> Fuse 7 though has more forms and there's a lot about OpenShift. The
> >> problematic thing was - how to put Karaf into OpenShift.
> >>
> >> Think about what is important in "cloud" - you need your pod/container
> >> start as fast as possible because of all this scaling-to-demand thing.
> >> Imagine lambda-functions (or whatever it's called nowadays). If a
> µservice
> >> would spend 95% of the time building SessionFactory and 5% inserting the
> >> record into database, it'd be crazy.
> >>
> >> With OSGi, lots of warmup comes from bundle resolution. I know the
> >> resolution state can be persisted. But still.
> >>
> >> I don't have clear answers or even clear feedback to this thread. I feel
> >> one thing - there are 2 critical and fundamental OSGi aspects:
> >> - module layer (bundles, manifests, caps-reqs)
> >> - service layer (service registry)
> >>
> >> And while the service layer (supported by e.g., SCR
> annotations/runtime) is
> >> *the synonym of µservices* (see blog from 2010 when no one talked about
> it
> >> yet: https://blog.osgi.org/2010/03/services.html), the module layer is
> >> what
> >> may be a problem here.
> >>
> >> All the effort with felix-connect, Atomos (which I've just checked
> covers
> >> SubstrateVM scenarios - I wasn't aware of this) is about making
> >> module-layer more cloud friendly.
> >>
> >> I feel a little confused. Having worked 100% with OSGi for >6 years I
> found
> >> the original module layer the most important thing - because of the
> bundle
> >> resolution, cap-req matching, versioning, bundle revisions and wirings.
> The
> >> API and programming model aspect of OSGi was not that important which
> has
> >> two consequences:
> >> 1) I just got used to it that I have access to BundleContext,
> >> BundleRevision and other API interfaces and e.g., blueprint.xml format
> >> 2) If not the module layer of OSGi, nothing would keep me using the
> above
> >> API
> >>
> >> CDI and Spring (annotations, XML) are other, widely used programming
> (and
> >> code-architecting) models and I somehow feel that when module layer is
> >> gone, these models are simply better, more flexible and less
> constraining
> >> than SCR or Blueprint.
> >>
> >> So when OSGi "adopts" the module layer to the "cloud", turning it into
> >> flat-classpath deployment, what's the reason to call it OSGi at all?
> >>
> >> Please don't get me wrong - I'm not going to sabotage any effort, I
> want to
> >> avoid the confusion.
> >>
> >> Imagine this
> >> - we turn module layer into flat classpath
> >> - we use aries-cdi to allow programming beans/services using CDI
> >> annotations (JavaEE)
> >> - we use aries-jaxrs to create WS/REST endpoints using Jax-RS
> annotations
> >> (JavaEE)
> >> - we hide BundleContext.getServiceReference()/getService() APi
> >>
> >> Where's the OSGi then?
> >>
> >> I don't have answers. As I've noted at the beginning, I'm experienced
> with
> >> imagining what could go wrong (though I'm never 100% right) and with
> making
> >> things maintainable (pax-logging refactoring and now pax-web
> refactoring).
> >>
> >> From my experience, the biggest problem with OSGi is that when you
> install
> >> a lot of feature into Karaf (or in my case Fuse-Karaf) you end up with
> lots
> >> of conflicts, double OSGi chains and guava version. One of my reactions
> to
> >> this problem was etc/org.apache.karaf.features.xml and "new blacklisting
> >> and override mechanism" for Karaf.
> >> But generally I know the pain and the percentage of real problem cases
> >> related to bad OSGi resolution.
> >>
> >> I think (sorry for the email becoming too long) I want to highlight the
> >> problem - if we focus on µservices too much, imagining it's "set of ~20
> >> bundles" running on flat classpath with aries-cdi + aries-jaxrs then
> again
> >> - where's the OSGi? Could you answer a stack overflow question like
> that?
> >> And explain why it's better than e.g., Spring Boot?
> >>
> >> I hope you didn't get me wrong - I'm not against OSGi, because I like
> it ;)
> >>
> >> regards
> >> Grzegorz Grzybek
> >>
> >> pon., 13 kwi 2020 o 00:45 David Jencks <david.a.jen...@gmail.com>
> >> napisał(a):
> >>
> >>> Inline...
> >>>
> >>>> On Apr 12, 2020, at 3:23 PM, Christian Schneider <
> >>> ch...@die-schneider.net> wrote:
> >>>>
> >>>> Hi David,
> >>>>
> >>>> actually I did not think about Aries but you are right, it could also
> >> fit
> >>>> there. If the Felix community thinks Aries is the better place I will
> >>>> propose it there too.
> >>>> I think for marketing purposes Felix is a lot more known than Aries.
> >>>> The main purpose I want to achieve is that people consider doing
> >>>> microservices with OSGi. So I wanted to leverage a well known brand
> >> that
> >>>> people associate with OSGi.
> >>>> Apart from that the only Aries project I use in my experiments is
> Aries
> >>>> JAX-RS whiteboard but I use lots of felix bundles.
> >>>
> >>> That seems like a conceptual circular dependency with which I am not
> >>> entirely comfortable.  However, it wouldn’t be blocking for me.
> >>>
> >>>>
> >>>> I agree about the naming. Blueprint was a bad choice. What do you
> think
> >>>> about "felix cloud native starter”.
> >>>
> >>> Names are hard…. ’native’ to me suggests you will be targeting one (or
> >>> more) of the nontraditional javas (that I am only vaguely acquainted
> with
> >>> from watching the Camel list) such as graalvm or quarkus. (I know so
> >> little
> >>> about this that I could be wrong about what these are).
> >>>
> >>> I do think that this initiative is a great idea! Maybe you could start
> it
> >>> at GitHub while the location/name/description is hammered out?
> >>>
> >>> Thanks,
> >>> David Jencks
> >>>
> >>>>
> >>>> Christian
> >>>>
> >>>>
> >>>> Am Mo., 13. Apr. 2020 um 00:05 Uhr schrieb David Jencks <
> >>>> david.a.jen...@gmail.com>:
> >>>>
> >>>>> Hi Christian,
> >>>>>
> >>>>> I’d like to know why felix is a better location for this than aries.
> >>>>>
> >>>>> I also think that you should find a description or name other than
> >>>>> “blueprint” as that term has unfortunately been taken by the osgi
> >>> blueprint
> >>>>> spec.  Seeing your subject line I wondered why a blueprint (as in
> >> spring
> >>>>> for osgi) project would fit in felix.
> >>>>>
> >>>>> Thanks
> >>>>> David Jencks
> >>>>>
> >>>>>> On Apr 12, 2020, at 2:05 PM, Karl Pauls <karlpa...@gmail.com>
> wrote:
> >>>>>>
> >>>>>> Hi Christian,
> >>>>>>
> >>>>>> I don't think we are at that point just yet. Given that this is a
> >>>>>> holiday surrounded weekend for a lot of us (due to the easter break)
> >> I
> >>>>>> would say we should at least give it a couple of more days to see
> >>>>>> where the discussion is going.
> >>>>>>
> >>>>>> That said, I personally would like to see a little bit more about
> >> what
> >>>>>> you had in mind. Is there already some existing body of work or are
> >>>>>> you planning to create something from scratch?
> >>>>>>
> >>>>>> regards,
> >>>>>>
> >>>>>> Karl
> >>>>>>
> >>>>>> On Sun, Apr 12, 2020 at 9:32 PM Christian Schneider
> >>>>>> <ch...@die-schneider.net> wrote:
> >>>>>>>
> >>>>>>> There seems to be some interest in having such a blueprint or even
> >>> more
> >>>>>>> than one variant at felix.
> >>>>>>>
> >>>>>>> Should I start in felix-dev or use a new repo?
> >>>>>>> I would prefer a new repo as the code will be a multi module maven
> >>>>> project.
> >>>>>>> I propose a repo name "felix-cloud-native-starter".
> >>>>>>> We could have and have different blueprints (e.g. CDI and DS)
> >> inside.
> >>>>>>> I thought about but disliked to have "blueprint" in the name as
> >> people
> >>>>>>> might confuse it with the blueprint dependency injection.
> >>>>>>>
> >>>>>>> Christian
> >>>>>>>
> >>>>>>> Am So., 12. Apr. 2020 um 11:58 Uhr schrieb Christian Schneider <
> >>>>>>> ch...@die-schneider.net>:
> >>>>>>>
> >>>>>>>> In recent years we saw a big trend towards micro services and
> >> cloud.
> >>>>>>>> Lately people discovered though that such services are often made
> >> too
> >>>>> fine
> >>>>>>>> grained.
> >>>>>>>> The newest trend goes to building bigger micro services on the
> >> level
> >>> of
> >>>>>>>> domain driven design bounded contexts.
> >>>>>>>>
> >>>>>>>> Especially for these services OSGi is a very interesting platform
> >> as
> >>>>> they
> >>>>>>>> need more internal structure than the more fine grained services.
> >>>>>>>> Unfortunately it is quite hard to build a cloud native service in
> >>> OSGi
> >>>>>>>> from scratch.
> >>>>>>>>
> >>>>>>>> So I would like to offer a blueprint for cloud native micro
> >> services
> >>>>>>>> inside the felix community. The goal is to provide all parts of a
> >>> cloud
> >>>>>>>> native
> >>>>>>>> system that are usually needed, like:
> >>>>>>>>
> >>>>>>>> * Declarative services as dependency injection
> >>>>>>>> * Aries Jaxrs Whiteboard for REST
> >>>>>>>> * Dropwizard metrics exported as Prometheus metrics
> >>>>>>>> * Swagger
> >>>>>>>> * Halbrowser
> >>>>>>>> * Felix healthchecks
> >>>>>>>> * Configuration using OSGi configurator + Environment variables
> >>> plugin
> >>>>>>>> * Logging to console
> >>>>>>>> * Final application is provided as a runnable jar
> >>>>>>>> * Example docker build files
> >>>>>>>> * Example kubernetes yaml
> >>>>>>>>
> >>>>>>>> What do you think?
> >>>>>>>>
> >>>>>>>> Christian
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> --
> >>>>>>>> Christian Schneider
> >>>>>>>> http://www.liquid-reality.de
> >>>>>>>>
> >>>>>>>> Computer Scientist
> >>>>>>>> http://www.adobe.com
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> --
> >>>>>>> Christian Schneider
> >>>>>>> http://www.liquid-reality.de
> >>>>>>>
> >>>>>>> Computer Scientist
> >>>>>>> http://www.adobe.com
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Karl Pauls
> >>>>>> karlpa...@gmail.com
> >>>>>
> >>>>>
> >>>>
> >>>> --
> >>>> --
> >>>> Christian Schneider
> >>>> http://www.liquid-reality.de
> >>>>
> >>>> Computer Scientist
> >>>> http://www.adobe.com
> >>>
> >>>
> >>
>
>

Reply via email to