Bravo! Woohoo!

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Bravo! Woohoo!

Brad Johnson
Well done.  Loving the profiles and static compilation mechanics.

After pulling in Camel/CXF, my bundles and a karaf 4.0.5 through the profiles I ended up with a nice zip file of 40MB. It runs and works perfectly.  This is going to open a whole new world.  New EIPs.  I was thinking of how nice this would be for isolating a legacy database, for example.  Set up a gateway with security and web services in an appliance and then decompose the individual service calls into separate applications that run locally on local ports or JMS or whatever. If a particular query or set of queries was nasty and might benefit from caching, a new appliance could be created for it.  The gateway might send 80% of calls to the old appliance and 20% of calls to the new appliance during an initial phase for comparison purposes.  If the new one didn't work properly, just change the gateway configuration and switch all traffic back or if it worked great, switch all the traffic to the new one.  Each service appliance could be tweaked for its own individual performance needs.  I can SSH into each one if I want and look at what's going on.

Felix/Karaf or Equinox/Karaf are perfect little containers for that sort of approach.

Ironically part of the beauty of that isn't about the technology itself but about organizations.  If you touch the code in production you trigger all kinds of procedures and paperwork.  Configuration less so.  And new code can be even less problematic for highly constrained problems.

It really is what I've been wanting.

One thing I'd like to discover or suggest is how to run tests with the assembled code before zipping or after zipping but from an unzipped copy.  So I run the profiles and create my appliance and now I want to fire it up from the build.  Personally I have a couple of fluent builders I put together for JAXWS and JAXRS client that I run from CamelBlueprintTestSupport.  But if I could run the profiles to completion, fork the container, and then fire up web service tests against it that would be ideal.  Plain ol' JUnit would be best.  I'm not really testing Camel at that point.  All the Camel routes and transforms and logic are tucked neatly inside the black box of the appliance.

Great work guys!

Brad
Reply | Threaded
Open this post in threaded view
|

Re: Bravo! Woohoo!

Jean-Baptiste Onofré
Thanks for the update Brad !

I'm looking forward some feedbacks from you about karaf-boot ;)

Regards
JB

On 04/29/2016 05:09 PM, Brad Johnson wrote:

> Well done.  Loving the profiles and static compilation mechanics.
>
> After pulling in Camel/CXF, my bundles and a karaf 4.0.5 through the
> profiles I ended up with a nice zip file of 40MB. It runs and works
> perfectly.  This is going to open a whole new world.  New EIPs.  I was
> thinking of how nice this would be for isolating a legacy database, for
> example.  Set up a gateway with security and web services in an
> appliance and then decompose the individual service calls into separate
> applications that run locally on local ports or JMS or whatever. If a
> particular query or set of queries was nasty and might benefit from
> caching, a new appliance could be created for it.  The gateway might
> send 80% of calls to the old appliance and 20% of calls to the new
> appliance during an initial phase for comparison purposes.  If the new
> one didn't work properly, just change the gateway configuration and
> switch all traffic back or if it worked great, switch all the traffic to
> the new one.  Each service appliance could be tweaked for its own
> individual performance needs.  I can SSH into each one if I want and
> look at what's going on.
>
> Felix/Karaf or Equinox/Karaf are perfect little containers for that sort
> of approach.
>
> Ironically part of the beauty of that isn't about the technology itself
> but about organizations.  If you touch the code in production you
> trigger all kinds of procedures and paperwork.  Configuration less so.
> And new code can be even less problematic for highly constrained problems.
>
> It really is what I've been wanting.
>
> One thing I'd like to discover or suggest is how to run tests with the
> assembled code before zipping or after zipping but from an unzipped
> copy.  So I run the profiles and create my appliance and now I want to
> fire it up from the build.  Personally I have a couple of fluent
> builders I put together for JAXWS and JAXRS client that I run from
> CamelBlueprintTestSupport.  But if I could run the profiles to
> completion, fork the container, and then fire up web service tests
> against it that would be ideal.  Plain ol' JUnit would be best.  I'm not
> really testing Camel at that point.  All the Camel routes and transforms
> and logic are tucked neatly inside the black box of the appliance.
>
> Great work guys!
>
> Brad

--
Jean-Baptiste Onofré
[hidden email]
http://blog.nanthrax.net
Talend - http://www.talend.com