§15.2.

Cloud computing

The most famous laptop sticker in history offers a humorously simplistic definition of cloud computing:

There is no cloud. It’s just somebody else’s computer.
— Chris Watterston

The “cloud” is nothing more than a collection of computers sitting in data centers around the world. You can rent these computers by the hour. Some are pre-configured to run higher-level services such as database management systems, DNS servers, authentication, load balancers, machine learning algorithms. These higher-level services tend to cost a little bit more.

However, while the cloud is nothing more than somebody else’s computer, “cloud computing” has changed how developers and system designers approach web development. Initially, the benefit is having “somebody else” care for physical handling and maintenance of the equipment (purchasing, shipping, installation, power, cooling, physical security, network connections). However, once you no longer own the equipment, you can rent precisely what you need, when you need it, for as long as you need it, and as much of it as you need.

The flexibility is extraordinary. AWS Lambda allows you to rent a computer for 100 milliseconds for $0.0000002083. [1]

The flexibility also brings about a mindset shift from thinking about computers as things that need to be individually managed, to the idea of a web application as a growing and shrinking pool of computing resources. Some servers will crash or be overloaded, but the system should adapt automatically and add or replace servers as needed.

Service providers

The three most significant and most well-known cloud providers are US-based organizations but with data centers around the world:

Other reputable cloud providers include the following:

Cloud providers targeting regional customers include:

In Australian universities (if you’re doing a research project for a research degree), there is also a research cloud provider:

Exercise: Sign up

Visit the websites of some of these cloud providers and compare their offerings.

Most of them offer accounts with free credits, bonus credits for new accounts and additional bonuses for students and startups. Sign up to a cloud provider and explore the features of their online console or administration dashboard.

Service offerings

The easiest way to get started is to rent a Linux or Windows server:

Once provisioned, you can connect to the server using SSH (for Linux Servers) or Remote Desktop (RDP) (for Windows Servers), and install/deploy software as you would with your equipment.

Moving beyond renting raw infrastructure, the cloud service providers provide frameworks and sophisticated services, including programming language runtimes (AWS Elastic Beanstalk, Google App Engine, Azure App Service) and databases (including SQL databases, document-oriented databases and simple distributed tables that allow key-based lookup).

Exercise: Cloud databases

The number of services provided by cloud platforms can be overwhelming. However, an excellent place to start is by exploring the hosted database services.

For your preferred cloud provider, view the information pages of its database services.

What are the differences between the database offerings? Why are there so many choices?

In the remainder of this chapter, I will discuss two emerging trends in cloud computing: serverless computing and containerization.


1. You won’t get a bill of $0.0000002083 on your credit card. Amazon will only charge you after you have used 37 days of compute time.