Hello and welcome to the course! π I trust this course will offer you an excellent learning journey of System Design . πβ¨
-
Getting Started
-
Scalability and Performance
-
Data Management
Before we start this course, let's talk about what even is system design.
System design is the process of defining the architecture, interfaces, and data for a system that satisfies specific requirements. System design meets the needs of your business or organization through coherent and efficient systems. It requires a systematic approach to building and engineering systems. A good system design requires us to think about everything, from infrastructure all the way down to the data and how it's stored.
Horizontal scaling involves adding more servers or machines to handle increased demand. Instead of upgrading a single server, you introduce additional servers to distribute the workload. This method helps balance the load across multiple servers, making the system more scalable as user traffic grows. For example, if a website experiences a surge in users and one server can't manage it, adding more servers will share the traffic, improving performance and reliability.
Vertical scaling means enhancing the power of a single server by increasing its hardware capabilities, like upgrading the CPU, RAM, or storage. This approach boosts the performance of the existing server to handle more load without needing additional machines. For instance, if a server becomes slow due to heavy usage, upgrading its RAM or processor can improve its ability to handle more tasks. Vertical scaling is ideal when you want to improve the capacity of one server without changing the system architecture.