自 2007 年来到北京,一直在金融 IT 监控领域工作,在此期间我陆续开发了十几款软件,其中网络集群版 SQLite 算是比较成功的一个。
SQLite 是一款开源嵌入式数据库软件,轻量、性能优异、支持内存数据库。网络集群版 SQLite 是在标准版基础之上扩展了一些功能,它是一个分布式内存数据库,也可作为一个分布式内存计算框架来使用。
- 标准版 SQLite 内存型数据库,只能由创建数据库的进程使用,别的进程无法访问。网络集群版 SQLite 创建内存数据库,并提供网络服务,其它进程可以通过网络使用 SQL 并行访问。
- 采用分布式架构,使用多节点分片存储数据,具有海量存储、高并发、高吞吐量的性能优势。
- 引入 Lua 脚本扩展内存数据处理能力,既可以在需要的时候使用 SQL 调用 Lua 脚本,也可以通过 Job 自动定时调用。
大学毕业后,一直从事软件开发工作,先是在老家待了几年,后来去了省会城市,购房落户,当时想这辈子都不会离开这座城市了,可命运总是被偶然改变,2007 年我来到了北京。
在北京,参与的第一个项目是华夏银行全行网管一期。项目中网络设备监控,使用的是 Micromuse Netcool 软件,这款软件在监控领域故障管理方面为行业第一,后来被 IBM 收购并入了 Tivoli 产品线,中农工建交五大银行的网络监控系统都是用它来完成。项目的主机系统监控,准备自主开发软件来完成,领导把这个任务交给了我。用了近一年时间,我完成了主机监控系统开发,其中监控管理调度 Server 和 监控 Agent 是 C 语言写的,配置管理界面是用 PHP 写的,监控内容涵盖 CPU、内存、磁盘、进程、网络端口、日志文件、数据库等常用指标。当时对自己的技术信心满满,从未觉得有风险,现在偶尔想起,不由得为年少轻狂而后怕,那是银行的核心业务系统,出点问题可就是生产事故。后来项目实施,每个分行监控了 10 台业务主机,全行共监控了 300 多台,性能稳定,效果良好,我也因此展露头角。
网管一期项目完成后,我仔细研究了 Micromuse Netcool 软件,不由深深为其设计所叹服,暗下决心我也要开发一套这样的软件。接下来的日子,我先后完成了 Syslog、Trap、SNMP、ICMP 采集探针,Gateway,网络版 SQLite 以及 JDBC 驱动的开发,其中网络版 SQLite 就是用来代替 Netcool 最核心软件 OMNIBus Server 的。于是我们迎来了华夏银行全行网管二期项目,变单层架构为采集、汇聚、呈现三层架构,在全国各分行都布署一套我开发的软件来采集处理数据,然后通过 Gateway 同步到总行 OMNIBus Server 集中呈现。后来,项目很是成功,同事也送了我一个绰号“山寨之王”。
接下来几年,我们进入金融交易监控领域,开始了华夏银行一体化运维管理平台项目,使用我的采集探针、网络版 SQLite 以及用 Java 和 Flex 写的 Dashboard 大屏展示系统,项目做的顺风顺水。后来项目渐渐多了起来,国家开发银行、中信银行、山东省农村信用社联合社、新华保险、中体彩科技等等,我的程序可谓遍地开花。期间有个小插曲,几个同事离职后在新单位去中国银行做项目,结果我的程序在中国银行网管系统中也得到了深度应用。那些年,我写写程序,研究研究新技术,过得宁静而惬意。
2016 年,面对海量数据和日益增加的业务需求,网络版 SQLite 遇到了性能瓶颈。于是我开始了集群化改造,半年后网络集群版上线。在生产环境中,我们布署了 40 个节点的集群,实际性能达到了 17 万笔/秒的处理速度,其实性能不止于此,只是受环境所限未能验证。
目前,金融 IT 监控行业处于下行阶段,或许我要离开了,写此文,以留念。