随想 -- SaaS项目中问题的发现和解决
2016-05-17 14:13
417 查看
在线问题根据出现时序的分类
做在线服务,有一个重要的指标就是有效时间或者说高可用性(high availability)。而保证这个指标通常的方法中,除了增加一些备份的候选服务(在主服务发生错误后,取代主服务的角色),就是最好能够做到:
在用户出现问题之前,发现问题,并且解决问题
在用户问题出现后,单用户并未发现出问题前,发现问题,并且解决问题
在用户发现问题后,第一时间找到问题原因,并且解决问题
对应如上的三种场景,以下是结合本人的工作经验,总结的三种解决方案:
Proacitive Probe: 主动探测,针对第一场景,用自动化的程序模拟用户的常用操作行为,来检测服务的反馈,如果发现问题,第一时间报警,通知在线服务工程师。这个方案主要针对每次新版本上线时所引入的bug,可以在用户出现问题前第一时间发现
Passive Monitor: 被动侦听,针对第二场景,每个服务端驻留对应的侦听程序,用于侦听用户的日志和可能的服务反馈,根据设立的规则,发现异常后,第一时间通知在线服务工程师,对于某些意料范围内的异常,还可以采取一定的修复措施,例如重启服务等。这个解决方案,可以在用户发现问题前处理问题,在用户体验感觉上,提升了有效时间。
Log Parser: 强大的日志查询,分析工具,帮助在线工程师第一时间定位用户反馈的错误。而且工具中可以集成以前类似问题的相关信息和解决方案,可以是工具中随着时间的推移,例如大量的已有案例,从而带有了一定的技能,为在线工程师提供一些备选解决方案或建议。
在线问题的按难易程度的分类:
SaaS项目的特点是:
服务端拓扑结构复杂,包含太多的机器和服务
服务端数据庞大且复杂
迭代周期快
以上三点,决定了在测试环境中,基本不可能模拟线上的拓扑结构和庞大复杂的用户数据,这也就意味着很多bug,在测试环境下很难或不可能被发现。而且迭代周期的加快,留给测试人员的时间也很少。所以,很多SaaS项目都引入了“线上测试(test in production)”的概念。而这个概念下,日志的作用就非常重要和突出了。以下是按照bug出现的场景不同,所带来的难以程度的不同,以及日志在其中起到作用,越难解决的问题,越重要。
总结:
对于SaaS项目的质量监控,可以通过如下的一个闭环,来对项目的质量进行把控,每一部分所占有的比例,需要根据每个项目的具体情况而定。
做在线服务,有一个重要的指标就是有效时间或者说高可用性(high availability)。而保证这个指标通常的方法中,除了增加一些备份的候选服务(在主服务发生错误后,取代主服务的角色),就是最好能够做到:
在用户出现问题之前,发现问题,并且解决问题
在用户问题出现后,单用户并未发现出问题前,发现问题,并且解决问题
在用户发现问题后,第一时间找到问题原因,并且解决问题
对应如上的三种场景,以下是结合本人的工作经验,总结的三种解决方案:
Proacitive Probe: 主动探测,针对第一场景,用自动化的程序模拟用户的常用操作行为,来检测服务的反馈,如果发现问题,第一时间报警,通知在线服务工程师。这个方案主要针对每次新版本上线时所引入的bug,可以在用户出现问题前第一时间发现
Passive Monitor: 被动侦听,针对第二场景,每个服务端驻留对应的侦听程序,用于侦听用户的日志和可能的服务反馈,根据设立的规则,发现异常后,第一时间通知在线服务工程师,对于某些意料范围内的异常,还可以采取一定的修复措施,例如重启服务等。这个解决方案,可以在用户发现问题前处理问题,在用户体验感觉上,提升了有效时间。
Log Parser: 强大的日志查询,分析工具,帮助在线工程师第一时间定位用户反馈的错误。而且工具中可以集成以前类似问题的相关信息和解决方案,可以是工具中随着时间的推移,例如大量的已有案例,从而带有了一定的技能,为在线工程师提供一些备选解决方案或建议。
在线问题的按难易程度的分类:
SaaS项目的特点是:
服务端拓扑结构复杂,包含太多的机器和服务
服务端数据庞大且复杂
迭代周期快
以上三点,决定了在测试环境中,基本不可能模拟线上的拓扑结构和庞大复杂的用户数据,这也就意味着很多bug,在测试环境下很难或不可能被发现。而且迭代周期的加快,留给测试人员的时间也很少。所以,很多SaaS项目都引入了“线上测试(test in production)”的概念。而这个概念下,日志的作用就非常重要和突出了。以下是按照bug出现的场景不同,所带来的难以程度的不同,以及日志在其中起到作用,越难解决的问题,越重要。
总结:
对于SaaS项目的质量监控,可以通过如下的一个闭环,来对项目的质量进行把控,每一部分所占有的比例,需要根据每个项目的具体情况而定。
相关文章推荐
- Android之使用Http协议实现文件上传功能
- Patrol 7 架构下?的处理方法
- mysql集群之MMM简单搭建
- 架构纵横谈之二 ---- 架构的模式与要点
- 通晓网络测试常用命令
- 中病毒后常用的解决方法病毒终极解决方案
- BS项目中的CSS架构_仅加载自己需要的CSS
- QQ尾巴 InfoMs.Ime 解决方案
- 关于三种主流WEB架构的思考
- IE对CSS样式表的限制分析与解决方案
- 开源MySQL高效数据仓库解决方案:Infobright详细介绍
- Android操作系统的架构设计分析
- Nodejs学习笔记之测试驱动
- w3c技术架构介绍
- linux学习笔记 linux目录架构
- 惊现支撑1亿pv/天的超级数据库解决方案
- 关于bluehost空间上wordpress后台变为英文的解决方案
- select * from sp_who的解决方案
- 可以测试javascript运行效果的代码
- 使用php测试硬盘写入速度示例