Source-linked AI summary

Serverless Applications: Why, When, and How?

Simon Eismann, Joel Scheuner, Erwin van Eyk, Maximilian Schwinger, Johannes Grohmann, Cristina L. Abad, Alexandru Iosup

arXiv:2009.08173v2cs.SEcs.DC

TL;DR

Evidence on why practitioners choose serverless, where it fits, and how it is implemented has been limited and sometimes conflicting. The authors analyze 89 applications and find recurring adoption motives and broad uses, while identifying common implementation approaches.

Abstract

from arXiv · show

Serverless computing shows good promise for efficiency and ease-of-use. Yet, there are only a few, scattered and sometimes conflicting reports on questions such as 'Why do so many companies adopt serverless?', 'When are serverless applications well suited?', and 'How are serverless applications currently implemented?' To address these questions, we analyze 89 serverless applications from open-source projects, industrial sources, academic literature, and scientific computing - the most extensive study to date.

Why are practitioners choosing to adopt serverless?

The study analyzes 89 applications to clarify why practitioners adopt serverless; the most commonly reported reasons are cost savings for bursty workloads, avoiding operational concerns, and scalability.

Why are practitioners choosing to adopt serverless?

  • 47% of applications with discernible motivations chose serverless to save costs, and 84% of applications had bursty workloads.The stated rationale is pay-per-use for irregular or bursty workloads, which may have low utilization and higher traditional-hosting costs.Source: Why are practitioners choosing to… · p. 3
  • 34% of applications cited avoiding operational concerns so developers could focus on new features.This motivation applied both to utility functionality and to user-facing APIs serving large-scale traffic.Source: Why are practitioners choosing to… · p. 3
  • The authors collected 89 application descriptions from diverse sources and assessed 24 characteristics, excluding unknown values from reported percentages.The sources included open-source projects, blog posts, scientific publications, and industry-conference talks.Source: Why are practitioners choosing to… · p. 3
  • 34% of applications cited scalability, which the authors associate with fine-grained, conveniently parallel FaaS implementations.The authors describe serverless as offering near-infinite, out-of-the-box scalability with minimal engineering effort.Source: Why are practitioners choosing to… · p. 3
  • Improved performance and faster time-to-market were less common motivations, reported for 19% and 13% of applications, respectively.Source: Why are practitioners choosing to… · p. 4

When are serverless applications used?

Serverless applications span utility, core, and scientific workloads, including latency-critical uses, although short-running, low-data, bursty tasks are most common. The authors also report limits in data volume and execution time on current platforms.

When are serverless applications used?

  • 39% of applications implemented utility functionality, 42% core functionality, and 16% scientific workloads.The authors also report high traffic intensity for 39%, low traffic intensity for 47% of on-demand applications, and scheduled use for 17%.Source: When are serverless applications used? · p. 4
  • 32% of applications had latency requirements for all functionality, 28% had partial requirements, and 2% had real-time requirements.The authors report these uses despite cold starts affecting tail latencies.Source: When are serverless applications used? · p. 5
  • 69% of applications had data volumes below 10 MB, and 75% had execution times in the range of seconds.The authors say the area needs further innovation to overcome limits for large data volumes or long-running tasks.Source: When are serverless applications used? · p. 5
  • Serverless applications are most commonly short-running, low-data, and bursty, yet examples span application types, requirements, and workloads.The authors specifically note use for latency-critical, high-volume core functionality.Source: When are serverless applications used? · p. 5

How are serverless applications implemented in practice?

The surveyed applications are predominantly deployed on AWS, use Python or JavaScript, and combine serverless functions with managed storage, databases, and messaging; most contain relatively few functions.

How are serverless applications implemented in practice?

  • AWS is the deployment platform for 80% of surveyed applications, compared with Azure at 10%, IBM at 7%, and Google Cloud at 3%.The authors suggest AWS’s earlier FaaS launch and larger cloud market share may explain its lead.Source: How are serverless applications… · p. 5
  • About 8% of surveyed applications run in private clouds, mostly in academia and scientific computing; the authors hypothesize that operational concerns and limited access to managed services help explain the low adoption.They also hypothesize that maintaining server fleets and open-source FaaS frameworks adds operational concerns.Source: How are serverless applications… · pp. 5–6
  • 82% of surveyed applications have five functions or fewer, and 93% have ten or fewer, so their serverless functions are closer in size to microservices or API endpoints than programming functions.With one exception, the remaining applications have fewer than 20 functions.Source: How are serverless applications… · p. 6
  • Among the 67 applications with an identified language, JavaScript and Python are each used by 42%, ahead of Java (12%), C/C++ (11%), C# (8%), Go (5%), and Ruby (2%).The authors note that language choice may be affected by cold-start mitigation strategies as the technology matures.Source: How are serverless applications… · p. 6
  • Overall, the surveyed applications are mostly implemented on AWS, use Python or JavaScript, and make heavy use of BaaS.The study also concludes that serverless functions in its dataset are not comparable in size to programming-language functions.Source: How are serverless applications… · p. 6
  • Managed services are common: messaging appears in 38% of applications, while 60% use event-based architectures and 38% use workflow engines to coordinate functions.Cloud storage and databases are the most popular external services; messaging includes managed pub/sub (17%), streaming (11%), and queues (10%). Only 12% use no BaaS solutions.Source: How are serverless applications… · p. 6
Loading 2009.08173v2…