  The rapid growth of data generated from Internet of Things (IoTs) such as
smart phones and smart home devices presents new challenges to cloud computing
in transferring, storing, and processing the data. With increasingly more
powerful edge devices, edge computing, on the other hand, has the potential to
better responsiveness, privacy, and cost efficiency. However, resources across
the cloud and edge are highly distributed and highly diverse. To address these
challenges, this paper proposes EdgeFaaS, a Function-as-a-Service (FaaS) based
computing framework that supports the flexible, convenient, and optimized use
of distributed and heterogeneous resources across IoT, edge, and cloud systems.
EdgeFaaS allows cluster resources and individual devices to be managed under
the same framework and provide computational and storage resources for
functions. It provides virtual function and virtual storage interfaces for
consistent function management and storage management across heterogeneous
compute and storage resources. It automatically optimizes the scheduling of
functions and placement of data according to their performance and privacy
requirements. EdgeFaaS is evaluated based on two edge workflows: video
analytics workflow and federated learning workflow, both of which are
representative edge applications and involve large amounts of input data
generated from edge devices.
