Overview

12 Cloud and services

This chapter traces the shift from static, manually provisioned infrastructure to dynamic, elastic cloud environments and argues for precise, shared definitions of cloud, cloud-native, serverless, and services. It presents elasticity—acquiring and releasing resources on demand—as the foundation for scalability and reliability, contrasting earlier proactive, predictive operations with reactive, self-regulating systems. The aim is to provide concise mental models that align with industry practice and improve communication.

Cloud computing is defined by a clear separation between resource consumers and providers and by on-demand acquisition and release of resources. A cloud-native application is scalable and reliable by construction, leveraging platform primitives such as supervisors, autoscalers, and load balancers; lifting and shifting alone does not make an application cloud-native, and specific technologies like containers are not defining characteristics. Serverless computing acquires resources reactively after an event arrives, requiring the system to infer resources per request, and leads to cold and hot paths depending on whether resource acquisition lies on the critical path of request processing.

Reframing microservices as services, the chapter defines a service as a contract between a component and the rest of the system, emphasizing a logical view over the physical set of implementing components. A recommendation service example shows how a stable contract can be realized by a dynamic, redundant assemblage of processes, data stores, load balancers, and autoscalers that scale and fail independently while preserving the same external behavior. The chapter closes by stressing that shared, accurate mental models reduce misalignment and improve engineering and collaboration, encouraging readers to keep probing concepts until they are truly understood.

Elasticity in terms of scalability and reliability
Non-cloud application versus cloud application
Non-cloud-native application versus cloud-native application
Minimal model of computation to reason about serverless computing
Order of events in traditional computing; acquiring resources happens proactively.
Order of events in serverless computing; acquiring resources happens reactively.
Cold path versus hot path
Global point of view: C1 and C2
From C1’s point of view, there is only C1 and the rest of the system.
Initial model of the recommendation service
Redundant implementation of the recommendation service
Primary and backup
Loadbalancer and Autoscaler
Redundant Loadbalancers and Autoscalers
Final model of the Recommendation Service
Thinking in distributed systems aims to maximize the intersection of our mental models with reality and each other.

Summary

  • Elasticity refers to a system's ability to ensure scalability and reliability by dynamically acquiring or releasing resources to match demand.
  • Cloud computing divides the world into resource consumers and providers, allowing consumers to acquire and release virtually unlimited resources on demand through public or private cloud platforms.
  • Cloud computing fundamentally transformed computing, replacing static, long-lived system topologies with dynamic, on-demand system topologies.
  • A cloud application is any application hosted on a cloud platform, while a cloud-native application is a cloud application that is elastic by construction.
  • Traditional systems acquire resources that are necessary to process events proactively, before receiving the event.
  • Serverless systems acquire resources that are necessary to process events reactively, after receiving the event.
  • Services are contracts between components and the system, focusing on logical interactions that remain constant instead of physical interactions that may change over time.

FAQ

What shift does the chapter describe from proactive to reactive system design?Systems moved from static topologies with a few long‑lived, well‑known resources to dynamic topologies composed of many short‑lived resources (including short‑lived network addresses). Instead of predicting load and failures proactively, engineers increasingly observe and react so that systems can self‑regulate.
What is elasticity and why does it matter?Elasticity is a system’s ability to achieve scalability and reliability by acquiring and releasing resources on demand to meet demand. It’s the bedrock of modern cloud environments and enables reactive, self‑adjusting systems.
How does the chapter define cloud computing?Cloud computing separates resource consumers from resource providers (the cloud platform). Consumers can acquire and release virtually unlimited resources (compute, storage, etc.) on demand. This division and on‑demand resource control are the core primitives of cloud computing.
What is the difference between public and private cloud platforms? Can you give examples?A public cloud offers resources outside the provider’s own organization (e.g., AWS, Google Cloud, Microsoft Azure). A private cloud offers resources only within an organization (e.g., company‑run OpenStack, Cloud Foundry, or Kubernetes instances).
What makes an application cloud‑native?A cloud‑native application is a cloud‑hosted application that is scalable and reliable by construction, explicitly leveraging the cloud’s ability to acquire and release resources on demand. These qualities are assured by design and implementation, not merely requested as requirements.
Do you need containers and microservices to be cloud‑native?No. While cloud‑native applications often use containers, microservices, and declarative orchestration, these are not defining requirements. Cloud‑native is defined by being scalable and reliable by construction; technology and architectural choices may vary.
Which platform building blocks support “by construction” scalability and reliability?Supervisors (replace failed resources), scalers (add or remove resources to match demand), and load balancers (distribute requests). In Kubernetes, these map to Deployments (supervisor), HorizontalPodAutoscaler (scaler), and Service (load balancer).
What is serverless computing in this chapter’s model?In serverless environments, the system may acquire the necessary resources after an event enters the system (reactively), rather than a priori. The system must determine the required resources from the event itself, subject to the constraint that an event cannot be processed before needed resources are acquired.
What are the cold path and hot path in serverless?The cold path occurs when receiving and processing an event are interleaved by on‑demand resource acquisition (incurring a “cold start”). The hot path occurs when resources are already available, so receiving and processing are not interleaved by acquisition.
How does the chapter define a service, and what does the Recommendation Service example illustrate?From a local view, a service is a contract between a component and the rest of the system—not the set of components that implement it. The Recommendation Service example shows the implementation can be a dynamic, redundant collection of components (primary/backup groups, smart load balancers, autoscalers, and shared infrastructure), while the service’s contract (return recommendations) remains the constant.

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Think Distributed Systems ebook for free
choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Think Distributed Systems ebook for free
choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Think Distributed Systems ebook for free