Kaavo's IMOD System Definition File for Deploying and Managing Custom Apps in the Cloud
By Jamal Mazhar, On 1/11/10 4:46 AM
At Kaavo we recognized that there is a need to provide a horizontal framework that anyone can use to quickly build a vertical solution for running and managing their complex custom applications in the cloud. To enable single click deployment and runtime management of any custom application in the cloud Kaavo’s IMOD uses System Definition file for automating complex workflows and dependencies for deployment and runtime management. Understanding the structure of System Definition file is important to fully benefit from Kaavo’s application centric management approach.
System Definition file is an xml document with support for embedding velocity templates for dynamically generating configuration files, scripts, and workflows in any programming language on the fly during deployment or in response to run-time events.
The system definition file has two main sections, deployment and runtime. See the figure below for more details.

Deployment section contains information about tiers in the system, we can define 1 or n tiers, in each tier we can have 1 or n resources, each resource can have post startup or pre-shutdown actions or workflows. We can define the order in which tiers are configured and displayed and group the resources within a tier. We can also define workflows at the tier level and at the system level.
Runtime section of the system definition file can contain complex custom workflows required for managing the runtime service levels of the application. Runtime workflows can be custom automation, for example scale up, scale down, auto-recovery or any application specific custom maintenance task, e.g. backup database, run batch jobs, etc. For more information please review the N-tier System Definition Guide and the XSD for the System Definition.