Hi Guys,
I participate of a interview for a big silicon valley company last month and I didnt got the job cause I failed in the last interview question (about system design). The question was the following:
Suppose you have small number of servers and you were using a script to send a 2GB file every day to this servers.
However, your environment increased to thousands of servers (~1500) and now it is not practical to send this file using a local script to the servers. Design a system to distribute this binary file for the servers.
Some systems assumptions:
* Network has 1Gb of badwidth
* Servers are located in racks and each rack has a ToR switch (no free ports available)
* No budget to buy more network devices
* Each server has about 2 CPUs and 2GB of ram
* The binary file is updated about 2x per day (sometimes 3x, but it is rare)
* Servers do not have Internet access (limit access to cloud solutions, such dropbox)I figure out some solutions (like using NFS servers and also using some solutions using websocket - which is able to send and receive data in any direction), but would like to hear some other solutions to that question, cause it is bugging me since the interview.
Thanks guys!
Artur Baruchi