Roboconf favicon

Roboconf

Roboconf takes in input application descriptions. An application description is a zip archive which includes a list of software components and their relations (what is deployed on what and what depends on what). Each component comes with recipes that will be used to handle its life cycle. Beyond the classical phases (deploy, start, stop and un deploy), there is a special phase called "update". It is invoked every time a dependency changes. This is the key to bring hot-reconfiguration and elasticy to the application. Other aspects of the application can be provided, such as probes, probe configurations, complex scripted commands and automatic reactions. Roboconf provides several extension-points. One is used to plug deployment environments (e.g. for cloud infrastructures providers). Another one used to support new recipe types (scripts, Puppet modules...). There is also one to define new probes. It comes with several tools, including a web console, Eclipse plug-ins, a Maven plug-in to automate builds, and documentation generators. Roboconf is mostly developed in Java/OSGi, but some parts rely on Javascript (AngularJS...).