3.3 Server
Server architectures are commonly composed of one to three code layers implemented in one to three tiers. While the temptation is to always build three-tier architectures, there are pros and cons to doing so. For example, large-scale three-tier architectures can be expensive to implement. If the actual application is for a limited number of people, it can be overkill.
In the following sections, we will discuss one-tier, two-tier, and three-tier architectures and some of the pros and cons of implementing them.
3.3.1 One-Tier Architecture
A one-tier architecture can be developed so that three code layers exist on a single server (see Figure 3-12). There are several pros and cons for doing so, as follows:
Figure 3-12 One-tier architecture
Pros
-
Very convenient
-
Quick to develop and deploy
Cons
-
Less scalable
-
Hard to secure
It is extremely convenient to be able to develop code on a single machine. On the other hand, it is extremely difficult to scale the application. For an internet application, it is also hard to shield the server using firewalls and security zones since you almost certainly have to place the server in the DMZ, which may result in exposing your database to an unacceptably high security risk.
3.3.2 Two-Tier Architecture
A two-tier architecture can be developed so that a database server is split off from the presentation/application server (see Figure 3-13). There are several pros and cons for doing so, as follows:
Figure 3-13 Two-tier architecture
Pros
-
Convenient
-
Allows database server specialization
Cons
-
Less scalable
-
Hard to secure
-
More expensive
Splitting off the database server allows it to become a more specialized server. However, it is still extremely difficult to scale the application. It is also still difficult to shield the servers with firewalls and security zones, although this is markedly better than in a one-tier architecture. Nonetheless, you may still expose your application to unacceptably high security risks.
3.3.3 Three-Tier Architecture
A three-tier architecture can be developed so that the database, application, and presentation servers are split off from one another (see Figure 3-14). There are several pros and cons for doing so, as follows:
Figure 3-14 Three-tier architecture
Pros
-
Scalable
-
Secured behind firewalls and zones
-
Allows database server specialization
Cons
-
Overkill
-
More difficult to develop
-
More difficult to manage
-
More expensive
Splitting off the database allows the database server to become a more specialized server. Splitting off the presentation and application servers also allows for specialization of those servers. This allows you enormous scalability potential. It is also possible to secure the application and servers behind firewalls and zones since the presentation servers can be placed in the DMZ and application and database servers can be placed in the Intranet Zone.