Chapter 17: Cloud Computing – Architectural Principles
Loading audio…
ⓘ This audio and summary are simplified educational interpretations and are not a substitute for the original text.
Cloud Computing – Architectural Principles architectural overview delves into the fundamental principles of cloud computing and distributed systems, defining the cloud by its characteristic on-demand availability and elasticity across a spectrum of offerings, from application hosting to low-level infrastructure-as-a-service (IaaS). Cloud providers manage vast, globally dispersed data centers organized logically and physically into regions and availability zones, strategies designed to reduce latency for users and provide robust defense against simultaneous hardware failures. Resource provisioning, such as allocating a new virtual machine (VM), is managed via the management gateway, which fields requests specifying instance type and region before coordinating with hypervisors to assign resources. A critical reality for architects is the inevitability of component failure within large data centers. Distributed application designs must employ timeouts—an availability tactic used to detect unresponsiveness—which requires careful parameter tuning to avoid misidentifying temporary network slowdowns as hard failures. Furthermore, architects must account for long tail latency, a phenomenon where a significant percentage of requests experience latency many times greater than the average, necessitating specialized strategies like hedged requests or alternative requests to mitigate performance issues stemming from unpredictable network congestion. To handle increasing client load, architects typically favor horizontal scaling (scaling out) over vertical scaling (scaling up) by deploying multiple service instances behind a load balancer. The load balancer distributes traffic using methods like round-robin and guarantees resilience by continuously executing health checks to remove failing instances from the service pool. For efficient scaling and recovery, the widely adopted architectural practice is to design services to be stateless, ensuring that internal history is persisted externally, though complex distributed coordination algorithms like Paxos are sometimes required to manage shared state or achieve consensus across systems, tasks best delegated to proven services like Apache Zookeeper. Finally, the infrastructure utilizes autoscaling to automatically create or destroy instances (VMs or containers) based on monitored resource metrics like CPU utilization and predefined rules, ensuring that resource usage matches workload demands and maximizing cost efficiency.