Chapter 24. Scalable Computing Options

Setting up, configuring, and managing servers, and deploying your applications to them, is only one way of deploying your high-scale application. There are other alternatives, each with a different set of advantages and disadvantages. In this chapter, we’ll discuss various alternatives, from cloud-based servers to AWS Lambda and talk about how they differ, how they are the same, and how to decide which to choose for your application’s needs.

In this chapter, we compare various cloud-based1 application execution environments, specifically:

Cloud-based servers

This is basic server technology. Examples include Amazon EC2 servers.

Compute slices

These are traditional software applications running in compute environments independent of servers. Examples include Heroku Dynos and Google App Engine.

Dynamic containers

Full server capabilities wrapped in the ability to quickly start, stop, and migrate to new systems. Docker is the best example of this.

Microcompute

Small size, highly scaled, event-driven execution environments. AWS Lambda is the best example of this.

Before we compare these methods, let’s look at each of them individually.

Cloud-Based Servers

Cloud-based servers are the simplest way to acquire scalable computing, and are the most consistent with traditional programming and system architecture models. Cloud-based servers are available everywhere, with Amazon EC2 instances being the most popular and best-known example.

Get Architecting for Scale now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.