Greetings everyone, this is Peter from Hungary. In the last few months I have spent a lot of time and effort to give something to the open source community in the framework of GSoC. The aim of my project was to implement a Load Balancer as a Service (LBaaS) Zorp (http://www.balabit.com/network-security/zorp) driver for OpenStack (http://www.openstack.org/) in openSUSE environment.
The project was divided into three parts that I would like to discuss in detail.
The first obstacle was compiling and packaging. To be honest, it was all new to me, since I have never created packages before, and I did not even know how it all works. At this point I would like to write a big thank you to my mentors, who guided me, and advised me to use Open Build Service (OBS https://build.opensuse.org/). This thing is awesome, with some practise I have been able to build Zorp to a lot of different versions of different distributions (OpenSuse, CentOS, Debian, Fedora, Ubuntu).
The second part was the missing load balancing strategies of Zorp. Zorp could be used as a load balancer, but in order to integrate it into OpenStack, some missing strategies had to be implemented, for example Least Connections or Source IP. At this point I was really impressed, Zorp is truly the software equivalent of a Swiss Army knife or a Death Star. It was such a wonderful experience that with a good configuration, it could do almost everything. I have tried Test Driven Development (TDD http://en.wikipedia.org/wiki/Test-driven_development) for this part of the work. I cannot say that it was completely new to me, but I have never used it before in real-life development circumstances (not in Code Retreat for example). It seems to be a working method.
I have got the tip from my mentors to try Travis, as it might be a useful tool to compile and run tests, and then if everything went fine, send the required files to OBS. The idea was great, so I followed their lead. The result is that it is now integrated with GitHub, and with every change it now automatically performs the abovementioned tasks.
The third part, which I especially found the most difficult, was to write the driver for the Neutron component of OpenStack. OpenStack is a really complex system, and understanding it requires a lot of time, but at last, I have managed to integrate Zorp into the system. It can be selected from the dashboard, set up with a variety of different pools, and used as an LBaaS.
I will now describe how to use it. First, set up a machine with my Neutron repository (https://github.com/VPetyaa/neutron) with OpenStack. To make it easier, DevStack is a good choice, but if you prefer to do it manually, there are several guides that lead you through the required steps. Install a Zorp from OBS (https://build.opensuse.org/project/show …