Roadmap to becoming a developer in 2022
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Kamran Ahmed 15d0a91e1e Update migration strategies 2 years ago
..
100-mitigation-strategies Add new topics to backend roadmap 2 years ago
101-instrumentation-monitoring-telemetry.md Added instrumentation, telemetry, monitoring (#2691) 2 years ago
102-migration-strategies.md Update migration strategies 2 years ago
103-horizontal-vertical-scaling.md fix: typos (#2180) 2 years ago
104-observability.md Adding sections about observability and scalability (#2263) 2 years ago
readme.md Adding sections about observability and scalability (#2263) 2 years ago

readme.md

Building for Scale

Speaking in general terms, scalability is the ability of a system to handle a growing amount of work by adding resources to it.

A software that was conceived with a scalable architecture in mind, is a system that will support higher workloads without any fundamental changes to it, but don't be fooled, this isn't magic. You'll only get so far with smart thinking without adding more sources to it.

For a system to be scalable, there are certain things you must pay attention to, like:

  • Coupling
  • Observability
  • Evolvability
  • Infrastructure

When you think about the infrastructure of a scalable system, you have two main ways of building it: using on-premises resources or leveraging all the tools a cloud provider can give you.

The main difference between on-premises and cloud resources will be FLEXIBILITY, on cloud providers you don't really need to plan ahead, you can upgrade your infrastructure with a couple of clicks, while with on-premises resources you will need a certain level of planning.

Free Content Scalable Architecture: A Definition and How-To Guide Scaling Distributed Systems - Software Architecture Introduction