We did the same for one of larger j2ee deployments. We had a notion of blue green deployment where staging env will always deploy the latest but prod env would go through gated blue green stages, i.e only on subset of tomcats will perform the deployment, & they'll go out of the load balancer during blue phase. Initially we had an lwrp that would exploit tomcat7's manager api for hot deployment, later we changed the implementation to do actual war cut/paste on disk and bounce the tomcat service (there was memery leaks in the manager api). We also had some additional settings to manage the hierarchical cachingĀ stuff.
You're describing exactly what we do at Simply Measured. Hard version pins manually updated for prod, continuous delivery of snapshots for staging, artifacts in nexus.
We use an ancient version of the nexus repo cookbook: https://github.com/RiotGames/nexus-cookbook, and are considering reworking our home grown artifact deploys to use https://github.com/RiotGames/artifact-cookbook.
BTW, I'm pretty sure that there's a significant number of chef shops with non-trivial java environments. I think they're just less ostentatious than rubyists like me.
--
Joseph Holsten
On 2013-05-31, at 09:15, "> wrote:
> My company is looking at a way to automate Java deployments, and manage
> environments. There are tools from the Java community that will automate
> deployments, but they won't do configuration management more broadly, and none
> of them are terribly well established.
>
> Our environments are relatively diverse, but to start with, we'd like to manage
> a collection of apps running on Tomcat servers. We build with Maven and deploy
> CI snapshots and releases to an internal Nexus repository. In an ideal world,
> I'd like to be able to do two things:
>
> 1. When a new release occurs, tell Chef that test servers should receive that
> release by incrementing the version number. Then have Chef download the
> binaries from Nexus (which I'm sure it can do with its Maven resource), and
> pass them to Tomcat. It seems to me this should be pretty easy.
>
> 2. On development servers, have Chef continuously check the snapshots on Nexus
> and perform the same installation procedure when an update occurs. This also
> seems like it's probably achievable.
>
> What worries me is that Chef doesn't seem to be very widely used for Java
> environments, and I'm wondering if there's a reason. Am I going down the wrong
> road, or does it seem like this is a good fit?
>
> For background, Chef will also need to configure agents for Logstash and Nagios
> (which I know it can do), and update an XML file that defines Logback logging
> configuration for Tomcat.
Archive powered by MHonArc 2.6.16.