Over a million developers have joined DZone.

Hot Deploy Still Hell

DZone 's Guide to

Hot Deploy Still Hell

· DevOps Zone ·
Free Resource

Whoever coined the phrase Open Sores should get some kind of award, if not one from the Nobel committee, maybe a plaque from the Friar‘s Club. Funny and so true.

Tomcat has been around forever and hot deploy has never really worked. Found a hilarious thread with the two Hibernate cats laying out the reasons why, um, 6 years ago. Yes folks, this predates the iPhone. (Read it here . (And David Geary makes a guest appearance.)

I have complained about this many times in the past so I don‘t really have much new to add to this, but that per one of my recent posts, it is interesting to note that whole new limbs are spawned form the dead, necrified stumps of our lumbering corpus (read: Heroku looks tasty to people who‘ve repeatedly been tortured with long, attempts to deploy that fail often and are always punctuated by PermGen errors).

But there‘s something else here: I look at this stuff and think ‘oh, the Tyranny of platforms that want to deliver a complete cycle that‘s complete, documented and tested! thank god we have these wonderful open tools that like around like drooling babies in their own spittle for a decade plus tormenting the unwary.‘

The sickest part of this is that the same developers who tolerate this stuff, if they were tasked by their employers to make an iPhone app and received a fractional measure of this nonsense, they be setting the drapes on fire.

We‘ve lost all perspective on who deserves ire and for what. To wit:

I have complained about Sonos a bunch of times. It‘s one of those things that when it works is totally fabulous, and the basic controller is much better than trying to play music out of itunes, no debating that. However, they:

  1. Don‘t support multiple locations
  2. Only support SMB and that is a miserable experience

So, on 1, I finally dragged components from all 3 of my locations into each other and made one big setup. It works better overall. Much of the time, I can go from one place to the other and it will find the other controllers and I can just start playing music. However, the drive mappings are now really flakey: I read around and people were saying if you have > 1 location, just make sure you have the same music in both places and Sonos is smart enough to figure out that you want Song X, which is available at or, go find it given which share is available. The problem is, since instituting this, my shares disappear much more often. Sonos claims that the OS forbade it access, but I do AFP from finder with the account information and it comes right up. My point in this is that this is an EPIC fail. I mean, this is not ‘they didn‘t have my favorite ice cream parlor on the new Apple Maps.‘ This is: the software utterly fails and requires me to set it up all over again!

On a related case that I have whined about before: Uverse‘s DVR has gone down into the pits of hell. I almost did not get it when I found out it was implemented using mickeysoft tinker toys, but I did and it worked pretty well. Now, it‘s just completely crazy. You press keys on the remote, the light blinks so it received the command. Nothing happens. Then a minute later, it rushes through a bunch of commands. Call me naive, but I would think that a company like ATT would have a testing group that would have seen this and said ‘ok, this is unacceptable behavior.‘

The counter to this is that people will reach for a convenience or the lure of increased efficiency, then when that opens the door to possibly worse nonsense and all the supposed savings are drained, they won‘t notice and instead will just adapt to a new normal which is in many ways worse. This is mostly attributable to two things: 1. the lack of a single point of verifying that the whole cycle, or Value Stream Map as the Lean guys would call it, is working, and 2. not enough people complaining.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}