Hi James,

no problem at all ! It was more than cool to share our thoughts and views.

Regards
JB

On 04/18/2015 05:47 PM, James Carman wrote:
Serge,

We had some pretty good discussions during JB's talk (hope we didn't
hijack it too much, JB).  I don't think this topic really has anything
to do with Docker, necessarily.  Docker is merely a tool people employ
to implement a deployment strategy.  I think it basically boils down to
the notion that in the "cloud era", it's simpler and cheaper to spin up
a new node configured the way you want.  Cloud-enabled applications need
to be "cloneable" in this way already, so you kind of get this benefit
for free.

This doesn't mean we can't use OSGi to piece together these nodes.  OSGi
isn't only about being able to runtime-refresh your modules.  There are
many other benefits of the OSGi programming model that make it suitable
for building statically-configured applications as well.

Just my $0.02

James

On Mon, Apr 13, 2015 at 3:49 PM, Serge Huber <shu...@jahia.com
<mailto:shu...@jahia.com>> wrote:

    Interesting discussion indeed.

    I'm currently at ApacheCon US and I've taken a few opportunities to
    promote Apache Karaf which surprisingly few people know about. But
    again what I was describing earlier is really a frequent feedback :
    is modularity worth the trouble when I can built "micro-services"
    that are actually running in docker containers ? Although I am
    convinced that the two are not in opposition, I think it would be
    great to have a killer use case to demonstrate what the benefits of
    using Karaf would be.

    I'm really looking forward to meeting Jean-Baptiste in person ! I
    love Karaf and I hope to be able to exchange with him a few
    experiences around it.

    Regards,
       Serge

    - -- --- -----=[ shuber at jahia dot com ]=---- --- -- -
    CTO & Co-founder - Jahia Solutions Group, 9 Routes de Jeunes, 1227
    Acacias, Switzerland
    twitter: @sergehuber <https://twitter.com/sergehuber>

    <http://jahiaone.com/register>
    JahiaOne <http://www.jahiaone.com/>, our international user
    conference is back! June 10-12 in Paris - Grab your tickets now
    <http://www.jahiaone.com/>!

    Jahia is a leading open source User eXperience Platform (UXP)
    vendor, relentlessly working at transforming a siloed industry into
    a user-driven one, beyond technology constraints -
    http://www.jahia.com <http://www.jahia.com/>


    On Mon, Apr 13, 2015 at 2:42 PM, Achim Nierbeck
    <bcanh...@googlemail.com <mailto:bcanh...@googlemail.com>> wrote:

        Hey,

        yes I fully agree, also with the Spring-Boot stuff.
        as already stated on the other thread, I think there are certain
        cases where Docker images are useful.
        For a POC, for CI I think a Docker Image is useful. In the end
        if you want to run it in Production I rather have the Ansible
        setup.

        regards, Achim


        2015-04-13 17:02 GMT+02:00 Jean-Baptiste Onofré <j...@nanthrax.net
        <mailto:j...@nanthrax.net>>:

            Hi Ed,

            I can't agree more ;)
            I fully agree about your points.

            I quite have the same view on Spring Boot ;)

            Regards
            JB


            On 04/13/2015 04:32 PM, Ed Welch wrote:

                I've really enjoyed following this thread, and I have to
                say, as a Docker skeptic surrounded by people who want
                to bash my brains in with docker images, it's nice to
                hear some feedback from people who seem to have a
                healthy dose of skepticism like I do...

                So rather than rehash all the things I agree with that
                have been said so far, I wanted to comment a few things
                I hadn't seen:

                The biggest discussion point I bring up with my peers
                regarding docker that I've been using to kind of hold
                the floodgates back:  Who is responsible for updates to
                the underlying docker image OS?  Our organization is
                fairly segmented, we have a linux operations group, we
                have a development group.  If our development group
                deploys 50 docker images, all with a variety of distros
                inside them, different versions of everything... What
                happens if there is a big vulnerability found
                (think/remember bash).  Is our linux team now on the
                hook to learn docker and handle digging through dozens
                to hundreds of potentially very different docker images
                ( which would make you want to force standardization of
                your docker images on a particular distro at a minimum
                ), or does the dev team now own this responsibility?
                This is a hard question for our company to answer...

                My other comment, is actually regarding what I think is
                the most fantastic use case I've seen for docker, which
                was written up by Roland Huss on his blog:
                https://ro14nd.de/Jolokia-__Docker-Image/
                <https://ro14nd.de/Jolokia-Docker-Image/>
                Using docker as part of your automated integration tests
                is a really neat idea, especially if you work on a
                project that has to maintain support for piles of
                application servers, operating systems, and versions of
                java.  I think there is some real opportunity here as
                was previously mentioned, to build a docker image that
                sets up the OS, java, and karaf, and then at test time
                you deploy your app and run your tests.  With this kind
                of model you can just keep adding new docker images to
                your test suite and retire old ones when you finally
                drop support for something ( *cough* java 6 *cough*)

                Good discussion, really have enjoyed reading!

                Ed


                On Mon, 13 Apr 2015 08:31:37 -0400, Ryan Moquin
                <fragility...@gmail.com <mailto:fragility...@gmail.com>>
                wrote:

                    I guess the barrier to be able to write code has
                    been lowered enough that
                    more people are able to do it, probably for the
                    money.  That goes hand in
                    hand with the whole Docker thing where it feels
                    there is an expectation
                    that everything should be easy to do rather than
                    accept that like any
                    profession, you have to learn in order to become
                    good.  Nothing wrong with
                    asking questions, but I feel quality of code will
                    probably continue to
                    decline with tools being the crutch.

                    Anyhow, thanks for everyone's input.  Karaf is a
                    fantastic piece of
                    software, I just wanted to make sure that things
                    like Docker weren't going
                    to cause it to be dumbed down.  Obviously like any
                    growing technology,
                    modularity has some rough spots to iron out, but
                    that doesn't mean we
                    should give up.  Developers can do what they want, I
                    would like to continue
                    to choose what fits my requirements best out of the
                    technologies that are
                    available.

                    Ryan
                    On Apr 13, 2015 2:37 AM, "Achim Nierbeck"
                    <bcanh...@googlemail.com
                    <mailto:bcanh...@googlemail.com>> wrote:

                        I can't agree more ... and some questions on
                        stackoverflow or this
                        mailinglist just reflect that ...
                        "please solve my issue for me, cause I forgot to
                        use my brain today" :D

                        regards, Achim

                        2015-04-13 0:44 GMT+02:00 Ryan Moquin
                        <fragility...@gmail.com
                        <mailto:fragility...@gmail.com>>:

                            Serge,

                            Package the world applications were able to
                            be built easily before Docker
                            was around.  Docker is simply a different
                            way of deploying an application
                            virtually.

                            In my experience, developers who "package
                            the world" with their code are
                            usually either biased against modularity or
                            just don't feel like putting
                            forth the effort.  Many technologies in use
                            today take effort to figure
                            out.  A lot of developers seem to feel that
                            any technology that requires
                            effort above the maven shade plugin or using
                            shell scripts to dump all
                            their jars to a server isn't worth their time.

                            Developers that care about the quality of
                            the code or applications they
                            produce won't be deterred from a technology
                            they believe will help them
                            make better applications just because it
                            takes a little bit of effort.  How
                            did less experienced developers manage to
                            survive when the only real
                            choices for writing software was assembly, c
                            or c++?

                            Ryan
                            On Apr 11, 2015 9:53 PM, "Serge Huber"
                            <shu...@jahia.com <mailto:shu...@jahia.com>>
                            wrote:

                                Very interesting thread guys :)

                                Actually I recently started a project
                                integrating Karaf with
                                ElasticSearch and for me it was a little
                                like what you guys are describing
                                in this thread. ES, at least in the
                                early versions is quite monolithic and
                                it would clearly benefit from a
                                framework such as OSGi. For example, the
                                clustering technology is quite
                                interesting but why can't it be reused
                                without all the other stuff ? Or maybe
                                you want to wire things a little
                                differently ? Not have everything
                                directly listen to ports without any
                                security but be able to plugin whatever
                                filter or modules you need ?

                                Personally I think that what is really
                                needed in OSGi is better tooling,
                                especially for making it a lot simpler
                                to build high quality and
                                minimalistic bundles. Using the
                                maven-bundle-plugin or the shader-plugin is
                                quite tedious and possibly error prone.
                                I've built my own Maven plugin on
                                top of the bundle plugin so that it can
                                handle a lot more resources
                                (including JSPs that include taglibs for
                                example) and that also tries to be
                                smarter at generating import-package
                                statements. This makes it easier for
                                OSGi newbies to adopt the technology.

                                I'm also worried that the initial
                                learning curve of OSGi might be
                                putting less experienced developers off
                                and more towards package-the-world
                                solutions such as Docker, which while
                                acceptable for some cases such as
                                continuous integration, could also be
                                dangerous if not maintained properly.

                                Regards,
                                    Serge

                                Le 11 avr. 2015 à 19:43, Niels
                                <niels...@gmail.com
                                <mailto:niels...@gmail.com>> a écrit :

                                Could not agree more Achim. Good fad
                                indicators are high promises which
                                are designed to target the ultimate need
                                of decision makers to deliver
                                software quicker and cheaper. Just
                                rewind 10 years and we will find the
                                exact same promises were made at the
                                start of the SOA hype which are now
                                touted by the microservices believers.
                                At the end of the day nothing will
                                prevent people from doing something
                                really badly.

                                I can see the value of docker but unless
                                one really has all the
                                lifecycle ducks in a row I would not go
                                down the path and containerise the
                                all and sundry.

                                Cheers,
                                Niels

                                On 12 Apr 2015, at 08:28, Ryan Moquin
                                <fragility...@gmail.com
                                <mailto:fragility...@gmail.com>> wrote:

                                I used to work somewhere with other
                                developers who always became very
                                spiritual about whatever the latest
                                "cool" developer technology or
                                methodology is.  Microservices was one
                                of them.  It always made me laugh
                                when I was told how super efficient and
                                streamlined it was over any other
                                solution because every fat jar deployed
                                (Maven shade plugin abuse in order
                                to be lazy) was between 500Mb and
                                1.7Gb.  So much for being a
                                "micro"-service.
                                On Apr 8, 2015 2:55 PM, "Achim Nierbeck"
                                <bcanh...@googlemail.com
                                <mailto:bcanh...@googlemail.com>>
                                wrote:

                                    I'm very ambivalent regarding this
                                    topic.

                                    On one hand I see a lot of move to
                                    Docker as heading for the holy grail
                                    on fixing all the issues we had in
                                    the past. #FAIL
                                    On the other hand I see some
                                    benefits of it, but still haven't found
                                    the concrete use-case where it did
                                    top a bar-metal or bare virtualized
                                    machine.

                                    It's absolutely true that it does
                                    have some benefits for easier
                                    deployment of "Infrastructure" but I
                                    also see a lot of failures in usage of
                                    Docker. Just to mention one, where
                                    did the init daemon go, it's been there
                                    for a reason in linux OS's and now
                                    we run applications on top of the system
                                    without it ... I don't feel
                                    comfortable with that, especially if
                                    you don't
                                    have a JVM as process running which
                                    starts spawning other processes (one
                                    might remember the zombie processes).
                                    In the end there are mostly more
                                    slopy/lazy people around[1] trying to
                                    get something going, that's why
                                    Docker will be sufficient enough,
                                    while the
                                    dynamic and re-configurable service
                                    oriented software architecture will be
                                    on the decrease. One just needs to
                                    follow that Microservice hype.
                                    Docker/SpringBoot are just part of
                                    this "mantra" :D
                                    In the end people will just split
                                    their Monolithic rubbish up to
                                    different small Monolithic piles of
                                    rubbish, but in case one of them is
                                    failing, they'll end up with one big
                                    failing pile of rubbish.

                                    Besides this rant, I think building
                                    a custom Karaf with your
                                    application on top, distributable as
                                    Docker image. Or as I did for a
                                    showcase building a base Karaf
                                    Docker Image for Continuous
                                    Integration/Delivery Pipeline is a
                                    good combination. As long as it's
                                    possible to configure the services
                                    inside this docker image from the
                                    outside.

                                    regards, Achim

                                    [1] -
                                    
