On 01 Mar 2013, at 11:26 PM, Eric Kolotyluk <[email protected]> wrote:
> A while back we had some interesting discussions on using Maven, or > maven-like technology for deploying production software. I was wondering if > anything new has been happening since then. > > Basically what I am hoping to see is a generic installer framework that > bootstraps deployment of a production system or service the way Maven > bootstraps a development environment. > > Can anyone point me to anything happening on that front? For a number of years now I've been involved in packaging the configuration of systems over and above the code of systems in the native format of that system, for Redhat derivatives that would be RPM. In other words, you deploy code packaged as an RPM, as well as configuration packaged as an RPM, and then you add the last very small details (passwords, certificates) via chef/puppet. Given that the majority of code we were building was built and released with maven, it was a natural extension that the configuration we were building was also built and released with maven, and so about a year ago I started getting the rpm-maven-plugin to build configuration RPMs. This effort uncovered a number of maven bugs, the clean plugin was found to be incapable of deleting symbolic links (it now can), and maven-filtering component used by the resources plugin couldn't escape the "$" character used in shell scripts (now it can), and the rpm-maven-plugin had various other bugs (now fixed). If you use the latest versions of the resources, clean and rpm plugins, building configuration packages as RPM works very well. Using native packaging formats built by maven means that from an operations perspective, the software and the code "is just a package" and therefore something operations people are likely to be able to work with and understand, and at the same time the building and releasing of these packages "is just maven" and are therefore something developers are likely to be able to work with and understand. In our environment, "deploy the production software" is just "yum install [production-software-config]". More importantly, "oh no, the upgrade broke everything" is responded to with "yum downgrade [production-software-previous-version]". Using this technique should also be possible with other systems like Debian derivatives, you would need to choose a maven plugin able to create Debian packages, but the principle is the same. Regards, Graham --
smime.p7s
Description: S/MIME cryptographic signature
