Hi Toni,

That's an aspect of Karaf that we should improve, and that's exactly the
purpose of:

1. The examples coming in the 4.2.1 (as part of the standard
distribution): https://github.com/jbonofre/karaf/tree/DEV_GUIDE

2. karaf-boot.

I started karaf-boot exactly to facilitate the view of Karaf for developers.

Even if the focus is users first, we should extend to have a "Karaf
developer friendly", even simplifying some OSGi parts for non OSGi
people. It means that Karaf Boot will do choices: it will engage
developers on some well defined patterns. Of course, there will be lot
of different alternatives, but karaf-boot will follow one.
The karaf-boot tagline is "just do your business code, karaf-boot deals
with the rest". So basically, you will add some karaf-boot annotations
in your code, and karaf-boot will create the artifacts, even the Karaf
distribution, for you.

However, I still think that our highest priority audience is
users/devops, and the second audience is devs.

François and I are working on Karaf Vineyard (API Registry/Gateway),
focused really on service platform for users/devops.

I would love to have some feedback and helps on karaf-boot (the repo is
on my github).

Thanks Toni !

Regards
JB

On 16/08/2018 12:14, Toni Menzel wrote:
> 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
>>
> 

-- 
Jean-Baptiste Onofré
jbono...@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to