APP推广合作
联系“鸟哥笔记小乔”
后台服务怎么说挂就挂了?让程序员祭天之前,如何刀下留人?
2020-05-20 18:30:24

本文2456字,阅读完预计要7分钟
世界上最痛苦的事情不是产品流量没起来,而是流量上来了服务后台却挂了;世界上最痛苦的事情不是版本没有如期上线,而是上线后程序员被祭了天

但凡一款爆发式增长的产品,几乎都在后台服务上折过腰,一般公司的操作方法:杀一个CTO祭天。但是,祭天有用吗?这事儿就真的和产品经理一点关系都没有吗?


今天丽莎阿姨就和你一起来聊聊后台服务的那些事儿~~听完后,希望你能理解程序员小哥,与他在同一认知维度上思考,更关键的是也许你的一个小小举措就能拯救一条猿命啊~~~

俗话说得好,程序员有三难:
  • 安卓:折叠、挖孔、齐刘海

  • 苹果:证书、上架、热更新

  • 前端开发:IE 六、七、八、九、十

  • 后端开发:并发、写库、做运维



相比于其他,后端开发的最大难度就是需要在有限的资源上对海量的数据做高效地处理。怎么理解这句话呢?
  • 有限的资源:例如当前一个很厉害的 88 核/710GB 的后台服务器,其实也就是宇宙第一强手机 HUAWEI P40Pro(8 核/8G)的十倍左右

  • 海量的数据:就我们产品而言,随便挑一个数据库都已经有好几 T 的大小

  • 高效地处理:后台处理一慢,用户体验就变的很糟糕,丝毫不敢懈怠


所以,产品的数据量一旦飞速的起来,宕机就变成了分分钟的事情。一个正常的猿外人,首先的思考就是,为啥不扩容?不就是钱能解决问题的吗?

1
扩容能解决宕机的问题吗?

难题一:不是所有的资源都能简单的扩容

12306 网站够有钱吧,但是上线当初就是疯狂的崩啊,所以花钱并不能直接解决问题。那么为啥不能简单横向扩容呢?
原因很简单:如果系统用到了一些有单点限制的资源,那其他系统再怎么扩容也没用。哪些是常见的单点资源呢?一般是数据库、缓存、核心依赖的第三方服务等等。


难题二:你永远不知道宕机和出轨哪一个先来

如上图所示,随着用户量的增长服务器的费用也会水涨船高,但是用户量的增长很多时候要听天命。就像微博的突发事件,事情来了用户暴涨XXXX万,事情过后一片唏嘘。
不扩容不是人,扩完容人散了,你就是猪。所以,对于产品经理们来说,能够非常精准的预测到即将到来的流量就变的尤为重要。数据监控,模型推演,历史事件对比分析都是非常有效的方式。

这个时候,猿外人估计也会想到,为什么程序猿不进行动态的缩扩容呢?

这个举一个非常形象的例子:想象后台服务就是一个奶茶店,假设一个营业员小哥正常 1 分钟处理一个用户,以下是可能会遇到的一些情况:
  • 特殊工艺的奶茶:制作工艺非常复杂,做一杯要 5min,那这个营业员这 5 分钟暂时不能接客

  • 水龙头流的很慢:每次接杯水都要好久,处理一个用户的时间自然要变得很长

  • 还有一批混混:不知道被谁雇佣过来的,过来排队但又不买


这些问题,都是后台开发的过程中会遇到的实际问题,要处理起来每一个都非常棘手,并非雇佣和解雇几个小哥就能解决的。

2
为什后台服务会挂?

常见的原因有两个:
  • 单点系统可能会挂或者处理能力有限,典型:数据库、Redis 缓存(10W qps)

  • 第三方依赖可能会故障,包括核心依赖、非核心依赖

后台程序员怎么做能让服务能更稳一点?

