Cloud computing concepts: scaling, serverless, HA and VPCs explained
Cloud computing is easier to learn as a handful of architecture ideas than as a catalogue of three hundred product names. Every production backend on AWS, Google Cloud or Azure is built from the same eleven cloud computing concepts: scaling, load balancing, autoscaling, serverless, event-driven design, container orchestration, the storage hierarchy, high availability, durability, infrastructure…
Cloud computing concepts can be broken down into a handful of architecture ideas rather than a catalog of hundreds of product names. At the core of every production backend on AWS, Google Cloud, or Azure are these eleven fundamental principles: scaling, load balancing, autoscaling, serverless design, event-driven architecture, container orchestration, the storage hierarchy, high availability, durability, infrastructure as code, and private networking.
This article will explore all eleven concepts, highlighting key numbers and trade-offs often overlooked by marketing materials, before presenting them in a single diagram.
In summary, you should focus on scaling out rather than scaling up. While a larger machine can handle more workload without code changes, it eventually reaches a capacity limit. Instead, using many small stateless machines behind a load balancer ensures that the loss of any single instance will not disrupt the service.
Serverless computing also utilizes servers, albeit serverless microVMs that run functions for short periods and bill nothing when idle. AWS Lambda, for example, runs your function in a short-lived microVM, charging nothing when the function is idle, and stopping every invocation at 15 minutes.
Event-driven design is another crucial concept. Unlike synchronous request chains, event-driven architecture uses events to trigger actions and decouples services. With a simple publish-subscribe model, messages are sent to event buses or topics, which are then consumed by multiple subscribers. This approach enables handling slow third-party services without impacting the overall system's performance. A common trade-off is eventual consistency and potential duplicate deliveries.
Container orchestration tools like Kubernetes help manage and scale containerized applications across clusters of machines. These tools automate deployment, scaling, and management of containerized applications, allowing developers to focus on building and improving their services.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.