http://blog.osgi.org/2014/08/__is-docker-eating-javas-lunch.__html
                                    
<http://blog.osgi.org/2014/08/is-docker-eating-javas-lunch.html>


                                    2015-04-08 17:34 GMT+02:00 Frank
                                    Lyaruu <fr...@dexels.com
                                    <mailto:fr...@dexels.com>>:

                                        I agree, I do feel that vibe
                                        from time to time, mostly due to the
                                        'containers should be immutable'
                                        mantra.

                                        In my opinion, if you can get
                                        away with it, make it as dynamic
                                        as you
                                        want, but I guess we all know
                                        that building an application
                                        that can be
                                        reconfigured + updated on the
                                        fly is not easy at all.

                                        Anyway, while we're at it, I
                                        also wrote a few posts about OSGi +
                                        Docker, with quite a different
                                        approach: I explore monitoring
                                        the Docker
                                        API to discover services, and
                                        inject those services as OSGi
                                        configuration
                                        data:

                                        http://www.codemonkey.nl/__discovery/
                                        <http://www.codemonkey.nl/discovery/>

                                        I think OSGi and Docker can
                                        complement each other very nicely.

                                        regards, Frank

                                        On Wed, Apr 8, 2015 at 4:54 PM,
                                        Ryan Moquin
                                        <fragility...@gmail.com
                                        <mailto:fragility...@gmail.com>>
                                        wrote:

                                            Don't get me wrong, I don't
                                            mean that Docker and Karaf are
                                            interchangeable.  I mean
                                            that it feels like, from
                                            quite a few things I
                                            read, that the trend may be
                                            to have a docker image built
                                            as part of every
                                            CI build.  The purpose being
                                            that deployments should be
                                            fully immutable and
                                            if changes need to be made,
                                            then a new Docker image
                                            should be generated and
                                            deployed.

                                            One particular conversation
                                            that I felt really expressed
                                            this type of
                                            development track is this one:

                                            
