Facebook is opening up its networking technology kimono a bit as it is open sourcing Katran, a software library used to manage traffic, and outlining its tools to automate network workflows.
The tools, outlined at Facebook’s Networking@Scale conference, were outlined in a pair of blog posts.
Facebook built Katran to develop a forwarding plane that would give backend servers more flexibility while improving network balancing.
Katran offers a software based library for load balancing using recent developments in kernel engineering called eXpress Data Path and the eBPF virtual machine. Katran is deployed in Facebook’s points of presence in its network.
By open sourcing Katran, Facebook is hoping the community can advance load balancer performance with its software as the foundation.
Facebook added that Katran runs on commodity Linux services, can co-exist with other services and is easy to maintain and upgrade. Katran also allows Facebook to colocate the load balancer with the backend applications. That move boosts capacity.
As for the Zero Touch Provisioning tool, Facebook outlined how it automates all the non-physical work to build backbone networks. Facebook has been investing heavily to build out its networking footprint.
Facebook said it created Zero Touch Provisioning because the availability of network engineers to conduct manual checks and touch was being stretched. Facebook wanted its engineers to spend more time on running networks and less on routine tasks.
The framework is in production at Facebook and allows the company to manage its various backbone networks. As Facebook scaled its network, the company said it struggled to manage heterogeneous backbone networks and ran out of room to write documentation and hire more engineers.
Facebook’s core technology in its Zero Touch Provisioning system is Vending Machine, a flexible workflow framework that splits procedures into small pieces of code. These steps are then combined into a task.
According to Facebook, the plan from here is to orchestrate groups of Vending Machine jobs, automate rebuilds fully and deploy software revisions seamlessly.