后端
·2023-10-26#技术# 最近语雀不是出事了么?有同学看了关于语雀事故报告的文章,发现文中提到 "可监控,可灰度,可回滚",但是对于这 9 个字不理解,我给大家解读一下。
事故报告:https://mp.weixin.qq.com/s/WFLLU8R4bmiqv6OGa-QMcw
首先,这几点都是企业正式线上项目需要重点关注的能力,所以大家自学时一般是很少能接触到的(但如果你知道,前途不可限量 [坏笑])。
1、可监控:能够实时地收集和展示系统运行时的数据和指标,以便开发和运维同学可以及时发现系统问题、更快进行故障排查和性能调优。需要监控的信息可以包括系统性能指标(内存、CPU、带宽等)、业务日志、错误信息等。
还有一个与之相关的术语 “可观测性”,就是指一个系统状态对开发维护者的透明程度。举个例子,我不需要每次打开服务器看日志或者用什么 jmap 命令分析 gc,而是直接通过一个面板整体查看系统的状态,甚至是自动提示问题。AI Ops 智能运维也是现在很流行的一种技术,用 AI 帮忙运维诊断系统,大大提高开发运维效率。
2、可灰度:指灰度发布能力(又叫金丝雀发布)。将系统的新版本全量部署给所有用户之前,先仅对一小部分用户进行试用。这样可以通过收集这部分用户的反馈和监控数据就能评估新版本的稳定性,并及时进行调整和修复,从而减少对全体用户的潜在风险。
灰度发布又有很多策略。比如经典的按流量阶段性发布,先随机给 5% 的用户使用新版本,验证没问题后,再给 20%、50%、75% 的用户使用新版本逐渐放量,直到覆盖 100% 的用户。
还有很多策略,列举几个常见的:
1)按照用户的业务属性灰度,比如 VIP 用户先用、老用户先用。
2)按人群灰度,比如特定地域、特定年龄、特定偏好、特定客户端的用户。
3)按渠道灰度,比如通过某平台注册的用户先体验等等。
灰度做的好,可以避免很多线上问题,及时控制影响。因此很多知名产品发布时都会采用灰度或者内测的策略,这也就是为什么有些同学能第一时间体验到微信新功能,有些同学却没有。
3、可回滚:就像 Git 版本控制系统回滚写错的代码一样,系统的版本也是可以回滚的。
线上系统出现问题时,可以将已经部署的新版本回退到之前的稳定版本。这样做可以快速恢复系统,减少对用户的影响,并给开发同学足够的时间来排查和修复问题。而不是线上一直故障,每分钟都是损失。
咱也不是阿里内部的同学,说实话我不相信阿里内部没有统一的监控平台、灰度发布和部署管理平台。估计是部门自治或者人员不规范的操作导致的吧。
总之,这些特性都是为了在软件开发和发布过程中提高系统的稳定性、可靠性和可维护性。想要实践的话也很简单,直接用微信云托管平台就好了。
65
0
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
