Weave makes it easy for developers to build complex cluster managers by harnessing the power of constraint solving technologies through SQL.
Modern cluster management systems like Kubernetes and Openstack grapple with
hard combinatorial optimization problems: load balancing, placement,
scheduling, and configuration. Currently, developers tackle these problems by
designing custom application-specific algorithms---an approach that is proving
unsustainable, as ad-hoc solutions both perform poorly and introduce
overwhelming complexity to the system, making it challenging to add
important new features.
We propose a radically different architecture, where programmers drive cluster
management tasks declaratively, using SQL queries over cluster state
stored in a relational database. These queries capture in a natural way
both constraints on the cluster configuration as well as optimization
objectives. When a cluster reconfiguration is required at runtime, our
tool, called Weave, synthesizes an encoding of these queries into an
optimization model, which it solves using an off-the-shelf solver.
- Brian Oki
- Mukesh Hira
- Sahan Gamage
- Zeeshan Lokhandwala