Chapter 2. Functions-as-a-Service and Event-Driven Programming
“People think that computer science is the art of geniuses, but the actual reality is the opposite, just many people doing things that build on each other, like a wall of mini stones,” said computer science pioneer Donald Knuth. Nowhere is that more apparent than in the rise of cloud computing. In this chapter, we explore the expansion of functions from the “mini stones” of a program into a distributed and powerful system for scaling services up and down in a constantly changing environment. We also explore Functions-as-a-Service and event-driven programming—concepts necessary for putting these new computing paradigms into practice.
Software-as-a-Service, Cloud Computing, and Serverless
Before the internet, the traditional way of commercializing software was to sell an executable copy of it that you installed on your computer or server. When the internet made it possible to have almost any enterprise connected to a vast store of data and programs, another way of selling software products was born. Instead of buying shrink-wrapped software to install on your machines, you simply connected to a server operated by the software vendor, performed your work, and logged off. For vendors, the Software-as-a-Service (SaaS) model had many advantages: they could charge by usage, it was easy to update their servers, and it rendered software piracy impossible. There were complementary benefits for software consumers: they didn’t ...