The edge computing domain is notably diverse in its composition. Capabilities including sensing, actuation, and mobility are often constrained by limitations such as those in energy, storage, and hardware-specific implementations. Leveraging the diversity of cloud-edge systems when building applications pose fundamental challenges that constrain expressivity, portability, and reconfigurability. Given this complexity, system tooling is necessary to aid application development and deployment in order to provide a stable runtime foundation by which environment dynamics can be accounted for.
This dissertation explores the notion of incorporating self-awareness into autonomous systems spanning the cloud and edge, such that they might observe the constantly changing state of their applications and resources to implicitly adapt for optimized behavior. Key thrusts include (1) DDFlow, a macroprogramming abstraction that organizes distributed applications into a visual dataflow representation, (2) Portkey, an adaptive key-value store that reconfigures data placement based on access patterns, and (3) EdgeRM, a distributed resource manager that unifies a heterogeneous computing cluster spanning high-performance servers and low-power sensors, which leverages a WebAssembly execution model and system interface extension for unified sensing.
Ultimately, this research seeks to lift IoT and embedded devices into the general-purpose computing domain, thereby enabling a carry-over of technical contributions pioneered by the distributed systems community. As systems researchers continue to introduce new paradigms in how to design, deploy, and support applications spanning cloud-edge, our community can help manage the difficulty in harnessing the capabilities of these networks.