Cloud Programming Simplified: A Berkeley View on Serverless Computing

Ion Stoica blog 2 Comments

David Patterson and Ion Stoica

The publication of “Above the Clouds: A Berkeley View of Cloud Computing” on February 10, 2009 cleared up the considerable confusion about the new notion of “Cloud Computing.” The paper defined what Cloud Computing was, where it came from, why some were excited by it, what were its technical advantages, and what were the obstacles and research opportunities for it to become even more popular.  More than 17,000 citations to this paper and an abridged version in CACM—with more than 1000 in the past year—document that it continues to shape the discussions and the evolution of Cloud Computing.

Cloud Programming Simplified: A Berkeley View on Serverless Computing” with some of the same authors commemorates the tenth anniversary of that landmark paper.   Serverless Computing provides an interface that greatly simplifies cloud programming, and represents an evolution that closely parallels past advances in programmer productivity, such as the transition from assembly language to high-level programming languages. Although it is arguably an oxymoron—you are still using servers to compute—the name caught on because it suggests that the cloud user simply writes the code and delegates the considerable server system administration tasks required by conventional cloud computing to the cloud provider.  The three fundamental differences between Serverless and conventional Cloud Computing are:

  1. Decoupling of computation and storage; they scale separately and are priced independently.

  2. The abstraction of executing a piece of code instead of allocating resources on which to execute that code.

  3. Paying for the code execution instead of paying for resources you have allocated to executing the code.

The paper gives a quick history of cloud computing—including an accounting of the predictions in the 2009 paper—explains the motivation for serverless computing, describes applications that stretch the current limits of serverless, and then lists obstacles and research opportunities required for Serverless Computing to fulfill its full potential.

Just as the original paper identified challenges for the Cloud in 2009 and predicted they would be addressed and that Cloud use would accelerate, we now predict these issues will be solved and that Serverless Computing will grow to dominate the future of cloud computing in the next decade.