The current 0.50 Beta release is for EVALUATION USE ONLY! expect a more production quality release in the next one to two releases.
Welcome to Cerber Grid
Cerber Grid is a light-weight high performance grid that combines simplicity and easy of use with a powerful and versatile architecture.
Cerber Grid contains a web interface that allows for a user to submit and view jobs,
view statistics on the controller and the nodes, and other administrative functions.
Why was this framework created and what does it offer me? I believe that typically, the most simple and straight foward design will
satisfy the majority of what people will use an application for, and satisfy it better. I have evaluated several popular grids implemented in Java
and all of them were either too complex to use, too bloated, or took too long to set up. None offered what I wanted, to be operational in virtually as long as it took me to extract the application. Cerber Grid offers this. In a matter of minutes after Cerber Grid, you can have a distributed Hello World
example working and implemented in any of over 10 languages. It is not always about how many things an application can do, but how efficient it can do the few things you need it to.
Why restrict the user to Java 1.6? Some of the most crucial technology in Cerber Grid was made possible because of the new scripting features of Java 1.6. Jobs and Job Triggers can be created in many of the scripting languages that currently have extensions for 1.6. The powerful concept here is that the user defines the code in the system, not me. I only created the framework that the user ultimately dictates.
Features
Cerber Grid provides the following functionalities:
- Security: All communication between the Controller and the nodes
is SSL protected.
- Lazily Intialized Controller: There is no direct communication with the controller. All jobs are
submitted to a database which the Controller periodically polls.
- Support for over 10 languages with more added in future releases:
native: bash, perl, python, ruby
Java interpretted (JDK 6): beanshell, groovy, jruby, jython, sleep
- Partitioning of Nodes and Jobs by defining Execution Groups
- Unlimited Chaining together Jobs through Job Triggers
- Ability to write custom plugins and invoke them in Jobs or Job Triggers. See the Distributed Nmap example.
Considerations
Please make note of the following:
- This framework is currently in BETA evaluation mode. What does that mean? It means that
the code is funtional, however, it is currently in heavy flux and the future releases will likely
have modified entities. Therefore, please evaluate this framework to see if it serves your purposes,
and if so, stay tuned for a non BETA release.
- The exact security model of Cerber Grid has yet to be determined. That said, communication withing the grid can easily be encrypted via a setting in the properties file. Certain plugins such as the Nmap Scanning requires root access, so I
am currently testing everything as root. In the future I will be solidifying the security model.
- Cerber Grid is designed for people who know how to script or code. This framework is very straight
forward and logical, however it does require at least a basic ability to program. That is, unless you
are going to be using the built in plugins or you can copy and paste from the examples.
- To maximize the effectiveness of this framework, you should be at least an intermediate
programmer in one language.
License
Cerber Grid is released under the GNU Lesser General Public
License (LGPL), so free for both commercial and non-commercial use.
- Note:
- Required JDK: Sun 1.6 or later.