法宝 1:拆
拆是一个种常见的方法,常见的会根据伸缩立方和微服务做下面这些拆分。
  • 水平拆分 这种方式比较常见,可以认为是简单的水平扩容,简单来说就是一台不行,多跑一台扛着

  • 功能性拆分 这种方案是根据功能模块的不同,进行拆分后台服务,不把鸡蛋放在一个篮子里。如果有一个服务故障,不影响其它服务的运行。

  • 数据拆分 前面有提到,数据库经常会成为单点的瓶颈。一般在功能性拆分的同时,我们也会做数据的拆分,不让一份数据变得超级大。

法宝 2:寻找更强的单点
如果单点暂时有瓶颈,那可以考虑:是不是有功能一样,但是性能更强的单点可以替代呢?
常见的方式是换组件,自己的不行换云服务的,单机版不行换集群版本。
比如对于数据库,阿里云上的 PolarDb 号称比传统 MySQL 性能提升 6 倍左右,如下所示。

法宝 3:牺牲时效性
既然数据库写的单点很难解决,就从读取上想办法。这就像,老板太忙,就请一个秘书,虽然消息传递有一些时延差,但是可以分担老板的精力,一个秘书忙不过来还可以再多请几个。
如下图,一个家校沟通的产品,老师发布作业这个场景就可以牺牲掉一部分的时效性。
法宝 4:让单个请求处理更快
慢请求是后台永远的噩梦,一旦有大量请求处理很慢,就非常危险了,所以要程序员小哥在开发的过程中,经常做重构、优化、做架构演进,目的就是让请求处理得更快。
法宝 5:提前计算好,不要等用户来的时候再计算
对于一个业务来说,会存在一些数据统计相关的服务,如果按照来一个用户计算一次的方式,服务的质量和数据库的压力都会非常大。
最好的方式就是在凌晨时把能计算的数据都计算好,等用户来的时候,数据已经 ready,一个简单的读取就可以拿到他要的结果。

但是,如果这些都做了,服务还是要崩,我们能怎么办?

3
终极大招:有损服务与降级

下面引用阿里的同学在 QCON 大会分享的一份 PPT 为例:

我们在产品设计和后台开发的时候,需要清楚你的系统「强依赖」和「弱依赖」是什么。


有了上面这些概念以后,就可以来做一些对应的设计:
  • 牺牲用户体验 用静态化数据代替「千人千面」的动态数据;放缓流量进入的速率,增加验证码机制;简单粗暴的,直接挂一个页面显示「XX 功能在 XX 时间内暂时关闭」

  • 牺牲功能完整性 有一些功能是「防御性」的,如果愿意冒险“裸奔”一段时间也会带来可观的资源节约;临时关闭「风控」;取消部分「条件是否满足」的判断

  • 牺牲时效性 将一些原本就是异步进行的操作,处理效率放缓,甚至暂缓一段时间。如,送积分、送券等等






每个产品的后台开发都是一个非常复杂的系统工程。服务器挂了,拿程序员祭天是一点作用都没有的。

作为一个成熟而优秀的产品经理,你要做的就是先理解后台逻辑,在做产品规划的时候就考虑到一切可能的风险。然后,就算是后台挂了,也能从上文中提到的思路与后台小哥一起来思考解决问题。

做后台很苦,请善待搬砖民工 ?



以上文字来自于我们团队最优秀的东半球技术经理:张师傅
已婚勿撩


往期推荐



创业花掉500万到底要多久?

为何更好的产品不一定成功?小鹏P7与特斯拉model 3 你选谁?

如何让后台开发小哥跪着评审需求?

学会这招,你也能成为产品总监


喜欢丽莎阿姨
的话就
点个在看呗
丽莎D的产品手记
分享到朋友圈
收藏
收藏
评分

综合评分:

