项目服务器级别架构解析

143 阅读7分钟

以下都以国内私营企业最流行的服务器阿里云为例

一 云服务器

以下以阿里云的云服务器ECS为例

cpu 和内存非常重要

cpu 和内存对于服务器来说是很关键的. 如果你的 CPU 和内存能够满足你的请求和服务,负载正常,接口才能正常访问请求.

就像如果一个餐饮店如果只有 1 个员工,现在却有 30 个顾客,会导致什么呢. 迟迟出不了餐,然后顾客体验非常不好.

配置比例

配置 ECS 理论上是CPU 和内存比 1:4,但实际上可以根据你的业务来灵活配置,达到最佳性价比.

  • 比如你是专门跑大数据的,主要是计算很多,那 CPU 就可以占比更大点
  • 如果你的 数据库和你的代码是一个服务器,那么内存可以占比更大点

比如因为我计算不是特别多,所以我发现没必要内存那么高,我现在的项目 90 万用户. 每天DAU1 千多. 我如果配置成 1:4 的话,反而会发现内存占用比太少. 所以我这个项目自己配置的是 1:2,甚至 1:1 都可以.

cpu 和vcpu的区别

cpu是一个硬件, 而一个 cpu 是可以分化出多个 vcpu 的. 现在你卖服务器,阿里云列出来的不是显示 cpu,而是vcpu,但是 vcpu 并不是指 1 个 cpu,比如你看这台服务器的配置是 2vcpu2g 内存,不是说这台服务器就两台 cpu 了.他很可能就是 1 个 cpu.

服务器技术一直在迭代,新的技术 1 个 cpu 是可以有多个 vcpu 的.这样的 cpu 比一些老的 cpu(只能有 1 个 vcpu) 性能会更好些.所以为了更精准的显示cpu 的性能,就用的 vcpu 这个单位

带宽

带宽的话不需要太高.我那个每天 1000 多人访问的项目带宽只有 2M,也够用了.

服务器自带硬盘

你买服务器的时候它一般会自带一个硬盘,一般是 40G,而且最小也只能 40G. 硬盘的大小其实不光决定了你的存储容量,其实硬盘还是影响 IOPS 的,系统会根据你的硬盘大小分给你对应的 IOPS.所以不是单纯根据你的存储容量来决定你要多大的硬盘,可以多买点空间,这样你的并发会更高些.

上活动了服务器怎么应对

很多公司都会针对各大季节搞活动,有的时候自己也会发起活动.那么当遇到活动的时候,流量可能是 double 甚至我遇到过活动期间翻几倍的,那怎么办呢 一些人错误的做法就是直接升配置,然后你会发现服务器的费用增长了很多. 其实有两个方法

  1. 带宽,带宽是可以临时升级的,你可以升级下带宽
  2. 把一些常用的数据放进 redis 做缓存,降低服务器的压力,这个其实成本很小,但是挺有用的.

二 文件存储推荐云硬盘

文件存储有 比如阿里云家就有好几个云端文件管理服务:块存储,对象存储,表格存储等等,比较常用的是 OSS对象存储, 我目前为止云硬盘觉得只需要它就好,我是不推荐商业项目把你客户的数据文件和你的ECS 放一个服务器,基于这几个原因

可靠性

这个防的是服务器崩溃无法使用,以及你的服务器所在地发生事故,比如地震,水灾,起火等. 前几年有个创业公司,没有做好备份,辛苦创业几年,前期投入大量推广,终于项目盈利情况开始好转,就在要见到曙光的时候,服务器所在机房出现问题,导致所有服务器无法使用了, 几年积累下来的用户数据直接无语,无法恢复,最后只能索赔几千万,而对方认为自己就算要赔也只是这个公司之前支付的服务器的价格,而不认可这家公司的用户数据的价值.这个就是个大灾难了

而 OSS你在购买的时候就可以选择是单备份还是高可用备份(三个备份),而你单独买服务器的话,做单个备份,n 个备份还得你手动操作.

拓展性

随着你用户数据的发展,你的文件存储容量会越来越大,如果为了这个拓展你的主服务器的话其实感觉不是很对口,而且服务器扩容硬盘空间并没有 OSS 这么灵活方便,OSS扩容非常方便简单,最大几乎无限制,优秀的 OSS 甚至能到几十万,百万级别的 IOPS.

权限管理

更丰富灵活的权限管理.可以设置各个文件夹,单个文件的访问权限,过期时间等

附加功能

OSS 会提供很多附加功能,比如我之前想做一个视频上传并且为了性能考虑显示的时候默认是显示封面而不是直接加载整个视频,当然,我也可以用 canvas 去获取视频封面,但是如果用 OSS,他有现成的 api, 比如

  • 现成的操作工具: 网页, 客户端工具ossutil 和调用 api(上传下载预览)
  • 给图片加水印
  • 直接获取视频的某一秒截图(可拿到视频封面)
  • 等等

费用

如果你是存比如很久不会用的文件,那其实 OSS 也很适合,OSS 一般会对文件分

三 服务器负载监测工具和判断指标

监测的话其实各大云服务商都自带监测这几项:cpu,内存,带宽, 硬盘 最需要关注的就是两个指标 cpu和内存 他们俩不是说要到 100%满了才会影响性能. 一般到 80%左右就是很明显需要升级的象征了.

四 SSL 证书

现在的网站,都需要是 https 协议. 否则会受到很多限制,比如在 chrome和微信小程序都会有相应的处理. SSL 认证是国外公司颁发的,默认都要花钱买,而且买了并不是永久的,每年得续费

付费的 SSL 证书

优点很多,比如一般可以支持顶级域名,也就是你再申请子域名比较方便,不需要为每个子域名单独申请证书. 缺点嘛,就是要付费,付费费用一般是几千一年.

免费的 SSL 证书

很多人不知道,阿里和腾讯是可以申请免费的 SSL 证书的,而且商用也没问题. 这种免费的证书缺点主要有 3 个.

  • 缺点 1. 每次申请有效期只有 1 年.每年都得续费,如果没有及时续费,就会造成网站访问异常
  • 缺点 2,免费域名一般只针对单个域名.比如如果你有 x.com,a.x.com,b.x.com,算是三个域名.需要你申请三个ssl 证书.不过好在每年只需要申请 1 次,所以这个缺点还算可以忍受.
  • 缺点 3.付费域名是没有个数限制的,但是免费域名各大平台基本上最多都只能身亲 20 多个.不过这个缺点对一般产品不是特别多的公司来说并不影响,因为我们很可能不需要那么多域名.

五 用户的身份验证(比如实名验证)

主要是能允许用户注册的,基本上就必须得调身份验证. 主要是身份证验证,银行卡验证和活体识别(人脸识别这类的) 这些 api 都可以从阿里云的云市场里找,单次调用成本大概 1 毛多一次.

六 短信

阿里云和腾讯云都有第三方 api. 支持国内短信和国际短信. 腾讯云的我觉得便宜点,每次 4 分钱左右.还可以知道每个短信的送达率,失败率等等. 每个短信模板都需要审核,审核时间大概 1-3 个工作日, 短信内容不能带链接,微信号,手机号和一些特殊字符.