Abstractions and Optimizations for Data-driven Applications Across Edge and Cloud
Abstract
Modern data driven applications have a novel set of requirements. Advances in deep neural networks (DNN) and computer vision (CV) algorithms have made it feasible to extract meaningful insights from large-scale deployments of urban cameras and drone video feeds. These data driven applications, usually composed as workflows, tend to have high bandwidth and low latency requirements in order to extract timely results from large data sources. Other applications may necessitate the use of multiple geographically distributed resources. Such requirements may be driven by data privacy regulations such as the General Data Protection Regulation (GDPR) of the European Union, need for specialized hardware, or as a means of avoiding vendor lock-ins.
To support these modern applications, a diverse computing landscape has emerged over the last decade. We have witnessed increasingly powerful Edge computing resources be available in network proximity to the data sources for these applications. The number of Cloud Service Providers (CSPs) has increased along with the regions in which they operate. And finally, the CSPs have supplemented Infrastructure as a Service (IaaS) offerings with modern serverless compute offerings which promise cost benefits as well as lower operational overheads.
The availability of choices in compute resources makes it challenging for application developers to manage the lifecycle of their applications – from programming the application, to optimizing it for performance, and finally deploying it. Typically, developers rely on platforms that promise ease of programmability coupled with scalability with minimal developer effort. However, the combination of application requirements and compute resource characteristics makes it challenging for platform designers to make design choices that optimizes the application for programmability and performance. A thorough revisit of existing platforms, abstractions, and optimizations is essential for addressing these challenges.
In this thesis, we tackle these challenges with three distinct but related research contributions on scalable platforms, distributed algorithms and system optimizations:
(1) We propose Anveshak, a platform that provides a domain specific programming model and a distributed runtime for efficiently tracking entities in a multi-camera network; (2) We design algorithms and heuristics to solve MSP, which co-schedules the flight routes of a drone fleet to visit and record video at waypoints, and perform subsequent on-board Edge analytics; and (3) We develop XFaaS, a platform that allows “zero touch” deployment of functions and workflows across multiple clouds and Edges by automatically generating code wrappers, Cloud queues, and coordinating with the native FaaS engine of a CSP.
These platforms, abstractions and optimizations solve different combinations of the problem dimensions, are motivated through real-world applications, and the solutions are validated through detailed experiments on distributed systems. Taken together, this suite of contributions addresses the key gaps highlighted in this dissertation, and help bridge the gap between modern computing resource characteristics and modern application requirements.