Title: Lifecycle Management of Execution Environments for the Edge
Adam Hall
Ph.D. Candidate
School of Computer Science
College of Computing
Georgia Institute of Technology
Date: Tuesday, November 26, 2024
Time: 2 PM - 4 PM ET
Location (in-person): KACB 1212
Location (virtual): Meeting Link
Committee:
Dr. Umakishore Ramachandran (Advisor, School of Computer Science, Georgia Institute of Technology)
Dr. Alexandros Daglis (School of Computer Science, Georgia Institute of Technology)
Dr. Alexey Tumanov (School of Computer Science, Georgia Institute of Technology)
Dr. Tushar Krishna (School of Electrical and Computer Engineering, Georgia Institute of Technology)
Dr. Sameh Elnikety (Senior Principal Researcher, Microsoft Research)
Abstract:
Edge computing is envisioned as the enabler of next-generation applications that require high throughout and low latency. Edge nodes are placed near users or devices, often in locations with limited power, cooling, and space constraints (e.g., within a wiring closet or on a cell phone tower) and as a result have limited computational resources relative to their Cloud computing counterparts. Despite this limitation, Edge nodes are expected to maintain a high degree of multi-tenancy while providing both logical and performance isolation to ensure hosted applications do not adversely affect each other’s performance.
Traditional methods for hosting applications in the Cloud, such as dedicated virtual machines, are unsuitable at the Edge due to their large resource overhead. This overhead manifests in inefficient resource utilization that in turn reduces the potential for multi-tenancy in Edge platforms. Execution environments like process-based containers and WebAssembly are a better fit for the Edge because they provide similar logical isolation with acceptably low overhead. However, contemporary implementations are hindered by issues like slow startup (the cold start problem) and slower execution speed compared to native code. Furthermore, they lack effective performance isolation mechanisms that allow efficient resource sharing while maintaining consistent low-latency response times for applications. Edge computing needs a lightweight runtime that can segment application instances and impose resource restrictions with minimal overhead.
Notably, both process-based containers and WebAssembly have strengths that offset each other's weaknesses. We leverage this property to create RUNE: a runtime for Edge computing that overcomes the limitations of contemporary approaches. RUNE employs multiple execution environments to achieve better performance than its component parts, and incorporates performance isolation techniques that increase resource sharing efficiency in Edge platforms. Our work makes four contributions toward improving execution environments for the Edge. First, we present an in-depth analysis of the cold start problem and paths to optimizing process-based containers for faster startup. Second, we introduce a way to use WebAssembly as an alternative execution environment that provides logical isolation similar to containers, but with reduced cold start. Third, we introduce a method for bringing performance isolation to these execution environments. And fourth, we demonstrate via proof-by-construction that using a hybrid runtime in a Function-as-a-Service platform results in lower tail latency and more efficient utilization of both CPU and memory resources vs. contemporary approaches.