Information Technology Reference
In-Depth Information
pieces most in need of the benefits of SOA: flexibility, ease of upgrade and replacement,
and so on.
4.8 Summary
Web-based applications need to grow and scale. A small service can run on a single ma-
chine, serving content that is static, dynamic, or database driven. When the limits of one
machine are reached, a three-tier architecture is used. It moves each function to a different
machine: a load balancer to direct traffic among web servers, and one or more data servers
providing static or database content.
Local load balancers distribute traffic between replicas within a datacenter. They work
by intercepting traffic and redirecting it to web replicas. There are many load balancing
technologies, and many algorithms for deciding how to distribute traffic. When an applica-
tion is divided among replicas, synchronizing user identity and other state information be-
comes complex. This goal is usually achieved by having some kind of server that stores
state common to all replicas.
A four-tier architecture creates a frontend to many three-tier systems. The new tier
handles common services, often related to user sessions, security, and logging. A reverse
proxy ensures that many application servers appear to be a single large application.
Cloud-scale services take this architecture and replicate it to many datacenters around
the world. They use global load balancers to direct traffic to particular data-centers. A
private network between datacenters may be used if one would benefit from being able to
control inter-datacenter network quality. This private network may connect to the internet
at many points of presence to improve connectivity at many ISPs. POPs may have servers
that terminate HTTP sessions and relay data to datacenters using more efficient protocols.
Otherarchitecturepatternsareappropriatefornon-webapplications.Messagebusarchi-
tectures create a message-passing system that decouples communication from the services
that need the information. Service-oriented architectures involve many small services that
cooperate to create larger services. Each service in an SOA can be independently scaled,
upgraded, and even replaced.
Chapter 1 discussed composition, server trees, and other patterns. These rudimentary
elements make up many of the patterns discussed in this chapter. Chapter 5 will discuss
patterns for data storage; in particular, Section 5.5 will describe the distributed hash table.
All of these architecture patterns have tradeoffs on cost, scalability, and resiliency to
failure. Understanding these tradeoffs is key to knowing when to use each pattern.
Search WWH ::




Custom Search