您的位置:首页 > 运维架构 > 网站架构

随想 -- SaaS项目中问题的发现和解决

2016-05-17 14:13 417 查看
在线问题根据出现时序的分类

做在线服务,有一个重要的指标就是有效时间或者说高可用性(high availability)。而保证这个指标通常的方法中,除了增加一些备份的候选服务(在主服务发生错误后,取代主服务的角色),就是最好能够做到:

在用户出现问题之前,发现问题,并且解决问题

在用户问题出现后,单用户并未发现出问题前,发现问题,并且解决问题

在用户发现问题后,第一时间找到问题原因,并且解决问题

对应如上的三种场景,以下是结合本人的工作经验,总结的三种解决方案:

Proacitive Probe: 主动探测,针对第一场景,用自动化的程序模拟用户的常用操作行为,来检测服务的反馈,如果发现问题,第一时间报警,通知在线服务工程师。这个方案主要针对每次新版本上线时所引入的bug,可以在用户出现问题前第一时间发现

Passive Monitor: 被动侦听,针对第二场景,每个服务端驻留对应的侦听程序,用于侦听用户的日志和可能的服务反馈,根据设立的规则,发现异常后,第一时间通知在线服务工程师,对于某些意料范围内的异常,还可以采取一定的修复措施,例如重启服务等。这个解决方案,可以在用户发现问题前处理问题,在用户体验感觉上,提升了有效时间。

Log Parser: 强大的日志查询,分析工具,帮助在线工程师第一时间定位用户反馈的错误。而且工具中可以集成以前类似问题的相关信息和解决方案,可以是工具中随着时间的推移,例如大量的已有案例,从而带有了一定的技能,为在线工程师提供一些备选解决方案或建议。



在线问题的按难易程度的分类:

SaaS项目的特点是:

服务端拓扑结构复杂,包含太多的机器和服务

服务端数据庞大且复杂

迭代周期快

以上三点,决定了在测试环境中,基本不可能模拟线上的拓扑结构和庞大复杂的用户数据,这也就意味着很多bug,在测试环境下很难或不可能被发现。而且迭代周期的加快,留给测试人员的时间也很少。所以,很多SaaS项目都引入了“线上测试(test in production)”的概念。而这个概念下,日志的作用就非常重要和突出了。以下是按照bug出现的场景不同,所带来的难以程度的不同,以及日志在其中起到作用,越难解决的问题,越重要。



总结:

对于SaaS项目的质量监控,可以通过如下的一个闭环,来对项目的质量进行把控,每一部分所占有的比例,需要根据每个项目的具体情况而定。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息