Thanks everyone for your quick replies.

I see your point, JB. "One of the key part of Karaf is use friendly." thats
what i mean by "opinionated felix distro".
It may sound as a bad thing but i mean it as a feature: it puts "batteries"
included onto the osgi fw, has opinions how to configure stuff and where
logs go and how to do things you normally would expect from a complete
solution.
I would expect use-friendliness should be a feature of every product. Who
wants software that is hostile at you ? ;)

About "Product Project" well ok then. Thats the "Product Karaf" direction.
Good one!

Though, there might be room for improvements in the area "Karaf for SDK
Vendors"?
Treat the following as insight into how we use Karaf "not" as a product but
as the fabric for (business-) developers.
Our customers are building developer experiences (e.g. APIs for specific
problem domains) on top of Karaf Minimal.

   1. We take Karaf Minimal and create custom distributions with all
   technical features embedded, preconfigured & tested.This often includes a
   lot of messy "OSGi-fied" legacy projects too.
   2. We add business-centric/domain APIs to that distro. This is the
   user-facing programming model. The only thing that leaks technically is the
   fact that usually the model is being accessed as OSGi Services using DS.
   But this is even exchangeable.We call the user-facing api "baseline api".
   3. They get all this as an "SDK" which is made of a Docker Image,
   Zip-Assembly and as an on-demand/per-user cloud service (all runtimes) and
   Baseline-APIs artifacts (compile target).
   4. They program against the baseline-api producing deliverables (usually
   OSGi Bundles but could be anything accepted by the runtime).
   5. Delivery is very customer specific, ranging from pre-baking "all
   included" docker images or an app-store-like SaaS Model.

So we treat Karaf (and with it OSGi) as the internal fabric that is
technically exposed to the user (OSGi bundles, DS API, Diagnostics via
Karaf Shell etc.) but semantically not at all relevant (that is what the
baseline api is for).

Its works very well but its nowhere as convenient as it could be.
Let me mention a few - knowing that we also work on some of them internally:

   - Limiting customisation to Maven is one thing (yeah.. everyone has its
   build ecosystem)
   - Karaf Boot seemed like a good start. But its went nowhere i think? [1]
   - Customizers don't care about pre-attached (opinionated) spring or
   enterprise repos that come (and change) with releases.
   - Branding seems like a niche thing. Yes there are knobs everywhere
   (webconsole, shell) but it could be addressed on a more systematic thing.
   Do other people care?

Maybe this helps seeing Karaf not only as a product.


[1] https://github.com/apache/karaf-boot



*www.rebaze.de <http://www.rebaze.de/> | www.rebaze.com
<http://www.rebaze.com/> | @rebazeio <https://twitter.com/rebazeio>*

On Thu, Aug 16, 2018 at 10:48 AM, Jean-Baptiste Onofré <j...@nanthrax.net>
wrote:

> Hi Toni,
>
> I know a fairly large set of users that use Karaf without knowing OSGi.
>
> That's why it's a polymorphic container: some use spring, some use OSGi,
> some use blueprint, some use directly war, etc. There are several facet
> of using Karaf.
>
> About the distribution, to be honest, I only know users of standard
> distribution: either directly Karaf vanilla and then installing features
> and their applications, or creating their own custom distribution
> starting from the standard one. They don't necessary use the enterprise
> features, it's more the standard distribution + their own features.
>
> One of the key part of Karaf is use friendly. That's the difference
> starting from the framework. When you start from felix framework, it's
> up to you to construct all: logging management, hot deployment, ...
> Starting from Karaf it's a turnkey solution, having all user facing
> aspects.
> Karaf container and all its subprojects are really focused on user.
>
> Look at Decanter: it's tremendous simple solution but it does the job
> and users just use it.
>
> Karaf is a "product project", it's not a SDK. It's a multi-purpose
> runtime, powered by OSGi, but OSGi is not necessary the user facing model.
>
> That's why, as a "product project", I think it makes sense to have
> regular release pace.
>
> Regards
> JB
>
> On 16/08/2018 10:09, Toni Menzel wrote:
> > As mentioned, here are some more thoughts on Karaf audience/usage.
> >
> > Do you know how Karaf users consume/use Karaf? This is important to get a
> > good release cycle and granularity. (as teased by JB on this list
> recently).
> >
> > Why i am mentioning that? Well,i always felt that Karaf (the container)
> is
> > a rather large thing with all its feature repos coming with it. I think
> > thats why Karaf releases where coming rather slow in the past. (correct
> or
> > not?)
> >
> > *1. Karaf as an opinionated felix distro*
> >
> > This "batteries" included feature is (was?) a core selling point of Karaf
> > but is this really how people use it?
> > I know at least two larger customers who are baking their own Karaf
> > distribution anyway based on the minimal profile.
> >
> > So i am asking, wouldn't it make sense to release the "base" runtime (say
> > Felix+Karaf infrastructure like pax-url, feature system, configuration
> > system) independently? Similar to what you get with Karaf minimal.
> >
> > Depending on how Karaf is used in the real world (do you know?), here are
> > some radical thoughts on my/our personal usage:
> >
> >    - Karaf Minimal becomes "Karaf Runtime" because its base unit you can
> >    put everything on top (even at runtime).
> >    - Karaf Standard/Enterprise becomes the "Karaf SDK" since has the
> >    kitchen-sink nature that is great when you want to tinker with
> >    Spring,Hibernate etc.
> >
> > Also, wouldn't it make sense to release the maven-plugin independently?
> >
> > Those changes might seem of no importance to Karaf insiders (because you
> > get all of that already when building your own distro) but at least I
> only
> > found Karaf reasonable for a lot of usecases until i found out how to
> > really only get the "runtime" part. Now i can say that for me Karaf is an
> > opinionated felix  distro (yes.. not only that but you get the point).
> >
> > *2. Karaf as polymorphic container*
> >
> > On the website Karaf is marketed as "Karaf can host any kind of
> > applications: OSGi, Spring, WAR, and much more". Is that how people
> really
> > use it? I mean.. are Spring (Boot..) people happy living inside Karaf?
> > Every OSGi-savvy person recommends going DS, staying with OSGi spec
> > standards and avoid War. - pun intended.
> > Yeah, its great for demos but is it worth the effort? - also to keep this
> > "working". And - from experience - i can tell that its also not a
> > recommendable migration path. It sounds great but Hibernate and friends
> are
> > actually quite hostile to your OSGi framework instance introducing a lot
> > more complexity into your system. And if even OSGi-savvy people have
> > problems troubleshooting such cases, how should a team of beginners do
> that?
> >
> > *3. Karaf as a better solution for Microservices*
> >
> > Guess i save this for another post, too easy to turn this into a rant.
> Let
> > me just say: i think Karaf is one of the few answers to the pervasive
> > Microservice/Spring Boot ecosystem. But it is not obvious and people stay
> > away from it because. Again, this COULD go very long, but it is not the
> > right place.
> >
> > Any thoughts?
> >
> > * What is Developer Ergonomics <https://medium.com/rebaze>**? *
> >
> >
> >
> > *www.rebaze.de <http://www.rebaze.de/> | www.rebaze.com
> > <http://www.rebaze.com/> | @rebazeio <https://twitter.com/rebazeio>*
> >
>
> --
> Jean-Baptiste Onofré
> jbono...@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Reply via email to