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.