Putting Our PaaS Core (Genapp) on GitHub

CloudBees PaaS Core

We have just released our paas core component “genapp” as open source - on github.

This is the core of our paas - a kernel, the meat, the bones, the marrow bone, the cell, the nucleus… whatever. It was some time back that we refactored how we provisioned paas applications, and it was always the plan from the start to make this library/utility available for all to see. The motivation is to sate peoples curiosity - and there is really only a few ways to skin this cat (solve this problem?).

Genapp is written in Erlang (as we have mentioned before, we <3 Erlang) and has served us well for quite some time now. The recently talked about ClickStacks are “plugins” that Genapp wires together when your app lands on a server, along with your app, to produce running instances.

genapp handles:
  • Application port allocation
  • Application deployment by way of plugins
  • Application undeployment
genapp does not handle:
  • Application packaging
  • Application package deployment
  • Specific application setup (these are handled by plugins)
  • Application start and stop
  • Application monitoring
It is a focussed tool that tries to do just a few things, that can work in tandem with an agent, with a process supervisor (such as  runit) and containment such as cgroups and lxc.
 
To run your own stuff on CloudBees you do not need to know how genapp works - but it is a useful tool for plugin authors (and also, just for the curious) see here for a how-to on making your own stacks (genapp plugins).
 
GenApp name means -> Generic Applications (well, if it is to be a recursive name - Genapp Applications !).
Enjoy!