Kalumet - Complete Environment Deployer Toolbox

Abstract

Kalumet a complete environment manager and deployer including J2EE environments (application servers, applications, etc), softwares, and resources. It's a perfect complement to continuous integration (managed by maven and continuum or jenkins for instance) by adding continuous deployment. The whole factory chain is cover and the software administrator managed all environments in secure and safe way, whatever the underlying application servers (Apache Geronimo, Apache Tomcat, Apache TomEE, RedHat JBoss, Oracle Weblogic or IBM Websphere) or softwares (printout system, Apache HTTPd, operating systems, etc) are.

Kalumet provides two kind of components :

  • Apache Kalumet agent are installed locally on the target server box.
  • Apache Kalumet console controls and manages the agents, allowing the software administrator to update all environments from a central multi-user web tool.

Background

Currently, Apache Kalumet is named BuildProcess AutoDeploy (http://buildprocess.sourceforge.net). The development has begun 4 years ago and several release have already been provided.

Rationale

The software environments administration is heavy cost task with a high level of human actions, especially when mixing J2EE environments, different operating systems, softwares, etc It suffers :

  • a different set of scripts or actions/procedures depending of the application server used (Geronimo, Tomcat, JBoss, Weblogic, Websphere, ...) or other middlewares (portals or ESB like ServiceMix, HTTP servers like Apache HTTPd, etc);
  • a high level of risk due to human actions (for example, an administrator can forget to deploy a JDBC DataSource, or forget to change an application configuration file);
  • migrate an application from an environment to another one request boring actions (for example, migration applications and all linked resources from a testing environment to a production one, this action is named "promote");
  • the upgrade process can be long (depending of the number of applications and complexity);
  • most of resources are stored on the application server box, not in a central repository.

Apache Kalumet secures the environment deployment and covers the whole environment scope including J2EE parts (EAR/WAR archives with classloader policy, JDBC DataSources, JMS Connection Factories, JMS Queues/Topics, etc) and resources (operating systems, softwares, etc) in a unique way. It's heavily expendable, that means that you can create new plugins for dedicated resources.

Initial Goals

When we have begun AutoDeploy, the first goal was to provide several J2EE application servers JMX plugins. But quickly, we have seen that multi-application servers support was only a part of the software administration needs.

That's why we have extended AutoDeploy to provide agents and a central console hosting all environments knowledges (artifact versions, resources, etc). Using the console, several administrators can use a central tool to manage all environments in a collaborative, unique and secure way.

The target is now to provide a complete tool to fully administrate a data center servers, softwares and middlewares.

Current Status

Currently, BuildProcess AutoDeploy provides two branches :

  • the 0.5 branch (with the 0.5.6 latest release) is the current stable branch. This branch is built every night using Apache Continuum (http://continuum.nanthrax.net).
  • the 0.6 branch is in progress and it's the target one to become Apache Kalumet

Community

Currently, AutoDeploy community contains two comitters, 5 contributors and around 50 users. BuildProcess AutoDeploy is used in production and test in several companies :

Core Developers

The core developers for AutoDeploy/Apache Kalumet project are :

  • Jean-Baptiste Onofré (founder in 2004).
  • Mike Duffy, WebSphere Consultant, contributes since 2005.

Open Source

Since the beginning, AutoDeploy was a Open Source project using GPL license. It switched to Apache 2.0 license in 2009, approved by all AutoDeploy developers (IP Clearance).

As all AutoDeploy contributors has approved, Apache Kalumet uses the Apache 2 license.

AutoDeploy Console currently use NextApp Echo2 framework, released under Mozilla Public License, which is a Category B license. The Apache incubation phase will use Echo2, acting that we have to switch to an Apache compliant framework (Pax Wicket and Vaadin could be used) before any TLP graduation.

Known Risks

Orphaned Products

AutoDeploy is already deployed in production at multiple companies. (see Community Section) AutoDeploy is getting traction with developers and thus the risks of it being orphaned are minimal.

Inexperience with Open Source

All code developed for AutoDeploy has been open source from the start (see Open Source section). And mostly by an ASF member Jean-Baptiste Onofré who is intimately familiar with the Apache model for open-source development and is experienced with working with new contributors. Jean-Baptiste Onofré, the creator of the project and one of the committers is also a committer on Apache Karaf, Apache ServiceMix, Apache Camel and Apache Ace.

Homogeneous Developers

The initial set of committers is from a small set of organizations. However, we expect that once approved for incubation, the project will attract new contributors from diverse organizations and will thus grow organically. The participation of developers from several different organizations in the mailing list is a strong indication for this assertion.

Reliance on Salaried Developers

It is expected that Kalumet will be developed on salaried and volunteer time, although all of the initial developers will work on it mainly on salaried time.

Relationships with Other Apache Products

AutoDeploy/Apache Kalumet depends upon other Apache Projects: Xerces, Xalan and multiple Apache Commons components and build systems like Maven. It will also use Apache OSGi project (Felix, Karaf, ACE) and project like Archiva.

A Fascination with the Apache Brand

The reason for joining Apache is to foster a healthy community of contributors and consumers around the project. This is facilitated by ASF and that is the primary reason we would like Kalumet to become an Apache project.

Documentation

AutoDeploy docs: http://buildprocess.sourceforge.net/autodeploy.html

Initial Source

https://buildprocess.svn.sourceforge.net/svnroot/buildprocess/AutoDeploy/

Source and Intellectual Property Submission Plan

The initial source is already Apache 2.0 licensed.

External Dependencies

The required external dependencies are all Apache License or compatible licenses. Following components with non-Apache licenses are enumerated :

  • Echo Web framework Mozilla Public License, which is a Category B license (see plan to remove this dependency).

Cryptography

Kalumet does not depend upon any cryptography tools or libraries.

Required Resources

Mailing lists

  • kalumet-private (with moderated subscriptions)
  • kalumet-dev
  • kalumet-commits
  • kalumet-user

Subversion Directory

https://svn.apache.org/repos/asf/incubator/kalumet

Issue Tracking

JIRA Kalumet (Kalumet)

Other Resources

The existing code already has unit and integration tests so we would like a Jenkins instance to run them whenever a new patch is submitted. This can be added after project creation.

Initial Committer

  • Dominik Bartholdi (domi@fortysix.ch)
  • Mike Duffy (micduffy@gmail.com)
  • Ioannis Canellos (iocanel@apache.org)
  • Andreas Pieber (pieber@apache.org)
  • Achim Nierbeck (anierbeck@apache.org)
  • Jamie Goodyear (jgoodyear@apache.org)
  • Youhort Ly (youhort@gmail.com)
  • Terri-Lynn Rimmer (one.pro.grammer@gmail.com)
  • Mike Van Geertruy (mvangeertruy@comcast.net)

Affiliations

  • Jean-Baptiste Onofré, Talend
  • Olivier Lamy, Talend

Sponsors

Champion

  • Olivier Lamy (olamy@apache.org)

Nominated Mentors

  • Jim Jagielski (jim@apache.org)
  • Olivier Lamy (olamy@apache.org)
  • Jean-Baptiste Onofré (jbonofre@apache.org)
  • Henri Gomez (hgomez@apache.org)
  • No labels