Hi Mohamed,

I had the fortune and in parts misfortune of being part of a few such migration projects. Besides our own internal one, everyone decided against OSGi. The descension was always because of personal resentment and/or because everybody had his personal favourite toy they wanted to play with. The reasons ranged from " We don't want to use Eclipse" (enroute with maven  wasn't available at the time) over "We want spring because we don't understand OSGi and it seems to complicated" to " Java is outdated, we want to build it with NodeJS". They all jumped on the Martin Fowler approach without really considering what it means in the end. Each ended in disaster or went through a hard phase of near disaster with jobs and reputations on the line. Most ended up with something OSGiish with a lot of the pain going along with modularity but missing most of its benefits.

The issue is complex but we Identified one main reason:

Modularity is an abstract concept for many developers. Spring for example does not really teach and force a developer to think in a modular fashion. All I saw was a bunch of smaller Monoliths packed in Docker containers. The dynamic nature of a Microservice environment OSGi addresses with its Bundle and Service life cycle , was pushed in the realm of Kubernetes. But Kubernetes (or comparable Systems) is made for managing your Containers and not for any application and service life cycle. Thus one needs at least a few Developers/Architects that have modularity internalised and address issues early on.

Another issue with the Martin Fowler approach you have already addressed. A fully distributed system comes with a lot of different problems (e.g. caches). Also the point of network latency and the time serialization and deserialization is an underestimated issue.

Like Neil stated: If you are already have an OSGi application you already have a microservice architecture, but maybe no distributed one. The way to go is build a good microservice monolith (or modulith, like it is called nowadays) and then move only the services to there own containers, that really need scaling. Graham Charters talk from the 2016 EclipseCon Europe addresses this quite nicely: https://de.slideshare.net/mfrancis/microservices-osgi-better-together-graham-charters

By your mention of blueprint, I deduct that you might use an older version of OSGi. Our internal project was somewhat similar and we managed to go distributed without major problems. We migrated to the latest OSGi Version and used bnd instead of PDE. Later we moved some service to there own container. It worked like charm. We could even show the process to a customer, with zero downtime, by pulling up the new containers and removing bundles with the local service implementations while the system was running.

Regarding your point of finding/keep OSGi developers: This is something we are confronted with rather often. The best way get developers sold on OSGi is using the latest version of it together with bnd (pure or with the maven integration). The development speed you can reach and maintain even in complex applications makes most other Java developers jealous and interested to learn more.

Regards,

Jürgen.


Am 03/05/2019 um 10:57 schrieb Mohamed AFIF via osgi-dev:
Hi  Andrei,
My question had as aim to collect some experiences of suchs migrations if this exist, we're in brainstorming phase and I'm not making any judgement value about OSGI or microservices architecture,  but what we push to believe that we should probely move toward another technology, is:  the business requirement, indeed we want to expose our service to clients as API, and the several technical complications we 've ve been faced to everytime we want to implement a feature easily provided and could be implemented by other open framework in the market, there is also the Human ressource question is involved beacause it's not easy find/keep OSGI developers. personaly  I think that OSGI is a perfect tehcnology for servers or embedded system, but I've some doubt when it's regarding applications with open architectures, it's my own view and I could be wrong

Regards

Mohamed.







@Neil
Obviously a simple



Le jeu. 2 mai 2019 à 16:52, Andrei Dulvac <dul...@apache.org <mailto:dul...@apache.org>> a écrit :

    Hi Mohamed, Neil.

    Neil, while I agree with you, I think Mohamed means it in the more
    "modern", widely-accepted sense:
    https://martinfowler.com/articles/microservices.html

    """
    In short, the microservice architectural style [1]
    <https://martinfowler.com/articles/microservices.html#footnote-etymology>
    is an approach to developing a single application as a suite of
    small services, each running in its own process and communicating
    with lightweight mechanisms, often an HTTP resource API.
    """

    Mohamed, I'm curious what you end up with. Without getting too
    much into it, I dismissed the idea as something "not worth it".

    - Andrei

    On Thu, May 2, 2019 at 12:37 PM Neil Bartlett via osgi-dev
    <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>> wrote:

        Well the good news is that OSGi is already a microservice
        architecture, so you have already finished. Congratulations!

        If that answer doesn't quite satisfy you, maybe you'd like to
        describe in more detail what you are attempting to achieve and
        why?

        Regards,
        Neil

        On Thu, 2 May 2019 at 11:06, Mohamed AFIF via osgi-dev
        <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>> wrote:

            Hello everybody,

            We 're starting to study the possibility to transform our
            architcteure in order to migrate from OSGI to microservice
            architecture, and I would like to know if there is alreay
            some people who had thought about this subject or already
            start this migration.
            Because at first sight it would not be an easy task, many
            problems/issues we will be facing to them (blueprint
            injections, managing ditrubued caches instead of one cache
            in one JVM...)

            Many thanks



-- Cdt
            Mohamed AFIF
            _______________________________________________
            OSGi Developer Mail List
            osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
            https://mail.osgi.org/mailman/listinfo/osgi-dev

        _______________________________________________
        OSGi Developer Mail List
        osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
        https://mail.osgi.org/mailman/listinfo/osgi-dev



--
Cdt
Mohamed AFIF

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev


--
Jürgen Albert
Geschäftsführer

Data In Motion Consulting GmbH

Kahlaische Str. 4
07745 Jena

Mobil:  0157-72521634
E-Mail: j.alb...@datainmotion.de
Web: www.datainmotion.de

XING:   https://www.xing.com/profile/Juergen_Albert5

Rechtliches

Jena HBR 513025

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to