Google is known to fiercely guard its data center secrets, but not Facebook. The social media giant has released two significant tools it uses internally to operate its massive social network as open-source code.\nThe company has released Katran, the load balancer that keeps the company data centers from overloading, as open source under the GNU General Public License v2.0 and available from GitHub. In addition to Katran, the company is offering details on its Zero Touch Provisioning tool, which it uses to help engineers automate much of the work required to build its backbone networks.\nThis isn\u2019t Facebook\u2019s first foray into open-sourcing the software that runs its network. Last month, the company open-sourced PyTorch, the software used for its artificial intelligence (AI) and machine learning projects. PyTorch is a Python-based package for writing tensor computation and deep neural networks using GPU acceleration.\n\nFacebook has to develop these kinds of software packages because while there are plenty of off-the-shelf software products out there, none of them is made for a global social media company that has 2 billion users.\nDetails of Facebook's load-balancer tool\nThe news came from a blog post written by Facebook production engineer Nikita Shirokov and software engineer Ranjeeth Dasineni. The two said the company had previously built its own load-balancing software, primarily from open-source software. It served them well for four years, but it was beginning to show its age and limitations.\nThey wrote that a load balancer has to meet four criteria: It has to run on commodity Linux servers; coexist with other services on a given server, eliminating the need for dedicated load balancing servers; allow low-disruption maintenance; and offer easy instrumentation and debugging.\nShirokov and Dasineni said their first software-defined load balancer, called Layer 4 Load Balancer or L4LB for short, fell short when it came to the coexistence with other services criteria, specifically the backends.\n\u201cIn the second iteration, we leveraged the eXpress Data Path (XDP) framework and the new BPF virtual machine (eBPF) to run the software load balancer together with the backends on a large number of machines,\u201d they wrote.\nDetails of Facebook's Zero Touch Provisioning tool\u00a0\nDetails behind Facebook's Zero Touch Provisioning tool also came in the form of a blog post written about three weeks ago by a number of Facebook engineers. Zero touch provisioning (ZTP) allows you to provision new switches and routers in your network automatically, no manual intervention required.\nFor a company the size of Facebook, it has to build its own networks, which is why it needs a ZTP tool. And like load balancing, it found existing ZTP tools to be inadequate to handle the kind of scale Facebook operates on.\n"Ultimately, these challenges drove Facebook\u2019s network engineers to develop a completely new approach for network deployment workflows," the blog authors said.\nSo, it created a new framework it called Vending Machine, only here instead of inserting a dollar and getting a can of soda, the input is a device role, location, and platform \u2014 and out pops a freshly provisioned network device, ready to deliver production traffic. ZTP is still evolving, and Facebook is adding new features and functions to it.\nFacebook has not disclosed the license for ZTP. And like Katran, if you decide to use it, you\u2019re on your own. A friendly Facebook engineer might be able to answer some questions, but this is not supported software. So, I\u2019m curious to see who might actually use this software, since this isn\u2019t exactly SMB material. It\u2019s meant for large-scale enterprises, and I would think most of them have their own platforms. But I could be wrong.