Today I want to talk about “Project FIFO“
FIFO is an amazing SmartOS data-centre management application. It is the brainchild of the very talented developer Heinz N Gies(aka Licenser) who has spent a lot of time and dedication developing the myriad components necessary to make this all work together. The entire code base is written in erlang and as such is extremely fast, stable and scalable.
FIFO is an open source project that has big ambitions. It aims to be a central conduit that you can use to manage all your SmartOS Compute Nodes.
This being the first release 0.1.0 it is still a bit rough around the edges and has a couple of little quirks that are slowly being ironed out, but even in its infancy it already has many desirable working features that I am very impressed with.
- Central Web Browser multi-node control.
- VNC Virtual Machine management built into the Web Browser.
- Virtual Machine control via start, stop & reboot buttons.
- Provisioning of new Virtual Machines.
- Destruction of Existing Virtual Machines.
- IP Address management that auto assign ip addresses and releases them when VM is removed.
- Multi user role-based access control (RBAC): User & group creation and management. Control permission, ownership, rights of users, groups and objects such as datasets, virtual machines and payload packages.
Beneath the surface, FIFO is a complicated concoction of multiple services that all have to interact with each other in a seamless fashion to make all of this possible.
True to form, Heinz has used some quirky names for all the separate components and services that make up “FIFO”
- Wiggle : The WebUI
- Sniffle : The core that handles all the interactions with Multiple Node’s via API
- Snarl : Role Based Access control server
- Chunter : Service that gets installed in the node’s global zone to interact with Fifo
FIFO’s services are run from within a VM in a Smart Machine zone. You can of course configure all the components yourself and setup each individual component to run in its own zone.
Thankfully for ease of setup, Project FIFO supplies a easy to run install script that you can use to get your entire system installed and running within a single zone with one command. You simply run the script wait for the zone to be created and configured with the fifo services and then login to the web interface on the ip you specified when you ran the script.
Simple as that, Now thats cool! isn’t it!
The script and instructions can be found on the projects website:
I urge you guys to give it a try and if you like it, contribute back with feedback, feature requests, code contribution, bug reports and patches. Heinz is very open to suggestion and would like the project direction to be shaped by community suggestions and feature requests. In my opinion it is quite an accomplishment that so much has been accomplished by one person in his spare time and with more community involvement it can only go from strength to strength. As soon as it gathers momentum we will hopefully have a roadmap and change-logs for each release available.
Some planned features for future releases are:
- Built in Analytics.
- Node based statistics on Resource usage.
- More fine grained control of VM attributes e.g Changing Ram, vcpu’s, resource limits, alias, hostname etc..
- Integrated backup’s via snapshots.
- Migration of VM’s to other nodes.
- Notification system.
- Integrated Console control of zone based Smart Machines.
- and more…