https://groups.google.com/__forum/m/#!topic/fabric8/__iEmyW0_rnSk
                                            
<https://groups.google.com/forum/m/#!topic/fabric8/iEmyW0_rnSk>

                                            Fabric8 used to be fully
                                            built on Karaf but has
                                            changed the approach
                                            to support other runtimes.
                                            Nothing is wrong with that,
                                            but if that pattern
                                            becomes a trend, then it
                                            feels that many of the nice
                                            features of Karaf will
                                            become "discouraged" and I
                                            can't see them being
                                            furthered in Karaf at that
                                            point.

                                            I love Karaf and everything
                                            it offers.  I'm just a
                                            little concerned
                                            about how Docker is being
                                            pushed and the mindset that
                                            seems to evolving
                                            around it.  The point is,
                                            I'm hoping that because
                                            Docker is immutable, that
                                            it doesn't cause all
                                            software development to
                                            shoot to be immutable.

                                            Hopefully that makes sense.
                                            :)  Lots of new technologies
                                            allow
                                            developers to know less
                                            about software development
                                            and to write sloppier
                                            code because they can get
                                            away with it.  While
                                            building things faster and
                                            minimizing redundant or
                                            error prone tasks is great.
                                            I guess I'm a little
                                            concerned about how Docker
                                            can be misused and the
                                            effect it could have.

                                            Hopefully that makes sense
                                            :)  I have no problem
                                            embracing Docker as
                                            a container to run Karaf in,
                                            I'm just hoping Docker
                                            doesn't become a
                                            liability or stifler to Karaf.

                                            These of course are only my
                                            opinion of the research I've
                                            been doing
                                            on and off.  I may be
                                            completely off the mark or
                                            misinterpreting things.

                                            Ryan

                                            On Wed, Apr 8, 2015 at 10:04
                                            AM, Vincent Zurczak <
                                            vincent.zurc...@linagora.com
                                            
