使用后端云服务稳定吗?这TM是我的亲身经历

时间:2024-04-01 22:41:46

谈到后端云服务,众人对它的价值还是很认可,比如使用方便、开发快速、节省成本等等,但是谈到它的稳定性,啧啧啧。。。我隐隐听到了身后此起彼伏的声讨声。作为一个切身使用Bmob后端云服务的个人开发者,我想说说我的经历。

 

2017年8月左右,由于我开发的APP的特殊性,其实也不是很特殊,相信很多人开发的APP都一样,就是在某些时间点会流量爆发,数据如下:

使用后端云服务稳定吗?这TM是我的亲身经历


然后,然后,就如大家意料之中的一样,挂了。。。。挂了。。。。,在我以为就要升职加薪、飞黄腾达、赢取白富美,走上人生巅峰的时候挂了,那真是火不打一处来,TMD你不稳定你就不要给我们忽悠些云服务多好多好呀,你不稳定你就算是省钱省力有毛用啊,然后硬是逼得我大周末的晚上去找他们客服理论,没想到还真有人在,一个叫magic的技术客服回复了我。


服务挂了的桑心人:客服在吗?我的服务挂了,快整个人出来解释一下,急啊

Magic:请问你的APP叫什么名字?你的账号是多少呢?我们后台帮你看一下

服务挂了的桑心人:******,快查查

(2分钟后)

Magic:好的,我这边查到您的应用流量爆发,而且是经常性的瞬间高并发,是应用被黑客攻击了吗?

服务挂了的桑心人:没有啊,我的业务就是这样的

Magic:好吧。由于你使用的免费版本,公有云服务,单个用户的流量爆发会影响到同一集群中的其他用户,您所在的集群刚好有几个同类产品。这样吧,我们先帮你做一下压力测试,给你单独迁移出来,之后针对你的这类做一套技术方案,来应对这种经常流量爆发的应用。


(看来他们不止一次遇到我这种流量瞬间高发而影响到统一集群中其他用户的客户了)

果然,迁移出来的那段时间里,服务没有出现任何问题了。紧接着,magic联系我,说是为解决经常瞬间高并发影响的大部分人,他们策划了企业版与企业Pro版本完全隔离,能大大提高稳定性。

尽管迁移版的体验不错,但是要出钱买企业Pro版还是多多少少有点担心,钱的数目并不多,但就是怕给了钱还特么不稳定。于是我问了他们实现稳定的原理。


Magic:“以Bmob的运维经验,云DB服务器的CPU,跟云主机的CPU监控是不一样的,云服务器DB的CPU到60%基本已经读取不到DB里面的数据,而云主机CPU到90% 程序还能正常跑。为了冗余一般我们把DB负载控制在3%左右,像下面这样:

使用后端云服务稳定吗?这TM是我的亲身经历


提高稳定性,主要是提高DB机器的处理能力,当DB机器,CPU大于10%,我们就能收到警报,进入机器查看是哪个应用异常,观察一段时间,如果其他人没受影响,发现该应用资源占有还是居高不下,我们会把他隔离到企业版本临时服务器,观察他2天,如果正常则迁移回来,不正常则通知开发者关闭应用。如果其他人直接受影响,我们当场会临时关闭这个应用。如果是企业Pro版,就不会出现这种受别人应用波动而影响应用的性能,从带宽、IP、接口、数据库都完全独立了,相当于你企业私有的云服务。”


这个听上去还比较靠谱,于是我决定整个企业Pro版试试,虽然花了一点钱,但确实是一分钱一分货,找到了不稳地的原因所在,基于原因给出了这个方案,之后这几个月确实是没有出过问题。

 

Magic技术不错,人也不错,能很及时帮我解决问题,自然聊成了基友,哦,不,朋友!我问他:网络上很多说后端云不稳定的,不仅仅是你们不稳定,其他几家也被骂的很惨,你们分析过不稳定的原因吗?

然后他给我上了一堂课:

“针对不稳定的问题,我们做了很多尝试,后来还重新做了架构。只是,平台稳定性的升级,在用户层感知是不明显的,这就跟微服务的概念一样,只要网络 API层不变,底层技术将变得不那么重要,至少对于开发人员是这样的。你不需要关心,容器是什么、虚拟机是什么、只需要它们使用RESTful API就可以了。无论是android、ios、nodejs、C#等等SDK,在Bmob他们都是基于RESTful API.

平台的稳定性主要取决于一下几个方面:

1.平台技术成熟度 ,Bmob Baas发展很多年,几乎不存在这问题;

2.机房网络故障率,如线路因素,本地电信,网通出现不稳定等;

3.机房机器故障率,如物理宕机故障;

4.工作人为因素,如代码发布失败;

5.服务器性能不足,运行不稳定。

由于多年技术积累,前面4项,几乎可忽略不计,一年难得出现一次。可以判断,影响稳定性问题最大原因是服务器性能瞬间不足,从而影响稳定。这可能是所有IT企业面临的一个问题,如果没大并发,每个企业都能做到稳定。”


后边我认真的思考了他说的话,还挺有道理。客观来讲,免费用户都在一个公有的集群中,想要保证自己的产品不受其他产品的影响,完完全全保证稳定性,确实比较难,想要完全不受影响,就得有自己的独立集群。这就好比住房子,如果出不起价钱,住的城中村廉租房,那就免不了要受楼上夫妻的吵闹,楼下KTV 的嚎叫,以及隔壁午夜传来的啪啪声,要想清静,不受影响,那就只能花大钱买个豪宅或者江景别墅,这无非都是一分钱一分货的道理。

我也终于明白传说中的不稳定的起因,大多数是由于同一公有集群中的瞬间高并发的应用影响的,要么让你这讨厌的邻居迁出,要么你自己花点钱迁走,就这么简单!

当然,我知道架构的稳定性不是这么三言两语就能说清的,不稳定的观念也还是会存在一些人脑中,只是得益于Bmob的帮助和自身的经历,写下了这么一个过程,纯属个人经历和简单理解,不喜就喷死我吧。。。。