Howdy Christian, J-B, et al….
I’ve been working on such a thing for the last few weeks in a cloud of shelter-in-lace frustration, and I believe I can donate what I have if it’s helpful at all (otherwise, I’ll be very interested in what you have to see how it differs). I had that moment of glorious arrival on Friday when my bundle finally deployed in gogo and the diagnostic print from my activation routine printed to System.out. Now, for my stuff, it’s still a bit of what a former Irish company president of mine would call a “dog’s dinner”, since I have tons of redundant export-package references and such to remove. I also am thinking the well-established packages (like the ones pulled from referencing the felix obr repository) do really want to remain separate bundles, just cleanly pulled in and activated at the time of REST/microservice deploy (which is what mine is doing). Really, what I did was to consolidate other examples I had, none of which built or activated properly on Felix 6.0.3 for me and I got frustrated and created my own. Also, mine is about 50% Apache Jersey, 50% Felix content/reference-wise. Do you want to make it pure felix? It’s all just pom.xml references otherwise. And just to be clear, is there anything manifestly “microservice”-y that would distinguish from a reasonably well-featured REST framework? I take it you’re looking to pull in karaf (I haven’t yet, but will, I’m just learning to go slow because one false/erroneous move can break the entire thing I’m finding). I have it up and speaking, I just need to create a notion of universal deploy-ability (and that includes guidance for docker-ization, which I’m thinking I’ll do by having container initialization that drives felix/gogo via commands to do the resolve and deploy). In summary, if you’d rather go solo, that’s cool, but I’m all over this this week and could help if it helps at all, would be happy to contribute. Regards, Wayne *From: *Christian Schneider <ch...@die-schneider.net> *Sent: *Sunday, April 12, 2020 1:59 PM *To: *Felix Dev <dev@felix.apache.org> *Subject: *Re: Proposal for a microservice blueprint Looking forward to what you come up with. Do you already have something to look into or help with? I will try to get along without a special runtime (basically just felix framework + suitably configured bundles). For a first application assembly I plan to use bnd maven plugins like in the enroute example. There is a lot of possible space for improvements though. I hope there are some cool tools from karaf we can use to make the assembly and runtime even better. Christian Am So., 12. Apr. 2020 um 19:46 Uhr schrieb Jean-Baptiste Onofre < j...@nanthrax.net>: > Hi Christian, > > That’s interesting, but I think that people are expecting more than that. > > 1. Most of the time, we do things too much complex. > 2. Assembly again layers is not always easy > 3. Where’s the runtime ? > > Your main point is valid: lot of people went too far in fine grained > services and now, they are thinking about "smart" micro services. > That’s exactly the purpose of Netflix using Apache Karaf. > > Back on your point, that’s the target of "new" Karaf tool that I restarted > (re-starting/founding Karaf Boot we discussed while ago that addressed > exactly the points you mentioned). > > So, why not having a blueprint (I still think people wants to create their > own blueprint), but having tool + runtime is more interesting and that’s > why I’m working on Karaf "DevX code" PoC. > > Regards > JB > > > Le 12 avr. 2020 à 11:58, Christian Schneider <ch...@die-schneider.net> > a écrit : > > > > In recent years we saw a big trend towards micro services and cloud. > > Lately people discovered though that such services are often made too > fine > > grained. > > The newest trend goes to building bigger micro services on the level of > > domain driven design bounded contexts. > > > > Especially for these services OSGi is a very interesting platform as they > > need more internal structure than the more fine grained services. > > Unfortunately it is quite hard to build a cloud native service in OSGi > from > > scratch. > > > > So I would like to offer a blueprint for cloud native micro services > inside > > the felix community. The goal is to provide all parts of a cloud native > > system that are usually needed, like: > > > > * Declarative services as dependency injection > > * Aries Jaxrs Whiteboard for REST > > * Dropwizard metrics exported as Prometheus metrics > > * Swagger > > * Halbrowser > > * Felix healthchecks > > * Configuration using OSGi configurator + Environment variables plugin > > * Logging to console > > * Final application is provided as a runnable jar > > * Example docker build files > > * Example kubernetes yaml > > > > What do you think? > > > > Christian > > > > -- > > -- > > Christian Schneider > > http://www.liquid-reality.de > > > > Computer Scientist > > http://www.adobe.com > > -- -- Christian Schneider http://www.liquid-reality.de Computer Scientist http://www.adobe.com