论文部分内容阅读
现在的世界是一个充满网络的世界。一个成功的网络应用除了实用的功能之外,最重要的还有服务稳定性和可靠性。对于开发者来说,如何能最用短的时间开发出稳定的网络服务则也是开发者一直追求的目标。但是由于网络世界里的复杂性,还有各种客观的不可控因素的存在,即使开发者的产品代码写的多么完美,经受住了多么大的压力测试,一旦部署在千变万化的网络环境中,就无法保证不出现各种各样的问题。因此,要真正的保证网络产品的高稳定性,在稳定的产品之余,还必须配以稳定的监控和控制系统来维持的它的不间断稳定运行。本论文基于实践,基于下一代编程语言Erlang提供一种方便开发和维护的,用于保障网络服务的监控系统。本论文中针对的特定网络服务是联想网盘。论文完成的主要工作和取得的主要成果如下:1、用Erlang开发了用于实时监控文件系统的程序。为了保障存储数据的完整性,网盘的后台存储采取了主从存储系统加以备份的策略。实时监控文件系统模块不断的监测各个存储系统的文件系统可用状态,在主存储出现问题时,能提供多种方式及时切换至备份系统,保证存储服务不受影响。并通过附加模块将特定信息由短信发送至管理员。2、开发了用于监控网络产品的模块。不断的通过模拟用户的所有正常应用请求来测试产品的每个环节是否工作正常,并采取了一系列措施保证了监控程序本身的稳定性和工作连续性。同样,除了记录详细的监控日志外,还通过短信报告至相应的管理员。3、开发了用于报错及控制的模块。基于开源的Kannel短信网关,配合自有的Erlang功能模块实现了监控状态的报告和管理员控制功能,将两个监控模块收集来的内容通过短信猫报告至特定管理员的手机。管理员也可以通过手机来控制各项简单的功能。4、充分利用Erlang的语言特点和架构优势,实现了分布部署,热切换等功能,以及其他语言模块的嵌入。