Chapter 25. Compute as a Service

I don’t try to understand computers. I try to understand the programs.

Barbara Liskov

After doing the hard work of writing code, you need some hardware to run it. Thus, you go to buy or rent that hardware. This, in essence, is Compute as a Service (CaaS), in which “Compute” is shorthand for the computing power needed to actually run your programs.

This chapter is about how this simple concept—just give me the hardware to run my stuff1—maps into a system that will survive and scale as your organization evolves and grows. It is somewhat long because the topic is complex, and divided into four sections:

  • “Taming the Compute Environment” covers how Google arrived at its solution for this problem and explains some of the key concepts of CaaS.

  • “Writing Software for Managed Compute” shows how a managed compute solution affects how engineers write software. We believe that the “cattle, not pets”/flexible scheduling model has been fundamental to Google’s success in the past 15 years and is an important tool in a software engineer’s toolbox.

  • “CaaS Over Time and Scale” goes deeper into a few lessons Google learned about how various choices about a compute architecture play out as the organization grows and evolves.

  • Finally, “Choosing a Compute Service” is dedicated primarily to those engineers who will make a decision about what compute service to use in their organization.

Taming the Compute ...

Get Software Engineering at Google now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.