Distributed Cloud

February 09, 2024

Overview

Distributed Cloud is not a term that is commonly used in the industry. However, it does point to a set of Cloud services that are distributed in nature. Given the ambiguity of the term, it's safe to say that someone who searches for this is not familiar with the Cloud or distributed systems.

Here are some links that might help to start learning:

Distributed Cloud Services

Below are some of the most common examples of Distributed Cloud services:

Serverless

Serverless products are services that do not require provisioning compute instances (units of CPU + Memory). They scale up in real-time to demand, and scale down once demand has subsided. Learn more at: What is Serverless?

Distributed SQL

Distributed SQL uses replicated nodes of data to increase throughput. Data is typically eventually consistent and any conflicts are resolved via quorums. Learn more about Distributed SQL strategies to increase speed.

Cloud Functions

Cloud Functions like AWS Lambda are encapsulated instances of code that can be up and running upon invocation within milliseconds. Once the code completes, that encapsulated instance of code is terminated. This can scale up to tens of thousands of running functions concurrently. All the infrastructure is handled for you.

Serverless Container Services

Cloud Functions have timeouts measured in minutes; many workloads need more time. Serverless Container Services like AWS Fargate enable your code to run in more feature-rich containers that support large-scale, long-running applications. As traffic increases, so does capacity, and vice versa. This is similar to long-running compute instances with auto-scaling (like EC2 Auto Scaling), but with the management overhead of the instances and cluster removed.

CDNs (Content Delivery Networks)

Content Delivery Networks use locations around the world to replicate static content (or even very small amounts of code). This decreases the distance and latency from the user to the content.

Tradeoffs: Distributed vs Monolithic Cloud Services

The table below describes the generalized tradeoffs when choosing between Distributed or Monolithic Cloud services.

Distributed ServicesMonolith Services
ScalabilityHighly scalable. The maintenance of scaling is often completely removed from the user.Scalable, but requires more maintenance and monitoring by the user.
ReliabilityHighly fault-tolerant. Failure of one node typically doesn't impact the overall system.Depends on the user's capacity for maintenance and complexity. It's not highly fault-tolerant out-of-the-box.
PerformanceHigher latency due to the nature of distributed systems and potential geographic spread of nodes.Lower latency because there is less network hops within the system.
CostPotentially higher cost due to the increased complexity of the service and offloaded maintenance burden. However, this is not always the case. Serverless Functions are very cost-effective at low loads.Potentially more cost-effective for provisioned workloads.
Maintenance and ManagementDepends on the service. Can be less maintenance and management as is the case with many Serverless products. Could also be more maintenance and management, as would be the case with some Distributed SQL products.Simpler to manage from the perspective of inherent complexity of the system. However, depending on the service, it could require work to keep current with updates.
SecurityDepends on the service. Cloud Functions are very secure services because they're such isolated, transient, and minimal environments. On the other hand, any self-managed service would require more overhead to keep secure.Monolithic services can be easier to keep secure because there are fewer parts. However, they can also be more self-managed, increasing risk.