我的评分
Xinstall 15天会员特权
Xinstall是专业的数据分析服务商,帮企业追踪渠道安装来源、裂变拉新统计、广告流量指导等,广泛应用于广告效果统计、APP地推与CPS/CPA归属统计等方面。
20羽毛
立即兑换
一书一课30天会员体验卡
领30天VIP会员,110+门职场大课,250+本精读好书免费学!助你提升职场力!
20羽毛
立即兑换
顺丰同城急送全国通用20元优惠券
顺丰同城急送是顺丰推出的平均1小时送全城的即时快送服务,专业安全,准时送达!
30羽毛
立即兑换
丽莎D的产品手记
丽莎D的产品手记
发表文章48
确认要消耗 羽毛购买
后台服务怎么说挂就挂了?让程序员祭天之前,如何刀下留人?吗?
考虑一下
很遗憾,羽毛不足
我知道了

我们致力于提供一个高质量内容的交流平台。为落实国家互联网信息办公室“依法管网、依法办网、依法上网”的要求,为完善跟帖评论自律管理,为了保护用户创造的内容、维护开放、真实、专业的平台氛围,我们团队将依据本公约中的条款对注册用户和发布在本平台的内容进行管理。平台鼓励用户创作、发布优质内容,同时也将采取必要措施管理违法、侵权或有其他不良影响的网络信息。


一、根据《网络信息内容生态治理规定》《中华人民共和国未成年人保护法》等法律法规,对以下违法、不良信息或存在危害的行为进行处理。
1. 违反法律法规的信息,主要表现为:
    1)反对宪法所确定的基本原则;
    2)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一,损害国家荣誉和利益;
    3)侮辱、滥用英烈形象,歪曲、丑化、亵渎、否定英雄烈士事迹和精神,以侮辱、诽谤或者其他方式侵害英雄烈士的姓名、肖像、名誉、荣誉;
    4)宣扬恐怖主义、极端主义或者煽动实施恐怖活动、极端主义活动;
    5)煽动民族仇恨、民族歧视,破坏民族团结;
    6)破坏国家宗教政策,宣扬邪教和封建迷信;
    7)散布谣言,扰乱社会秩序,破坏社会稳定;
    8)宣扬淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪;
    9)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序;
    10)侮辱或者诽谤他人,侵害他人名誉、隐私和其他合法权益;
    11)通过网络以文字、图片、音视频等形式,对未成年人实施侮辱、诽谤、威胁或者恶意损害未成年人形象进行网络欺凌的;
    12)危害未成年人身心健康的;
    13)含有法律、行政法规禁止的其他内容;


2. 不友善:不尊重用户及其所贡献内容的信息或行为。主要表现为:
    1)轻蔑:贬低、轻视他人及其劳动成果;
    2)诽谤:捏造、散布虚假事实,损害他人名誉;
    3)嘲讽:以比喻、夸张、侮辱性的手法对他人或其行为进行揭露或描述,以此来激怒他人;
    4)挑衅:以不友好的方式激怒他人,意图使对方对自己的言论作出回应,蓄意制造事端;
    5)羞辱:贬低他人的能力、行为、生理或身份特征,让对方难堪;
    6)谩骂:以不文明的语言对他人进行负面评价;
    7)歧视:煽动人群歧视、地域歧视等,针对他人的民族、种族、宗教、性取向、性别、年龄、地域、生理特征等身份或者归类的攻击;
    8)威胁:许诺以不良的后果来迫使他人服从自己的意志;


3. 发布垃圾广告信息:以推广曝光为目的,发布影响用户体验、扰乱本网站秩序的内容,或进行相关行为。主要表现为:
    1)多次发布包含售卖产品、提供服务、宣传推广内容的垃圾广告。包括但不限于以下几种形式:
    2)单个帐号多次发布包含垃圾广告的内容;
    3)多个广告帐号互相配合发布、传播包含垃圾广告的内容;
    4)多次发布包含欺骗性外链的内容,如未注明的淘宝客链接、跳转网站等,诱骗用户点击链接
    5)发布大量包含推广链接、产品、品牌等内容获取搜索引擎中的不正当曝光;
    6)购买或出售帐号之间虚假地互动,发布干扰网站秩序的推广内容及相关交易。
    7)发布包含欺骗性的恶意营销内容,如通过伪造经历、冒充他人等方式进行恶意营销;
    8)使用特殊符号、图片等方式规避垃圾广告内容审核的广告内容。


