有故障,毋宁死—谈系统故障及软件质量

转载 2012年03月26日 15:26:26

有故障,毋宁死

—谈系统故障及软件质量

如果你是一个7×24小时在线服务的整体(或模块)的技术或系统负责人,你的大部分生活会如游走钢丝。

程序会出bug、资源会出故障、发布会操作错误、测试会有疏漏、安全会出漏洞、网络会有波动、服务器会突然坏掉。当产品的需求日益增多,判随工程师团队会日益增大,一个软件项目或功能从开发到上线的完成,都不可能由一人或者几个核心工程师去做,需要由不同背景、不同能力及做事风格的的开发、测试、工程师配合完成。当任一环节问题(包括有不少并非你直接可控范围之内的问题)未及时发现并带到线上之后,最终的责任会落在你的肩上。每当问题一出,你会感受到各方面的压力,有技术的缺陷、工作的失职、流程及规范执行方面的欠缺的问题;同时也会来自组织内外对你能力及人品等方面的质疑的声音。当发生问题后,你可能会独处一隅,沉浸在未能把事情做好的懊悔中。

尽管平时付出了很多辛勤与努力,在业界普遍处于KPI焦虑的环境中,技术作为底层支撑部门,出现的各种问题通常是显而易见的,不足的问题通常会被放大。

因此,你经常面临的艰难的选择是,quality, or death.

传统工作生产中,有标准化的流程及规范来提高质量、降低故障。比如六西格玛(Six Sigma)可以降低产品瑕疵率。他们有成熟的规范与制度,有熟悉制度执行的专业人员,有提供咨询服务且具有丰富经验执行的咨询公司,企业员工及业务负责人只需要按步就班,就可以把问题做得相对到位。但在互联网在线服务这种不规范的软件系统中,有没有类似的标准化流程来指导生产呢?大部分团队需要从头到尾摸索一遍,在交足学费后才能得到一套并不完善的流程及制度?

发布前流程

设计及架构,是否在开发的特性进行设计上的tradeoff?
风险及依赖,开发计划中充分考虑风险及项目依赖因素?
代码是否经过足够的review?
上线计划及风险因素是否考虑详尽?比如是否需要灰度发布?上线后检查及测试措施是否到位?是否有回滚方案,回滚是否会产生脏数据?

当故障发生时

是否有充足渠道及时发现问题?以免小问题变成大问题?
收到问题后是否有合适方式(如日志及工具)快速定位并确认问题?有时候一些用户反馈的些问题并不好测试及重现。

处理问题

是否有现成的问题处理预案?
对于新功能是否有回滚处理方法,回滚后是否存在脏数据需要修复?

总结问题

问题的根源是什么?在技术上、流程上、风险防范上各有什么可以马上执行的行动计划?

非技术因素

在很多企业中,容易把软件质量上发生的各种问题归结到单一的技术因素。但是,如果没有非技术体系的支持,一个团队不可能做到完善的高质量。

研发流程及质量改进在你企业规划中的权重是怎样?年度规划中除了业务目标、竞争环境、市场份额、产品策略之外,研发体系改进是否有一席之地?

在功能需求及产品设计阶段,是否充分考虑了技术风险及人力资源因素?是否会突然启动当前团队并不能支撑的项目?

在开发阶段,开发计划是否符合软件开发规律?开发计划是根据项目压力制定,还是从定好的交付日期来倒推开发时间表?

安全及优化,是否有专门的人力及团队?开发工程师需要面临日常的开发任务,突然被用户发现之前开发的模块存在安全问题,修复完之后发现又带出了另外一个bug?

国内大部分产品面临市场及竞争对手的压力非常大,在相对恶劣的环境下,研发技术建设大多只考虑短期收益。如果期望研发体系做到零故障或者可控的故障(比如six sigma中的99.99966%),需要长时间的体系建设与积累,包括整个企业的工作流程,同时也需要在技术基础研发上投入更多的精力。

数据库系统中常见的四种故障及其解决方法

数据库系统中常见的四种故障主要有事务内部的故障、系统故障、介质故障以及计算机病毒故障,对应于每种故障都有不同的解决方法。事务故障表明事务没有提交或撤销就结束了,因此数据库可能处于不准确的状态。   ...
  • qq_29134495
  • qq_29134495
  • 2016年06月20日 00:00
  • 426

IT系统故障引起的一个事故的思考

IT系统故障
  • weizhiai12
  • weizhiai12
  • 2014年05月02日 13:29
  • 1421

系统故障及软件质量

如果你是一个7×24小时在线服务的整体(或模块)的技术或系统负责人,你的大部分生活会如游走钢丝。 程序会出bug、资源会出故障、发布会操作错误、测试会有疏漏、安全会出漏洞、网络会有波动、服务器会...
  • kobejayandy
  • kobejayandy
  • 2014年07月13日 22:56
  • 649

Suse 11 SP3 ssh无法登录故障排除

转载自:http://www.wo81.com/tec/os/suse/2014-04-16/116.html 故障描述:换机房后,配置ip启动成功后,7台服务器中只有一台,用putty 使用 ...
  • m0_38016951
  • m0_38016951
  • 2018年01月16日 10:42
  • 60

运维经验分享:故障处理方法总结

从事运维一年半,遇到过各式各样的问题,数据丢失,网站挂马,误删数据库文件,黑客攻击等各类问题,今天想简单整理一下,分享给各位小伙伴。 一、线上操作规范 1.测试使用 当初学习...
  • nuli888
  • nuli888
  • 2016年08月02日 11:44
  • 494

软件质量属性包括哪些

软件质量属性划分为运行期质量属性和开发期质量属性两大类。开发期质量属性其实包含了和软件开发,维护和移植这三类活动相关的所有质量属性,这些是开发人员,开发管理人员和维护人员都非常关心 的,对最终用户而言...
  • zhongguoren666
  • zhongguoren666
  • 2011年08月18日 09:34
  • 7874

软件质量的三个层次

1.符合需求规格:符合开发者明确定义的目标,即产品是不是在做让它做的事情。目标是开发者定义的,并且是可以验证的。 2.符合用户显式需求:符合用户所明确说明的目标。目标是客户所定义的,符合目标即判断我...
  • ShanShanlaichiji
  • ShanShanlaichiji
  • 2016年06月28日 12:11
  • 192

oracle rac 2个节点故障 (sun os)

今天同事在巡检过程中,发现了一个致命的问题,双机故障,我们所谓的rac就是保证至少1个节点可用, 结果2个节点都down了, 如何给客户交代? oracle系统如此之贵,结果中断了业务,这个问题有点...
  • shushugood
  • shushugood
  • 2016年08月31日 12:49
  • 688

软件质量有何需求?

 软件的应用已经遍及社会生活的方方面面,大到宇宙飞船、飞机、导弹系统等,小到电视机、手机、MP3播放机等,软件已经形成一个很大的产业,慢慢地成为比较成熟的行业,虽然它还不同于传统的行业。因此,我们对软...
  • KerryZhu
  • KerryZhu
  • 2006年06月08日 19:50
  • 5171

如何快速解决IT系统中的疑难故障问题

摘要:不管是供应商还是用户,最棘手的事情莫过于系统故障的发生,这时,所有的压力都在IT人员身上,领导的关注、项目的工期、甚至能否顺利回款,都要看这些故障能否及时快速的解决。本文根据笔者多年的工作体会,...
  • wangchinaking
  • wangchinaking
  • 2005年03月04日 13:23
  • 1772
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:有故障,毋宁死—谈系统故障及软件质量
举报原因:
原因补充:

(最多只允许输入30个字)