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.
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 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.