4. 色情低俗信息,主要表现为:
    1)包含自己或他人性经验的细节描述或露骨的感受描述;
    2)涉及色情段子、两性笑话的低俗内容;
    3)配图、头图中包含庸俗或挑逗性图片的内容;
    4)带有性暗示、性挑逗等易使人产生性联想;
    5)展现血腥、惊悚、残忍等致人身心不适;
    6)炒作绯闻、丑闻、劣迹等;
    7)宣扬低俗、庸俗、媚俗内容。


5. 不实信息,主要表现为:
    1)可能存在事实性错误或者造谣等内容;
    2)存在事实夸大、伪造虚假经历等误导他人的内容;
    3)伪造身份、冒充他人,通过头像、用户名等个人信息暗示自己具有特定身份,或与特定机构或个人存在关联。


6. 传播封建迷信,主要表现为:
    1)找人算命、测字、占卜、解梦、化解厄运、使用迷信方式治病;
    2)求推荐算命看相大师;
    3)针对具体风水等问题进行求助或咨询;
    4)问自己或他人的八字、六爻、星盘、手相、面相、五行缺失,包括通过占卜方法问婚姻、前程、运势,东西宠物丢了能不能找回、取名改名等;


7. 文章标题党,主要表现为:
    1)以各种夸张、猎奇、不合常理的表现手法等行为来诱导用户;
    2)内容与标题之间存在严重不实或者原意扭曲;
    3)使用夸张标题,内容与标题严重不符的。


8.「饭圈」乱象行为,主要表现为:
    1)诱导未成年人应援集资、高额消费、投票打榜
    2)粉丝互撕谩骂、拉踩引战、造谣攻击、人肉搜索、侵犯隐私
    3)鼓动「饭圈」粉丝攀比炫富、奢靡享乐等行为
    4)以号召粉丝、雇用网络水军、「养号」形式刷量控评等行为
    5)通过「蹭热点」、制造话题等形式干扰舆论,影响传播秩序


9. 其他危害行为或内容,主要表现为:
    1)可能引发未成年人模仿不安全行为和违反社会公德行为、诱导未成年人不良嗜好影响未成年人身心健康的;
    2)不当评述自然灾害、重大事故等灾难的;
    3)美化、粉饰侵略战争行为的;
    4)法律、行政法规禁止,或可能对网络生态造成不良影响的其他内容。


二、违规处罚
本网站通过主动发现和接受用户举报两种方式收集违规行为信息。所有有意的降低内容质量、伤害平台氛围及欺凌未成年人或危害未成年人身心健康的行为都是不能容忍的。
当一个用户发布违规内容时,本网站将依据相关用户违规情节严重程度,对帐号进行禁言 1 天、7 天、15 天直至永久禁言或封停账号的处罚。当涉及欺凌未成年人、危害未成年人身心健康、通过作弊手段注册、使用帐号,或者滥用多个帐号发布违规内容时,本网站将加重处罚。


三、申诉
随着平台管理经验的不断丰富,本网站出于维护本网站氛围和秩序的目的,将不断完善本公约。
如果本网站用户对本网站基于本公约规定做出的处理有异议,可以通过「建议反馈」功能向本网站进行反馈。
(规则的最终解释权归属本网站所有)

我知道了
恭喜你~答对了
+5羽毛
下一次认真读哦
成功推荐给其他人
+ 10羽毛
评论成功且进入审核!审核通过后,您将获得10羽毛的奖励。分享本文章给好友阅读最高再得15羽毛~
(羽毛可至 "羽毛精选" 兑换礼品)
好友微信扫一扫
复制链接