Why do some uncomplicated websites, such as Facebook, need a lot of top experts to develop?

Because what you see is only what you see! You didn't look at it from the perspective of God. The moment you click a button, tens of millions of people in the world may also click the same button! Scale, scale! Scale brings a lot of direct costs, and these direct costs will bring a lot of second-level indirect costs, and second-level ones will bring third-level...

For example: you start with a server and build a small website, know java or python or the world's most XX language, and it took a day. Then the trouble of happiness comes, the traffic goes up, you start to be serious, you have to think, prepare a hot backup, then there is a synchronization problem, your little Java knowledge is useless, you have to find an understanding of the database And the people of the server system.

Then the traffic continues to increase, and you find that the server is under too much pressure, and it has to be distributed. Set up the simplest Master Slave mode, and the slave splits read requests. At this time, ordinary server administrators are no longer good, and you have to find one or two people with experience in distributed systems. Then the traffic continues to increase, and you find that simple Master Slave can’t be handled, and you need a more complex server cluster. At this time, you find that the people who manage these services are a lot of people, and they can set up a department called Infrastructure. . At this time, you find that you have so many machines, the code can't let the programmer log in one by one to deploy, so you have to find a special person to set up a group called Deployment.

Then you find that with so many machines, in addition to communicating with outside users, they also need to communicate with each other. They also need to do AAA (Authentication, Authorization, Auditing) and do a lot of dirty work that has nothing to do with outside user requests. Tired to work, so you divide the people who used to do the website into two groups, one is called the backend, and the other is called the frontend. Then you find that you have too many programmers and you need a lot of internally developed tools, such as code search, such as office search, such as internal communication, so you have to hire a lot of people to do Internal Tools. Due to your perfect management, website traffic continues to increase, and you find that a server cluster is not enough, you have to open a dedicated data center, so you have to buy land, and you have to hire a bunch of operation and maintenance personnel to maintain the data center. Then you find that you have too many employees, and human management has become a new headache, so you need a dedicated HR department, financial department, and legal department, so your employees have changed more...

Then you find that you have too many employees. You have to hire a large number of staff to serve these employees, such as cleaners, chefs, security guards, shuttle drivers, receptionists, nursery teachers..................

Finally, you find that you have made a button. It seems that only one front end is used. Then, in order to make this button used by tens of millions of people at the same time, 2 data centers, 2000 machines, 200 backends, and 50 QA are needed. 100 Infra, 100 Deployment, 200 operation and maintenance...

Then, in order for these people to go to work normally, they need 100 Internal tools, 100 security guards, 50 HR, 20 finance, 20 legal affairs, 20 shuttle drivers, 50 chefs, 100 cleaners, and 20 receptionists. , 10 nursery teachers...

Having said so much, in the end, what you, as a user, see is of course only the "not too complicated" button...

Laisser un commentaire