Recent industry trends indicate a shift toward program- matic management of distributed infrastructure. While the benefits of infrastructure APIs are widely understood, de- cidedly less attention has been paid to the design of such APIs. The de facto standard approach – a RESTful inter- face paired with a YAML representation – leads to unnec- essary complexity for both container orchestrator imple- mentations and distributed application developers.
We argue that a better API for programmatic infrastruc- ture is a general-purpose programming language. Such a language allows specification of distributed applications with strong primitives for abstraction, composition, and sharing, all while allowing deployment engines to remain ignorant of high level constructs.
We present Quilt, an open source project that demon- strates these principles with two components: first Quilt.js, a JavaScript framework tailored to distributed ap- plication specification and second the Quilt Reference Im- plementation which deploys Quilt.js specifications across multiple cloud providers.