Architecting Distributed Transactional Applications
by Guy Harrison, Andrew Marshall, Charles Custer
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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access