Scalability is the process of increasing or decreasing service capacity or running instances to match workload needs. In a distributed application, each service can scale according to its own load instead of scaling the entire application. section 1.4.2
Scaling in cloud-native applications provides:
- Fine-grained control: scale only the functionality experiencing increased demand. section 1.4.2
- Operational trade-offs: distributed scaling improves infrastructure flexibility but increases system complexity and the need for operational tooling. section 1.4.2
- Availability practices: run at least two replicas for services where continued user access matters, reducing downtime when failures occur. section 2.6
Scaling a Kubernetes service
Use a walking-skeleton application in a local Kubernetes cluster to scale services up and down, then check that the application continues running as expected. Knative Serving extends this model with dynamic autoscaling, including scaling down to zero replicas for serverless workloads. section 2.6 section 8.2
Figure 1.20 In a monolith application, all the logic to implement different use cases are bundled together. This push different teams to work on the same codebase and requires them to have complex coordination practices to avoid conflicting changes.
Compare bundled monolithic functionality with independently scalable services and the coordination each architecture requires. section 1.4.2


























