February 9, 2021
Nik Sultana
The multi-scale programmability of modern computer systems, including network fabrics and systems-on-chip, presents unprecedented opportunities to build richly-featured, efficient and reliable services. But programming such systems is challenging because of their distributed and heterogeneous nature, which necessitates reasoning about different execution domains and hardware targets, resource scheduling, security, and resilience to partial failure. In this talk I’ll describe Flightplan, a solution to this problem for P4, a domain-specific language for programmable networking. Flightplan is a target-agnostic, programming toolchain that helps with splitting a program into a set of cooperating programs and maps them to run as a distributed system. I’ll describe how Flightplan exploits features offered by different hardware targets and assists with configuring, testing, and handing-over between programs. I’ll also touch upon how Flightplan’s ideas can be generalized and adapted to other settings, outside of programmable networking, while retaining the semi-automated decomposition of monolithic systems into distributed systems to improve performance, utilization and security.