Re: Puppet Labs and Trapperkeeper

2014-05-30 Thread Sarwar Bhuiyan
I really like it. It reminds me of OSGi Declarative Services where we use 
the @Reference to inject stuff in. Also the init, start, and stop are 
really nice in keeping with the OSGi component interface without all its 
other baggage. Keep it up.

I was wondering if you had any ideas on solving the zero-downtime 
deployment/redeployment problem? In OSGi, individual bundles can be updated 
individually and that could in effect be used to do some form of 
zero-downtime deployments in the sense that only the services that need to 
restart will restart based on the dependency tree. Of course, it might not 
work for all cases and we might need some form of rolling restarts as well. 
Just wondering if you had any ideas or plans around that for Trapperkeeper.

Thank you.

Sarwar

On Tuesday, April 15, 2014 4:55:09 PM UTC+1, Chris Price wrote:

 Yep, you've pretty much nailed it... the design was heavily inspired by 
 the OSGi service registry, but we didn't really have a need for most of the 
 other functionality that OSGi offers.  So we basically just came up with a 
 way to describe services via Clojure protocols, and then we wire them 
 together with Prismatic graph (thanks, Prismatic!).  Hope folks find it 
 useful!


 On Mon, Apr 14, 2014 at 9:24 PM, Mike Haney txmik...@gmail.com 
 javascript: wrote:

 Great timing on the new blog post.  I'm ramping up on my first real 
 clojure app, and have been planning to use Component for this piece.  I 
 read the first blog post yesterday and it sounded interesting, but I've 
 pretty much locked down the stack I'm going to use (you can evaluate 
 libraries forever, but at some point you just have to stop looking and pick 
 one to go with).

 But after reading the new post, I think it's worth taking a look at 
 Trapperkeeper.  Even if I don't switch now, if all goes well I would like 
 to turn this app into a larger SaS offering, possibly multi-tenant, and I 
 could see something like Trapperkeeper helping there.

 I get the distinct impression you have some former OSGI users on your 
 team?  This reminds me a lot of the service registry in OSGI.  And I don't 
 mean that as an insult - the service registry was the best part, it was all 
 the other crap that made it painful to use (particularly anything from 
 eclipse, which ruined OSGI in my opinion, but that's another rant).

 Anyway, this looks like something that could be useful in many cases, and 
 thank you for open-sourcing it.

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@googlegroups.com 
 javascript:
 Note that posts from new members are moderated - please be patient with 
 your first post.
 To unsubscribe from this group, send email to
 clojure+u...@googlegroups.com javascript:
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+u...@googlegroups.com javascript:.
 For more options, visit https://groups.google.com/d/optout.




-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Puppet Labs and Trapperkeeper

2014-05-30 Thread Chris Price
Thanks!

No concrete plans around any sort of hot code swapping for now.  That gets 
into lots of classloader stuff that, to be honest, seems like it adds a lot 
of complexity that we'd like to avoid.  Also, we are deploying all of our 
apps as uberjars for the time being, so we don't have a concrete use case 
for swapping out an individual service jar for now.

I'd love to see trapperkeeper be able to support this kind of thing for 
users who are interested in it, but I'd envision that a lot of the 
implementation would be done as a separate, optional TK service that 
wouldn't be mandatory for users who didn't feel they needed to introduce 
the extra complexity.  (There'd probably be a few changes necessary to the 
core framework to support such a service, though.)

I think it would be fairly easy to write a notification/restart service 
that could drop into the existing framework today, for things like 
reloading a service when configuration changes.  Loading up new code for a 
running service would be more challenging.  Anyway, it's something that 
we're definitely keeping in mind and would be interested in hearing ideas 
about how it might look, but no concrete plans.

Next few things on our list are: making the jetty9 service support multiple 
jetty instances (e.g. to support running two web apps on two different 
ports, with different SSL configurations), a new service that allows you to 
configure all of your web routes in a single place, and some plumbing work 
to improve the way we're currently interacting with Prismatic Graph.


On Friday, May 30, 2014 6:40:02 AM UTC-7, Sarwar Bhuiyan wrote:

 I really like it. It reminds me of OSGi Declarative Services where we use 
 the @Reference to inject stuff in. Also the init, start, and stop are 
 really nice in keeping with the OSGi component interface without all its 
 other baggage. Keep it up.

 I was wondering if you had any ideas on solving the zero-downtime 
 deployment/redeployment problem? In OSGi, individual bundles can be updated 
 individually and that could in effect be used to do some form of 
 zero-downtime deployments in the sense that only the services that need to 
 restart will restart based on the dependency tree. Of course, it might not 
 work for all cases and we might need some form of rolling restarts as well. 
 Just wondering if you had any ideas or plans around that for Trapperkeeper.

 Thank you.

 Sarwar

 On Tuesday, April 15, 2014 4:55:09 PM UTC+1, Chris Price wrote:

 Yep, you've pretty much nailed it... the design was heavily inspired by 
 the OSGi service registry, but we didn't really have a need for most of the 
 other functionality that OSGi offers.  So we basically just came up with a 
 way to describe services via Clojure protocols, and then we wire them 
 together with Prismatic graph (thanks, Prismatic!).  Hope folks find it 
 useful!


 On Mon, Apr 14, 2014 at 9:24 PM, Mike Haney txmik...@gmail.com wrote:

 Great timing on the new blog post.  I'm ramping up on my first real 
 clojure app, and have been planning to use Component for this piece.  I 
 read the first blog post yesterday and it sounded interesting, but I've 
 pretty much locked down the stack I'm going to use (you can evaluate 
 libraries forever, but at some point you just have to stop looking and pick 
 one to go with).

 But after reading the new post, I think it's worth taking a look at 
 Trapperkeeper.  Even if I don't switch now, if all goes well I would like 
 to turn this app into a larger SaS offering, possibly multi-tenant, and I 
 could see something like Trapperkeeper helping there.

 I get the distinct impression you have some former OSGI users on your 
 team?  This reminds me a lot of the service registry in OSGI.  And I don't 
 mean that as an insult - the service registry was the best part, it was all 
 the other crap that made it painful to use (particularly anything from 
 eclipse, which ruined OSGI in my opinion, but that's another rant).

 Anyway, this looks like something that could be useful in many cases, 
 and thank you for open-sourcing it.

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@googlegroups.com
 Note that posts from new members are moderated - please be patient with 
 your first post.
 To unsubscribe from this group, send email to
 clojure+u...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google 
 Groups Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send 
 an email to clojure+u...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.




-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please 

Re: Puppet Labs and Trapperkeeper

2014-04-15 Thread Chris Price
Yep, you've pretty much nailed it... the design was heavily inspired by the
OSGi service registry, but we didn't really have a need for most of the
other functionality that OSGi offers.  So we basically just came up with a
way to describe services via Clojure protocols, and then we wire them
together with Prismatic graph (thanks, Prismatic!).  Hope folks find it
useful!


On Mon, Apr 14, 2014 at 9:24 PM, Mike Haney txmikes...@gmail.com wrote:

 Great timing on the new blog post.  I'm ramping up on my first real
 clojure app, and have been planning to use Component for this piece.  I
 read the first blog post yesterday and it sounded interesting, but I've
 pretty much locked down the stack I'm going to use (you can evaluate
 libraries forever, but at some point you just have to stop looking and pick
 one to go with).

 But after reading the new post, I think it's worth taking a look at
 Trapperkeeper.  Even if I don't switch now, if all goes well I would like
 to turn this app into a larger SaS offering, possibly multi-tenant, and I
 could see something like Trapperkeeper helping there.

 I get the distinct impression you have some former OSGI users on your
 team?  This reminds me a lot of the service registry in OSGI.  And I don't
 mean that as an insult - the service registry was the best part, it was all
 the other crap that made it painful to use (particularly anything from
 eclipse, which ruined OSGI in my opinion, but that's another rant).

 Anyway, this looks like something that could be useful in many cases, and
 thank you for open-sourcing it.

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Puppet Labs and Trapperkeeper

2014-04-14 Thread Chris Price
We published a follow-up post this morning, with a lot more detail on the 
Clojure side of things:

https://puppetlabs.com/blog/clojure-nerds-puppet-labs-application-services

On Sunday, April 13, 2014 6:48:10 PM UTC-7, Walter Heck wrote:

 As a non-clojure user, but a Puppet expert (ahum ;) ) I wrote a blog post 
 about this announcement that might be interesting for some folks here. I'd 
 also love to see comments on the post itself if I have drawn any wrong 
 conclusions:
 http://www.olindata.com/blog/2014/04/clojure-outsiders-investigation

 On Sunday, 13 April 2014 16:24:28 UTC+2, Brendan Younger wrote:

 I just saw that there's a library called TrapperKeeper 
 https://github.com/puppetlabs/trapperkeeper from the folks at Puppet 
 Labs.  It looks to be a more opinionated and complete version of Stuart 
 Sierra's Component library https://github.com/stuartsierra/component, in 
 that it explicitly pays attention to things like logging configuration and 
 JBoss support.

 Brendan Younger