<mailto:vincent.zurc...@linagora.com>>
                                            wrote:

                                                   Hi,

                                                I don't know if we can
                                                really compare Karaf and
                                                Docker.
                                                I use OSGi to build
                                                modular applications. My
                                                bundles are Java
                                                modules that I can
                                                assemble in one way or
                                                another. And I use Karaf to
                                                create a custom
                                                distribution of my OSGi
                                                applications. It is a
                                                developer
                                                thing.

                                                Now, I use Docker to
                                                execute applications in
                                                an isolated container
                                                on a machine.
                                                Even on VM, running
                                                Docker can simplify
                                                support and debug for
                                                applications. The fact
                                                we can isolate things is
                                                very helpful for that. And
                                                it is convenient to
                                                maximize the usage of VM
                                                resources.

                                                I do not see how one
                                                could replace the other.
                                                BTW, I already run Karaf
                                                in Docker containers.
                                                And one of our OSGi
                                                applications (which runs
                                                in Karaf) can create and
                                                interact with Docker
                                                containers. So, you can
                                                make both of them
                                                together when you need.


                                                Le 08/04/2015 14:31,
                                                Ryan Moquin a écrit :

                                                I kind of feel like the
                                                big push of Docker in
                                                the development
                                                community in general (as
                                                a whole, not talking
                                                about the Karaf developer
                                                community), will
                                                potentially cause a lack
                                                of innovation and
                                                improvements in
                                                the deploying of
                                                applications.  Docker
                                                could become a crutch.
                                                If an
                                                application is slowly
                                                leaking memory over a 24
                                                hour period, why fix it?
                                                When it crashes, just
                                                replace it with a new
                                                instance.


                                                May I say that cloud
                                                computing and
                                                virtualization in
                                                general already
                                                setup this kind of approach?
                                                When a VM or a container
                                                has a problem, it may
                                                indeed be more simple
                                                to launch a new one,
                                                reconfigure your
                                                application to use it
                                                and kill the
                                                old one. But this is not
                                                new at all. And there
                                                are some little things to
                                                deal with, like
                                                reconfiguration. Docker
                                                works the same, at its
                                                level. And
                                                even if you can create
                                                new containers, the less
                                                procedures you have in
                                                production environments,
                                                the better it is. So,
                                                having applications with
                                                99,99% uptime will
                                                always be better.

                                                BTW, Docker also has
                                                some limitations (with
                                                systems services as an
                                                example).
                                                So, it comes with its
                                                own problems. And I do
                                                not expect embedded
                                                systems to use Docker
                                                (at least, for the moment).

                                                To summer it up, I would
                                                say OSGi brings
                                                modularity to Java
                                                applications.
                                                And that Docker brings
                                                modularity to
                                                deployments. That's not the
                                                same.

                                                My 2 cents,


                                                  Vincent.

                                                --
                                                Vincent Zurczak
                                                Linagora:
                                                www.linagora.com
                                                <http://www.linagora.com>

                                                <twitter_16.png>
                                                
