ABSTRACT

This chapter explores the topic of serverless computing, a relatively new approach to the deployment of services in the cloud that has gained popularity. The chapter explains that cloud providers offer serverless computing to allow programmers to create, deploy, and scale applications quickly, at low cost, and without learning how to manage servers or configure orchestration systems. The chapter begins by describing traditional server software that uses concurrency to handle multiple clients simultaneously. It then considers the economics of operating a server, including the cost of expertise. The chapter defines serverless computing and the idea of shifting responsibility from a tenant to the cloud provider. The chapter explains how serverless computing uses containers and how the approach allows a programmer to divide server software into small pieces that follow the microservices architecture. The chapter explains interfaces used to access serverless systems, event queues, dispatchers, and worker nodes. It includes a small example that illustrates how S3 buckets fit into the serverless approach. The chapter concludes by examining the potential disadvantages of serverless computing, including the surprising ways a serverless approach can increase, rather then decrease, costs.