4 ms·
I wonder what they wrote it in. I'd guess C++, Java or Erlang, or a combination of those.
by Cieplak 9y ago
I wonder what they wrote it in. I'd guess C++, Java or Erlang, or a combination of those.
- Thaxll 9y agoMost likely C/C++, Erlang / Java is not fast enough for this kind of work load.
- tyingq 9y agoIt preserves source ip, so that suggests something like a kernel module, or like Intel's DPDK. Either (practically) rules out anything but C, doesn't it?
- Thaxll 9y agoOr they could just encapsulate the packet to preserve the IP...
- tyingq 9y agoHappy to be educated. There's some easy way to alter the destination IP that way?
- Thaxll 9y agoLike mention above IPVS: http://www.linuxvirtualserver.org/VS-IPTunneling.html http://www.linuxvirtualserver.org/VS-IPTunneling.html This is heavily used by Facebook for their loadblancer on their racks.
- tyingq 9y agoAh, ok. A kernel module, as I mentioned :)
- omribahumi 9y agoThere was a talk about this in SREcon Europe 2015: https://www.usenix.org/conference/srecon15europe/program/presentation/shuff https://www.usenix.org/conference/srecon15europe/program/pre...
- bullen 9y agoI guess HAProxy
- takeda 9y agoChances are it's IPVS[1], maybe with some patching. Why would one reinvent the wheel when Linux already lets you do that. In that case it would be C since it's implemented in the Linux kernel. [1] https://en.wikipedia.org/wiki/IP_Virtual_Server https://en.wikipedia.org/wiki/IP_Virtual_Server
- takeda 9y agoI should have read the blog instead of skimming before responding. This appears as Layer 4 load balancing, IPVS is more of Layer 3. So the person who was voted down by mentioning HAProxy might not be too far off. It could be implemented through HAProxy + TPROXY enabled in the kernel[1]. Then just make sure that default gateway configured on targets routes back to the load balancer or it is the load balancer. [1] https://www.loadbalancer.org/blog/configure-haproxy-with-tproxy-kernel-for-full-transparent-proxy/ https://www.loadbalancer.org/blog/configure-haproxy-with-tpr...
- bogomipz 9y ago>"This appears as Layer 4 load balancing, IPVS is more of Layer 3." No, IPVS is L4 load balancing. L3 load balancing would be a routing protocol plus ECMP.
- takeda 9y agoAh my bad, even the wiki link I posted said it is layer 4. I guess both solutions could be utilized then, perhaps it was IPVS then since it would be more performant than HAProxy.
- zob_cloud 9y agoThere are ways of finding out more... https://www.amazon.jobs/en/jobs/518372/senior-software-development-engineer-aws-elastic-load-balancing https://www.amazon.jobs/en/jobs/518372/senior-software-devel...
- bashtoni 9y agoMaybe VHDL if it's running on f1 instances?