<https://twitter.com/__VincentZurczak
                                                
<https://twitter.com/VincentZurczak>>
                                                <linkedin_16.png>
                                                
<http://fr.linkedin.com/pub/__vincent-zurczak/18/b35/6a7
                                                
<http://fr.linkedin.com/pub/vincent-zurczak/18/b35/6a7>>
                                                <skype_16.png>
                                                <callto://vincent.zurczak>
                                                <wordpress_16.png>
                                                
<http://vzurczak.wordpress.com__>






                                    --

                                    Apache Member
                                    Apache Karaf
                                    <http://karaf.apache.org/> Committer
                                    & PMC
                                    OPS4J Pax Web
                                    
<http://wiki.ops4j.org/__display/paxweb/Pax+Web/
                                    
<http://wiki.ops4j.org/display/paxweb/Pax+Web/>>
                                    Committer & Project Lead
                                    blog <http://notizblog.nierbeck.de/__>
                                    Co-Author of Apache Karaf Cookbook
                                    <http://bit.ly/1ps9rkS>

                                    Software Architect / Project Manager
                                    / Scrum Master




                        --

                        Apache Member
                        Apache Karaf <http://karaf.apache.org/>
                        Committer & PMC
                        OPS4J Pax Web
                        <http://wiki.ops4j.org/__display/paxweb/Pax+Web/
                        <http://wiki.ops4j.org/display/paxweb/Pax+Web/>>
                        Committer &
                        Project Lead
                        blog <http://notizblog.nierbeck.de/__>
                        Co-Author of Apache Karaf Cookbook
                        <http://bit.ly/1ps9rkS>

                        Software Architect / Project Manager / Scrum Master





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




        --

        Apache Member
        Apache Karaf <http://karaf.apache.org/> Committer & PMC
        OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
        Committer & Project Lead
        blog <http://notizblog.nierbeck.de/>
        Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>

        Software Architect / Project Manager / Scrum Master




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

Reply via email to