目的
由于客户端系统会发生一些预料之外的问题,因此必须有一个自检系统。
这些问题包括了:1. 硬件问题(网络、磁盘) ;2. 配置问题; 3. 程序的bug; 4. 人员操作错误
用例环境
1. 系统安装的自检
一般嵌入到了安装程序。仅仅检查磁盘空间、网络环境等。
2. 系统启动的自检
额外的程序模拟系统启动进行检查,不是系统启动之后去检查。
3. 系统运行过程中检查
运行时,系统内部调用healthcheck,收集运行时的日志,然后归类打包。
4. 系统宕机检查
系统宕机后,立刻调用应急模块,自动进行检查,必须使用图形界面,即发送宕机报告,也告诉客户可能的情况和处理方式。
自检的目的
保证当前系统能够完成所有预期的功能。
自检项目
1. 网络链接
2. 数据库链接
3. 依赖配置项目检查
4. 本机磁盘检查
5. 日志检查
6. 加载程序检查 !!!!难点,如果做扩展,是否使用插件、还是IoC反射加载检查项目?
7. 自定义检查 !!!同上
设计思路
自检系统,使用树形结构,描绘自检项目之间的依赖。当父类自检失败,则子类不继续。
SETUP
启动检查
STARTUP
包括启动能够运行的基本要求、例如网络链接、数据库、配置、磁盘;目的是系统能够顺利启动,并运行所有功能的前提要求项目。
RUNTIME
运行时检查,包括日志、自定义。目的是查看系统是否按照预期的功能运行。
DOWNTIME
系统宕机检查,包含启动检查、运行时检查。
包括2个运行库。
1. 核心模块,不依赖任何dll(除了.net)。主要尝试运行自检的基本模块。如果运行失败,则同时用户系统彻底崩溃。必须立刻通知管理员。
这个模块设计可能要添加其他dll的代码,保证不依赖其他模块,同时又能完成制定的要求,包括检查磁盘、文件依赖、dll依赖、网络检查。
2. 基本模块,依赖基本框架dll。进行全方位的检查。同时发送详细的报表到开发部。
开发时间:20100205
结束时间:20100208