一个大型社区网站(比如掘金)需要多少台服务器?
作者:Karminski - 牙医
请分享社区网站服务器的大致要求。
不知道各位开发者有没有听说过掘金,从2016年到2019年我担任掘金CTO,从零开始设计了掘金目前的整体架构(包括软件架构和硬件基础设施,所有技术相关的开发和业务都是我的责任)。
掘金 到目前为止(2019-09-06)Alexa在中国排名626(最好的分数有时在230左右。作为比较,segmentfault是101,OSChina是154),类似的网站在中国排名399(作为比较,段故障为 329,OSChina 为 314)。不知道这样的结果算不算“大网”。
从业务类型上来说,社区业务的复杂性更多是由于产品功能之间的依赖而导致逻辑的复杂性。例如,如果您给某人点赞,则该数字应反映在被点赞的文章中,并且应向被点赞的作者发送通知。类似的操作也应该出现在您的时间线上,并且关注您的人也应该收到通知。人们可以阅读您的更新等等。但归根结底,它只是一个网络商店。因此CPU、内存、磁盘等资源使用密度并不是特别显着。
在线
首先,我们将这个服务器定义为“操作系统实体”。毕竟,现在一切都已虚拟化,使用了多少物理服务器并不容易。
网站由3台8核16G云服务器组成。前面连接了 4 个负载均衡器,每个负载均衡器都绑定到一个用于 DDoS 解决方案的袖珍 IP。 .
微服务层由4台云服务器16core32G组成。同样,前面有4个负载均衡器。
cronjob(定时作业)2台4核8G云服务器。
数据库2个MySQL实例(4台电脑)、5个MongoDB实例(共20台电脑)、14台Redis电脑。
中间件zookeeper(6台机器)、kafka(6台机器)、ELK(3台机器)。
大数据CDH全家桶(10台机器)
各种DNS服务器、冷备份、等。(6台电脑)
以上是进行在线业务的所有电脑,除了负载均衡等云服务商直接提供服务的实例外,共78个实例.
如果采用极限压缩,比如数据库不是那么复杂,实例要尽可能复用,砍掉大数据等操作组件,估计这样一个站点40个就可以完成。
也就是说,要实现一个国内500个左右(全球约3000个)的社区网站,40台服务器就差不多准备好了(当然其他类型的业务可能或多或少,但是社区型网站应该都是类似的)。
离线
但这只是冰山一角,我们还有本地机房的测试环境和服务器供工程师日常使用:
离线CDH全家桶14个示例
开发示例
代码托管、CI、CD 6 个实例
容器环境 16 个实例
CEPH 6 个实例
数据冷备份 3 个实例 ❙ Instous6 共 57 个实例。
即掘金最终使用的服务器是 135 个实例。按照4个实例,一台物理机计算,物理服务器应该在34台左右(满装2个机柜即可)。
兴趣
因为我在这方面比较有经验,所以从省钱的角度来说,我们的本地服务器都是二手服务器。
我们本地的服务器
有了虚拟化,50多个虚拟机实例所需的服务器就可以用小卡车运输了
BIOS开机画面是IBM X3650M4百度服务器
是的,你没有看错,都是淘宝产品【手动搞笑】甚至有一台服务器被百度下架。
由于这些行业龙头的服务器过时,对于一个初创公司来说,能够买到便宜的设备,省钱,确实是一件幸事。当然,有一个好老板的支持也很重要。我们可以节省近30万的服务器采购费用。
(Google刚成立时,也是靠大量二手设备提供服务)。
原版Google生产服务器
有的朋友可能会关心关于二手服务器是否会出现问题?这确实是一个隐患,所以我们只在本地使用。线上还是直接使用云服务。
了解我的朋友可能知道,我家里的机器其实比工作时还多。所以体验方面对我来说不是问题。哈哈![]()
以上是我在掘金的实践经历。
其他
搜索 仍然非常耗费资源。当我搜索360时,仅用于显示搜索结果的网络机器数量达到了5个机房,每个机房有12台机器。具有主、副发动机的机器数量超过数千台。
直播业务会更便宜,CDN费用会更贵。我自己的生意并不严重依赖机器。以PandaTV为例,我离开时(2016年底)估计机器数量达到1000台。我负责的数据业务实际上是CDH家族的一个更大的细分集,不到20台机器和一些常用的企业机器,也就是20台机器左右。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网