通俗回答一下为啥这些科技公司需要这么多人
很多人不明白,为啥一个破网站,除去疫情间的overhire, 还是需要这么多人?比如Twitter, Facebook, Google 为什么需要这么多人?
因为你看到的,只是你看到的。你没有从上帝的视角去看一下,在你点击某个按钮的一瞬间,全世界几千万人可能也在点同一个按钮。
Scale,scale。 Scale带来大量的直接开销,而这些直接的开销会带来大量的第二级的间接的开销,第二级的会带来第三级的……
比如:
你开始就一台服务器,做个小网站,会java或者python或者世界最XX语言就行,花了一天。
然后幸福的烦恼来了,流量上去了,你开始认真了,你就得想着,准备个热备份吧,那就有同步问题了,你那点Java知识就没啥用了,得找懂得数据库和服务器系统的人了。
然后流量继续增大,你发现服务器压力太大,得进行分布式了,搞个最简单的Master Slave模式,slave分流点读请求吧。这时候一般的服务器管理人员也不行了,得找一两个有分布式系统经验的人了。
然后流量继续增大,你发现简单的Master Slave也搞不定了,你需要更复杂的服务器集群,这时候你发现光管理这些服务的人就一大坨了,他们自己就能成立个部门叫Infrastructure。
这时你发现,你这么多机器,代码总不能让程序员自己一台台的登录上去部署吧,于是又得找专门的人,成立一个组,叫Deployment。
然后你发现,这么多机器,现在除了和外面的用户通信,自己之间也要互相通信,也要做AAA(Authentication,Authorization,Auditing),也要做很多和外面用户请求没啥关系的脏活累活,于是你把原来做网站的人分了两组,一组叫后端,一组叫前端。
然后你发现你的程序员太多了,需要好多内部开发的工具,比如搜代码的,比如搜办公室的,比如内部通讯的,于是你又得雇一大堆人做Internal Tools。
由于你完美的管理,网站流量继续增大,你发现一个服务器集群都不够,你得开专门的数据中心了,于是你又得买地,又得雇一帮运行维护人员维护数据中心。
然后你发现你的员工实在太多了,人的管理成了新的头痛,于是你需要专门的HR部门,财务部门,法务部门,于是你的员工变的更多了……
然后你发现你的员工实在太多太多了,你得雇一大批为这些干正事的员工服务的人员,比如清洁工,厨师,保安,shuttle司机,前台招待,托儿所老师……
……
……
最后你发现你做了一个按钮,似乎只用到了一个前端,
然后为了能让这个按钮同时被几千万人用,后面需要2个数据中心,2000台机器,200个后端,50个QA,100个Infra,100个Deployment,200个运维 ……
然后为了能让这些人正常上班,后面需要100个Internal tools,100个保安,50个HR,20个财务,20个法务,20个shuttle司机,50个厨师,100个清洁工,20个前台招待,10个托儿所老师 ……
说了这么多,
最后你,作为一个用户,所看到的,当然只有那个“看起来不太复杂”的按钮了……
你说的是巨无霸FLAG公司,成功在于scale
满大地的小公司死亡也在于scale
amazon elastic cloud出来后,搞死多少个小公司的IT部门
amazon marketplace出来后,搞死多少mom and pop零售店
回复 1楼zhshthd的帖子你说的是巨无霸FLAG公司,成功在于scale
满大地的小公司死亡也在于scale
amazon elastic cloud出来后,搞死多少个小公司的IT部门
amazon marketplace出来后,搞死多少mom and pop零售店
单身男 发表于 2023-01-24 01:28
你咋不说amazon cloud帮助了多少小企业的web开发简单的实现了从无到有
咋不说amazon让多少用户用比实体店更低的价格享受到了最快的商品delivery。
虽然亚麻和大公司有自己的问题,但历史的车轮还是向前的。不能说为了保住马夫的工作就不发展蒸汽机了。
很多人不明白,为啥一个破网站,除去疫情间的overhire, 还是需要这么多人?比如Twitter, Facebook, Google 为什么需要这么多人?
因为你看到的,只是你看到的。你没有从上帝的视角去看一下,在你点击某个按钮的一瞬间,全世界几千万人可能也在点同一个按钮。
Scale,scale。 Scale带来大量的直接开销,而这些直接的开销会带来大量的第二级的间接的开销,第二级的会带来第三级的……
比如:
你开始就一台服务器,做个小网站,会java或者python或者世界最XX语言就行,花了一天。
然后幸福的烦恼来了,流量上去了,你开始认真了,你就得想着,准备个热备份吧,那就有同步问题了,你那点Java知识就没啥用了,得找懂得数据库和服务器系统的人了。
然后流量继续增大,你发现服务器压力太大,得进行分布式了,搞个最简单的Master Slave模式,slave分流点读请求吧。这时候一般的服务器管理人员也不行了,得找一两个有分布式系统经验的人了。
然后流量继续增大,你发现简单的Master Slave也搞不定了,你需要更复杂的服务器集群,这时候你发现光管理这些服务的人就一大坨了,他们自己就能成立个部门叫Infrastructure。
这时你发现,你这么多机器,代码总不能让程序员自己一台台的登录上去部署吧,于是又得找专门的人,成立一个组,叫Deployment。
然后你发现,这么多机器,现在除了和外面的用户通信,自己之间也要互相通信,也要做AAA(Authentication,Authorization,Auditing),也要做很多和外面用户请求没啥关系的脏活累活,于是你把原来做网站的人分了两组,一组叫后端,一组叫前端。
然后你发现你的程序员太多了,需要好多内部开发的工具,比如搜代码的,比如搜办公室的,比如内部通讯的,于是你又得雇一大堆人做Internal Tools。
由于你完美的管理,网站流量继续增大,你发现一个服务器集群都不够,你得开专门的数据中心了,于是你又得买地,又得雇一帮运行维护人员维护数据中心。
然后你发现你的员工实在太多了,人的管理成了新的头痛,于是你需要专门的HR部门,财务部门,法务部门,于是你的员工变的更多了……
然后你发现你的员工实在太多太多了,你得雇一大批为这些干正事的员工服务的人员,比如清洁工,厨师,保安,shuttle司机,前台招待,托儿所老师……
……
……
最后你发现你做了一个按钮,似乎只用到了一个前端,
然后为了能让这个按钮同时被几千万人用,后面需要2个数据中心,2000台机器,200个后端,50个QA,100个Infra,100个Deployment,200个运维 ……
然后为了能让这些人正常上班,后面需要100个Internal tools,100个保安,50个HR,20个财务,20个法务,20个shuttle司机,50个厨师,100个清洁工,20个前台招待,10个托儿所老师 ……
说了这么多,
最后你,作为一个用户,所看到的,当然只有那个“看起来不太复杂”的按钮了……
zhshthd 发表于 2023-01-24 01:15
有道理,但是scale需要的员工多,不等于任何数量都是合理的