Aman Raza
TEK Society
Published in
4 min readApr 1, 2021

--

System Design (Part 1)

What is System Design ?

According to Wikipedia : Systems design is the process of defining the architecture, product design, modules, interfaces, and data for a system to satisfy specified requirements.

So now we know what system design is.

wait !!!

We still don’t know what system design is.

So Lets Begin !!!

Let us get familiar with some terms related to system design.

Browser : It is basically an application or a programme that is used to access the web.

Server : It is a place where all the resources on the web are located.

DNS : (Domain Name System) is a system that converts an URL into an IP address.

CDN : Content Delivery Network (CDN) is a network of sub-servers connected to the main server to distribute the traffic or load on a particular server or main server.

Now don’t ask what an URL or IP address is :

Basic workings of the system :

Let’s say at first we are on a browser browsing for a webpage; let it be www.google.com As we type this URL in the search bar, the process starts.

Now the browser sends this URL to the DNS which in turn gives back the IP address of this URL, which is the actual address where the resource is located (which is a server), and the browser gets all those required contents from the server.

Above you are seeing the representation of a simple system network without CDN, but if we use CDN in our system network, then we will have many geographical points where each CDN is connected to the main server, and for each CDN that is working at a particular geographical location at a given time, it will be serving users out there with all the resources.

Check this out >>

Let’s talk about SCALING : )

So, to support the traffic on the server, we usually increase the size of RAM, or sometimes we improve the capability of the CPU, or sometimes memory too. When these things are done on a single server to improve the overall capability and capacity of the server, it is called vertical Vertical Scaling.

But vertical scaling doesn’t always work perfectly; if the server crashes or something else happens, then the whole system will just be trash.

Then comes a different solution to that, which is called Horizontal Scaling.

In horizontal scaling, we increase the number of servers instead of increasing the capacity of a single server.

So, when a single server crashes, there are other servers that are still working even if one is down or crashed.

In the above diagram, we can see there is one component out there called Load Balancer.

So, the load balancer is responsible for distributing the traffic among different servers so that no single server bears all the traffic.

Here we can see there are lots of components in the system network, and we have covered most of them. We can also see services out there, which servers generally talk to and execute the required tasks for.

So, in Part 2 of this topic, we will be going through different sorts of Service Interfaces.

--

--

Aman Raza
TEK Society

Software Engineer (Performance Testing) - Intern