-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Puppet Labs and Trapperkeeper

2014-04-14 Thread Mike Haney
Great timing on the new blog post.  I'm ramping up on my first real clojure 
app, and have been planning to use Component for this piece.  I read the first 
blog post yesterday and it sounded interesting, but I've pretty much locked 
down the stack I'm going to use (you can evaluate libraries forever, but at 
some point you just have to stop looking and pick one to go with).

But after reading the new post, I think it's worth taking a look at 
Trapperkeeper.  Even if I don't switch now, if all goes well I would like to 
turn this app into a larger SaS offering, possibly multi-tenant, and I could 
see something like Trapperkeeper helping there.

I get the distinct impression you have some former OSGI users on your team?  
This reminds me a lot of the service registry in OSGI.  And I don't mean that 
as an insult - the service registry was the best part, it was all the other 
crap that made it painful to use (particularly anything from eclipse, which 
ruined OSGI in my opinion, but that's another rant).

Anyway, this looks like something that could be useful in many cases, and thank 
you for open-sourcing it.

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Puppet Labs and Trapperkeeper

2014-04-13 Thread Brendan Younger
I just saw that there's a library called 
TrapperKeeper https://github.com/puppetlabs/trapperkeeper from the folks at 
Puppet Labs.  It looks to be a more opinionated and complete version of 
Stuart Sierra's Component 
library https://github.com/stuartsierra/component, in that it explicitly 
pays attention to things like logging configuration and JBoss support.

Brendan Younger

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Puppet Labs and Trapperkeeper

2014-04-13 Thread Dave Sann
related

http://puppetlabs.com/blog/new-era-application-services-puppet-labs

On Monday, 14 April 2014 00:24:28 UTC+10, Brendan Younger wrote:

 I just saw that there's a library called TrapperKeeper 
 https://github.com/puppetlabs/trapperkeeper from the folks at Puppet 
 Labs.  It looks to be a more opinionated and complete version of Stuart 
 Sierra's Component library https://github.com/stuartsierra/component, in 
 that it explicitly pays attention to things like logging configuration and 
 JBoss support.

 Brendan Younger


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Puppet Labs and Trapperkeeper

2014-04-13 Thread Walter Heck
As a non-clojure user, but a Puppet expert (ahum ;) ) I wrote a blog post 
about this announcement that might be interesting for some folks here. I'd 
also love to see comments on the post itself if I have drawn any wrong 
conclusions:
http://www.olindata.com/blog/2014/04/clojure-outsiders-investigation

On Sunday, 13 April 2014 16:24:28 UTC+2, Brendan Younger wrote:

 I just saw that there's a library called TrapperKeeper 
 https://github.com/puppetlabs/trapperkeeper from the folks at Puppet 
 Labs.  It looks to be a more opinionated and complete version of Stuart 
 Sierra's Component library https://github.com/stuartsierra/component, in 
 that it explicitly pays attention to things like logging configuration and 
 JBoss support.

 Brendan Younger


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.