Hi Devs, I would like to propose LVS load balancer support for Stratos.
In a normal working setup as mentioned in [1], two load balancers (each running ipvsadm and keepalived) are paired, one master and one slave. Keepalived is configured per pair using vrrp allows the automatic failover to let the slave become master if load balancing dies on the master. There are N real servers each running the real service located behind the load balancer. With Stratos in place, the real servers are orchestrated and monitored by Stratos and whenever an extra real server gets added to the cluster of real servers (because of scaling up) the load balancers need to get updated by Stratos to include the new real server in the load balancing decisions. In the same way, if a real server becomes unavailable (scaled down), the load balancers need to get updated by Stratos to remove the now unavailable server from the load balancing decisions. This requires load balancer configuration to be updated accordingly to reflect new real server (member) IP s, and this can be implemented by extending Stratos load balancer extension API. This "plugin" will be listenning to the "Topology" topic of Message broker and will update the LVS load balancer configuration (both master and slave if present) accordingly, either when extra real servers added up in a scale-up or when extra real servers removed in scale-down. In each of real server, the required configuration (bringing up dummy interface) can be done via puppet or via a cartridge agent module. For that the virtual ip address needs to be passed in the payload when the real server is booting up. [1] http://blackbird.si/loadbalancing-failover-with-ipvs-and-keepalived/ Thanks, Sajith