Keywords: Microservices, JavaScript
TL;DR: Resubmission of revised paper.
Abstract: Developers have shifted from deploying applications on
physical machines, to virtual machines, and to containers
, and now to serverless functions. Such shift of abstractions
have also changed the way applications are structured. Today’s
cloud-native applications are naturally structured in a
higher-level and more decomposed way. However, today’s
cloud and serverless platforms are still layered on top of
the same inefficient legacy software infrastructure and abstractions
as in the past. We argue that these legacy layers
are now redundant, and we explore a clean-slate cloud services
runtime targeted toward microservice- and serverlessera
JavaScript applications we call Pyrosome.
Pyrosome provides simple programming interfaces for executing
JavaScript code, storing and sharing data, and lowoverhead
communication without worrying about resource
allocation and scheduling. It leverages the V8 JavaScript runtime’s
low-overhead language-based sandboxing that avoids
the full state and scheduling costs of operating system processes
or containers. This allows implementation of a holistic
scheduler that quickly redistributes load among cores, exploits
parallelism in applications, and avoids tail latency with
execution-time-aware shardingpartitioning. The DeathStar-
Bench microservices benchmarks show that Pyrosome speeds
up microservice applications by as much as 4 and improves
throughput by 10 . Additionally, we show Pyrosome balances
load nearly instantly compared to standard microservice
platforms.
Submission Number: 2
Loading