Fully agree, that's the purpose of the "karaf direct runtime" (you focus on your code and Karaf tooling build the runtime packaging) IMHO.
Regards JB On 14/02/2019 08:29, Serge Huber wrote: > Just read this: > > https://www.linkedin.com/pulse/serverless-framework-michael-vargas > > What would be perfect is to be able to replace the Nodejs runtime in this > config with Karaf > > I think that Karaf makes a ton of sense as a « server less » runtime. You > build your features and don’t care on what hardware they run or how they are > deployed. > > Wdyt ? > > Regards, > Serge > > T +41 22 361 3424 > > 9 route des Jeunes | 1227 Acacias | Switzerland > jahia.com > SKYPE | LINKEDIN | TWITTER | VCARD > > >> JOIN OUR COMMUNITY to evaluate, get trained and to discover why Jahia is a >> leading User Experience Platform (UXP) for Digital Transformation. > >> Le 13 févr. 2019 à 14:45, Serge Huber <[email protected]> a écrit : >> >> My thinking is that the env variables would override, but if you >> change during runtime a value it could still change (and be >> serialized), or we could somehow prevent that. But on next start the >> env override would apply again anyway. >> >> It shouldn't be difficult to make this behavior configurable anyway, >> but it is a huge requirement for Docker support, and possibly other >> containers might have similar requirements. >> >> Regards, >> Serge... >> >>> On Wed, Feb 13, 2019 at 1:29 PM Jean-Baptiste Onofré <[email protected]> >>> wrote: >>> >>> Hi Christian >>> >>> I already started a PoC using a decorator to ConfigAdmin to >>> "inject/override" configuration from plugable backend (like env, like >>> AWS service, ...). It use a converter to map the "backend" config to >>> config admin style. >>> >>> I will share my PoC on PR asap. >>> >>> Regards >>> JB >>> >>>> On 13/02/2019 12:49, Christian Schneider wrote: >>>> I also think configuration from env variables is one of the most important >>>> things to solve. Docker images and Kubernetes deployment descriptors often >>>> look horribly complicated when this is not solved well. >>>> >>>> I have seen two interesting attempts at this: >>>> 1. The configurer from Peter Kriens. It allows to override any OSGi config >>>> from the command line and I think it also allows using env variables. (see >>>> https://github.com/osgi/osgi.enroute.bundles/tree/master/osgi.enroute.configurer.simple.provider >>>> ) >>>> 2. Dropwizard configuration style. There you have a configuration in yaml >>>> form but you can use placeholders with defaults that can feed from env >>>> variables. (See >>>> https://www.dropwizard.io/0.9.3/docs/manual/core.html#environment-variables >>>> ). >>>> >>>> Especially the dropwizard style looks really good. >>>> One thing to solve there is how to bridge the gap to OSGi configs that are >>>> always a set of properties vs spring boot or similar configs that are a >>>> flat list of properties. The tree structure of yaml or json might help us >>>> there. >>>> >>>> Christian >>>> >>>>> Am Mi., 13. Feb. 2019 um 08:29 Uhr schrieb Serge Huber >>>>> <[email protected]>: >>>>> >>>>> +1 >>>>> >>>>> I really like this project, but I think we should also be careful to >>>>> really leverage Karaf's strengths compared to other frameworks (such >>>>> as Spring or others). >>>>> >>>>> I have a millions things that come to mind, how to address : >>>>> - upgrades >>>>> - rolling upgrades >>>>> - leveraging Karaf to avoid building lots of containers and use >>>>> instead OSGi to reduce the memory / CPU footprint >>>>> - configuration of containers (passed as env or even centralized ?) >>>>> >>>>> There are also some very interesting developments coming to the JDK >>>>> (in JDK 12) such as Project Loom that could help scale Karaf to >>>>> millions of network connections on single instances without the need >>>>> for NIO. >>>>> >>>>> We were talking in another thread about having a very thin OS-layer on >>>>> top of Karaf to have baremetal performance and I think this could be >>>>> very interesting in a cloud setup as well. >>>>> >>>>> Anyway, I'm just throwing ideas here, hope you don't mind :) >>>>> >>>>> cheers, >>>>> Serge >>>>> >>>>> On Mon, Feb 11, 2019 at 2:11 PM David Daniel >>>>> <[email protected]> wrote: >>>>>> >>>>>> Thank you, >>>>>> I would also be curious if it is possible to work to align some >>>>> features >>>>>> changes to be compatible with the osgi feature spec. >>>>>> https://github.com/osgi/design/blob/master/rfps/rfp-0188-Features.pdf >>>>> It >>>>>> might be possible to bridge some of the gap between bnd and karaf. I >>>>> love >>>>>> things about both frameworks and would be super excited if they could >>>>> work >>>>>> together. >>>>>> >>>>>> David >>>>>> >>>>>> On Mon, Feb 11, 2019 at 7:01 AM Jean-Baptiste Onofré <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Thanks for your feedback David, nice idea about jlink, I have to >>>>>>> investigate a little about it, but definitely interesting. >>>>>>> >>>>>>> Regards >>>>>>> JB >>>>>>> >>>>>>>> On 11/02/2019 12:52, David Daniel wrote: >>>>>>>> I really like the idea of the static build and features in code. I >>>>> think >>>>>>>> the jdk is making great strides in getting java running well on >>>>> docker >>>>>>>> java 9 jlink for small images that can be copied and spun up quickly >>>>>>>> java 10 defaults improvements https://aboullaite.me/docker-java-10/ >>>>>>>> portola for running java on musl (alpine without glibc) >>>>>>>> https://openjdk.java.net/projects/portola/ >>>>>>>> loom is coming for not spinning off a ton of threads >>>>>>>> If at all possible I would love to be able to build a minimal karaf >>>>>>>> distribution with jlink from java module files that were generated >>>>> from >>>>>>> the >>>>>>>> karaf resolver. I think this might be a little much though and don't >>>>>>> even >>>>>>>> know if it is possible. Just something that might be able to be >>>>> looked >>>>>>> at >>>>>>>> while the code is being written. >>>>>>>> >>>>>>>> David >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Feb 11, 2019 at 1:57 AM Jean-Baptiste Onofré < >>>>> [email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi guys, >>>>>>>>> >>>>>>>>> As we now have released Karaf runtime 4.2.3 and started 4.3.x, I >>>>> think >>>>>>>>> it's time to discuss and move forward "concretely" about the "kloud" >>>>>>>>> (Karaf for the Cloud) initiative. >>>>>>>>> >>>>>>>>> I think the first approach is focused on the developers and devops. >>>>> I >>>>>>>>> created the following Jira: >>>>>>>>> >>>>>>>>> https://issues.apache.org/jira/browse/KARAF-5923 >>>>>>>>> https://issues.apache.org/jira/browse/KARAF-6148 >>>>>>>>> https://issues.apache.org/jira/browse/KARAF-6149 >>>>>>>>> https://issues.apache.org/jira/browse/KARAF-6150 >>>>>>>>> >>>>>>>>> The idea is really to simplify the features generation and >>>>> distribution >>>>>>>>> packaging. >>>>>>>>> >>>>>>>>> For the features generation, I'm thinking on annotations directly >>>>> in the >>>>>>>>> code (in package-info.java for instance) describing the features >>>>> needed >>>>>>>>> by the application. The annotations scanner could then create the >>>>>>>>> features XML using the code itself and the annotations. That would >>>>> allow >>>>>>>>> us to not relay on Maven and be able to support CLI/Gradle/Maven. >>>>> In the >>>>>>>>> case where the user uses Maven, we could better leverage Maven to >>>>> get >>>>>>>>> some details. The idea is to especially easily create features XML >>>>> to >>>>>>>>> build "static" runtime (that make sense for the cloud). >>>>>>>>> >>>>>>>>> After the features XML generation, we should have a easier way to >>>>> build >>>>>>>>> a distribution. We also have to provide multiple "packaging output" >>>>> like >>>>>>>>> archives (zip/tar.gz), uber jar (embedding karaf and user >>>>> application), >>>>>>>>> docker image, openimage, kubernetes meta, ... >>>>>>>>> The idea is to have a ready to go packaging for the cloud. >>>>>>>>> >>>>>>>>> For the cloud perspective, the distribution should be >>>>>>>>> "immutable/static". Currently, the resolver we have is great for >>>>>>>>> "dynamic" deployment but could be painful for static one (dealing >>>>> with >>>>>>>>> refresh, multiple versions resolution, etc). >>>>>>>>> I'm proposing to create kind of "static" resolver >>>>>>>>> (https://issues.apache.org/jira/browse/KARAF-6147) directly taking >>>>> boot >>>>>>>>> features and installing straight forward what's defined in the >>>>> features. >>>>>>>>> It should result with a more "predictable" behavior, really helpful >>>>> from >>>>>>>>> a cloud perspective. >>>>>>>>> >>>>>>>>> Finally, I created some Jira about general improvements for the >>>>> cloud >>>>>>>>> and docker: >>>>>>>>> >>>>>>>>> https://issues.apache.org/jira/browse/KARAF-6111 >>>>>>>>> https://issues.apache.org/jira/browse/KARAF-4609 >>>>>>>>> >>>>>>>>> I think you got the overall idea: dramatically simplify creation of >>>>>>>>> distribution packaging karaf with user application (for developer), >>>>>>>>> simplify the packaging outputs and bootstrapping on cloud (for >>>>> devops). >>>>>>>>> >>>>>>>>> If you think it could be helpful to have a doc on confluence about >>>>> that, >>>>>>>>> please let me know I will create it. >>>>>>>>> >>>>>>>>> We all know that Karaf is an amazing runtime. To convince more and >>>>> more >>>>>>>>> users and give a new dimension to Karaf, I really think that the >>>>> "kloud >>>>>>>>> initiative" is a must have. We will have a runtime that can address >>>>> both >>>>>>>>> static and dynamic bootstrapping approach, one runtime for multiple >>>>>>>>> services or one runtime per service, etc. >>>>>>>>> >>>>>>>>> Thoughts ? >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> JB >>>>>>>>> -- >>>>>>>>> Jean-Baptiste Onofré >>>>>>>>> [email protected] >>>>>>>>> http://blog.nanthrax.net >>>>>>>>> Talend - http://www.talend.com >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Jean-Baptiste Onofré >>>>>>> [email protected] >>>>>>> http://blog.nanthrax.net >>>>>>> Talend - http://www.talend.com >>>>>>> >>>>> >>>> >>>> >>> >>> -- >>> Jean-Baptiste Onofré >>> [email protected] >>> http://blog.nanthrax.net >>> Talend - http://www.talend.com > -- Jean-Baptiste Onofré [email protected] http://blog.nanthrax.net Talend - http://www.talend.com
