We use UrbanCode Deploy for storing the artifacts of the environment. In both our production and non-production environments, we rely on UrbanCode as an artifact repository. For example, if we want to deploy something in production then we take our usual steps, such as stopping what needs to be stopped, then we deploy using UrbanCode, and then we restart to make our production environment available again. This solution is also useful for maintaining different versions of the artifacts because it has the capability of maintaining snapshots.
Currently, we are using UrbanCode Deploy, a product from IBM. Before I had a bit of expertise with it at a bank in Belgium that uses recent commissions from computer systems. Now, I work in Belgium for an importer of Volkswagen, Audi, Porsche, Lamborghini, etc. I'm in the middleware department. What we do is we link all the different applications together. We deploy UrbanCode as a middleware solution.