It is based on the Atlas API specifications, creates software-based load balancers, is implemented in Python and sits on top of Nova instances rather than working under the cloud. It also has several unique features which could be converted to run any service on top of a cloud.
- API server - A Pecan based API server whose API is based on the Atlas API spec.
- Admin API server - A Pecan based Administrative API server (work in progress) and a whole bunch of modules which automatically maintain the health of the Libra system.
- Pool Manager - A gearman service which will provide the rest of the system with load balancer devices and floating IPs
- Worker - A gearman service sitting on each load balancer to configure it
The service requires Gearman to communicate between the various components and MySQL as a load balancer configuration data store. Our team has been developing SSL support in Gearman to increase the security of the communications and Libra is probably the first open source project to support this. Security is a high priority for HP and the Libra team take it very seriously. Libra also supports Galera clusters for MySQL by having built-in auto-failover and recovery as well as commit deadlock detection and transaction retry. The codebase can support any load balancing software (and in theory hardware) through plugins to the Worker but currently HAProxy is the only plugin being developed.
Auto-RecoveryLibra also has an intelligent auto-recovery system built in. In HP we are currently testing the 4.x release in a few racks that have a flaky networking setup and it has been consistently repairing devices just like a T-1000 repairs bullet holes. Somehow we have even been able to create usable load balancers from this setup too!
With version 3.x (HP Cloud Private Beta) we are seeing provision times of roughly 300ms. This has increased slightly for Libra 4.x because it introduces floating IP support (called Virtual IPs in Atlas API). The floating IP support means that the Libra system can automatically detect when a load balancer has failed, within seconds rebuild the load balancer on a new hot spare and move the IP address accordingly.
Other UsesThe architectural design of Libra is such that it could be used to create any "Platform-as-a-Service" on top of Nova (or any other cloud with minor modifications). The system can be modified to work with anything by changing the API and giving it a Worker plugin. This gives Libra codebase the ability to become an eventual framework in the future.
Libra and HPHP Cloud LBaaS page, look at the developer docs, come chat to us on #stackforge-libra Freenode IRC channel and if you want to give it a spin take a look at our PPA.
We want to be more open with the development process of Libra and are taking steps to ensure that happens by engaging more with the wider community, resource constraints have made this difficult up until now. We are happy to help anyone who wants to get started playing with or hacking on any part of it.