Symbolic #1 – Overview and Features

First Symbolic version was released on 22/04/08. It was first open source project I never managed, we got some problem to start and to make a stable version. Now I’m releasing (aka uploading on sourceforge) the 1.1.1. version. :-)

I want to write a bit on this project on my blog (improvements, bugs, solutions and so on), but before I need to explain a bit few word about this project.

What’s symbolic?
Symbolic is a web application written with grails and is written as a front end of FUNC (Fedora Unified Network Controller). Symbolic goal is to resolve a big problem when unskilled administrators have to manage huge number of machines (virtual or host); FUNC has sexy design and is written really good, but is a python API, so require a substantive knowledge and is difficult to be used by unskilled people.

Which features actually are implemented?
Symbolic is written using Agile programming, so there are a lot of feature which are implemented and removed because testing fails. Actually there are these implemented features:

  • basic and LDAP authentication which support one or more LDAP servers
  • Virtual machine and cluster management: every machine can be inserted as virtual machine, host, guest and cluster; this characterization permit different action to different machine types (for example, virtual machines can be destroyed :D )
  • Every operation and machine can be tagged, in this way each users has a separated environment and control only granted machines.
  • Operations: any operation is a combination of a module (which corresponds to FUNC module) and functions with certain parameters. Parameters can be dynamic or fixed: inserted run time or chosed during operation creation (example, ping to an arbitrary host or ping to a fixed host).
  • Usability: we worked hard to improve usability and made application easy and simple to use by everyone (I agree, there is a lot of work in this direction)
  • Scripting: possibility to deploy simple scripts (only by administrator). Each user can launch it (if, of course, allowed).
  • Operation log, to see what operation was launched: each operation has different status, Success, Failed, Waiting, and so on…

Right now there is a dirty method to call FUNC, using command line; I’m writing (very slowly :-( ) a FUNC extension to allow communication through network (now with XMLRPC but soon with socket). In this way FUNC provides a general interface which guarantee interdependency from back-end and front-end eliminating problems due different programming languages.

Who is working behind symbolic?

Francesco Crippa and Davide Panelli are project managers; me, Marco Mornati and Simone Pucci are developers, Samuele Storari is our Art Director. Last but not least, behind symbolic there is also FUNC community.

to be continued ;-)

Update 15/06/08@09:53am
Symbolic 1.1.1 has been released, downland here. Grails 1.0.3 is required (RPM here).

Byte-code MeetUp 2008 – Valsesia

Byte-code meet up is a nice event aim to aggregate all employers and consultants who often work directly to the customers. Is a mix of social and education event.

This year (6 and 7 June), the event was located in Valsesia, a nice place in Piemonte region, behind Alps Mountains. A beautifull place: Sesia torrent is in Italy one of the best place to do rafting!! :)

Meet Up was divided into two main parts: the conferences part where some of us (me, Francesco, Simone, Luca, Marco, Davide, Raffaele and Antonio Leo, from Red Hat) did a talk about something we have developed, studied…or liked :)

Me during my speech about my thesis application

Marco, Sergio and Marco :)

Ready to speech

Dinner :)

The most interesting and funny part was, in fact, rafting, Saturday afternoon, there was the best weather condition and the water river was nice: it was a wonderful experience…

Do you think that people may be information guys? It was *great*… I want to say thanks to the organizators….

Func and JBoss Module

Func (Fedora Unified Network Controller) is a revolutionary and sexy tool that allow you to administer hosts on large scale environments, using a secure communications through https. Func is written in python and is promoted and sponsorized by Red Hat.

Func is designed to implement a client-server model: there’s a single host master (certmaster) which register and exchange certificate with minions (clients). Certmaster can launch commands (ping, ps, netstat, and so on), get various information (hardware infos, nagios infos, xen virtual hosts infos, etc) on each or groups of clients. All commands are module and, thanks to module-driven design, is quite simple to write your own. You can find modules list here.

I wrote, with my byte-code colleagues, a simple module to monitor JBoss running instances, by retrieving information about active ones (port, name, bind address and pid), about problems (for example when two instances are started on the same bind address), and some little stuff (search).

You can execute command by using a single code line, for instance:

func "*" call jboss status
func "*example.com" call jboss status

and so on…more information here.

This module has multple purposes: the first one is to add useful and new stuff and the second is to start something that connect Java and Linux world. In fact, at this moment, they too many separate (although SUN made java opensource, with too delay, IMHO), and, at the same time, Red Hat world and JBoss world.

Unfortunatly I’m not a jboss man, and I don’t have idea on possible stuff to be added (ATM I’m think to add a deployer but func need improvement to copyFile Module ;-) )