Chapter 2. Distributing the Application Layer

Almost all modern distributed applications can be divided into two major layers:

Application (or compute) layer

Primarily responsible for application logic and end-user experience

Persistence (or database) layer

Responsible for maintaining long-term application data and providing a consistent view of the application state to the compute layer

These two layers have divergent properties that usually result in different deployment architectures. In this chapter, we’ll discuss the architecture for the application layer, and in Chapter 3, we’ll look at the database layer.

Regions and Zones

The major public clouds all provide computing resources organized around regions and zones. A region is a broad geographical region that defines the physical location where you can deploy applications. Regions are often given vague names (for instance, europe-west1). However, in practice, a region will generally be located within a specific country and almost always a specific city. For instance, the Google Cloud region asia-northeast1 is in Tokyo, while the region asia-northeast2 is in Osaka.

Each region will contain multiple zones—typically at least three zones per region. These zones usually represent a specific data center within the region that has no common point of failure with other zones. So, the zones represent regional redundancy that allows a region to continue to function even if an individual data center fails.

Figure 2-1 illustrates ...

Get Architecting Distributed Transactional Applications 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.