Jan 22 2008

Package Centric Deployment, or how to package packages

This one has been in my queue for ages .. well.. 3+ months or so .. but still..

Over at dev2ops an article was posted with as title Pacakge Centric Application Release Methodology.

And it's that Application Release part which is actually the focus point.
The Application being split up in different parts where different teams have responsibility over those parts and having isolated packages for these parts is a good thing.

But you can easily confuse that naming of a package with the way a systems person looks at a pacakge, a deb , or an rpm. And then the story changes a lot.

They list the contents as a packge as follows :

What belongs in a package?
* Code: Application files executed by the runtime system. This could be compiled objects or interpreted script.
* Platform: Files that comprise the runtime layer. This is generally server software like Apache, JBoss, Oracle, etc.
* Content: Non-executed files containing information. These could be media files or static text.
* Configuration: Files defining the structure and settings of an online service. These could be files for configuring the runtime system or the application.
* Data: Files containing data or procedures for defining data. These could be database schema dumps, SQL scripts, .csv files, etc.
* Control: Configuration and procedures consumed by management frameworks

Now I`m convinced that not all of this content belongs in an RPM or Deb.
Config , Content and Data don't belong there at all.
Yet they have to be delivered as a package by the development team, we need to know what the deliverables are they have to provide us with. But on a system, if you autorize change to content or config you don't want our package management system to keep telling you it's checksums have changed.

Within the package-centric paradigm, each type of change noted above is bundled, distributed and executed via a package.
Executed ? You don't want your package management system to do this .. that's exactly what your configuration management platform isi supposed to do isn't it ?
On a systems level you really want to separate code, data and config.

So dev2ops is talking about a package from a developer point of view, which is a totally different view as the one from a sysadmin ...

Oct 05 2007

Links of the afternoon

Lots of new and interresting stuff on the web these days.

First of all the Centos community has a now. Were I ran into the brand new feed of Field Commander Wieers Dag was long overdue setting up a blog but he finally made it and he already pointed me to interresting stuff :)

Then there is Peter Vandenabeele who also decided to start up a blog.

And last but not least I ran into Dev2Ops , upon sending that link to a collegue he asked me if I was behind that site .. I`m not :)

Dev2Ops clearly is tackling the stuff I`m involved with on a daily base. How do you deploy and upgrade software and it's configuration for different similar machines in the field.
The have a couple of nice polls on their site which interrest me:
How do you disribute software releases for in-house developed applications? and How do you maintain
system configuration files?
. Just go a head and vote . I`m interrested in the results.
My votes were on using pacakges (rpm/deb) using apt or yum and off course Puppet ! ;)

BTW.. It makes me wonder .. who is NOT using Drupal these days :))