徐烨:这20年,我与应用系统的“云化”之路
摘要:在应用架构,物联网等方面有着丰富经验的徐烨,回望过去20年的工作经历,他表示应用系统的发展,就是一个不断“云化”的过程。
目前,以数字技术为主导的新一轮科技革命加速演进,数字化的进程一直伴随着互联网的发展过程。在国家政策和市场需求双重压力下,企业上云成为数字化转型升级新的突破口,越来越多的企业选择通过上云最大限度创造价值。
在应用架构,物联网等方面有着丰富经验的徐烨,回望过去20年的工作经历,他表示应用系统的发展,就是一个不断“云化”的过程。这里说的“云化”,不只是信息化应用系统上云,而是要将应用系统技术及业务架构与云计算平台相互融合的过程,并为推动行业发展服务。他以三个有代表性的项目,讲述他与应用系统的“云化”之路。
云化之路一:可视化并行申报+实时划缴税款,江苏省地级市应用系统近10年
2001年,无锡宜兴国税局启动了电子申报项目,该项目主要是能够让纳税人通过本机软件填写和提交纳税申报表,税局接收申报数据进行自动申报,成功后自动划缴税款,并把相关结果反馈给纳税人。项目有两个技术亮点:一是可视化并行申报,二是实时划缴税款。
在我们推出可视化并行申报以前,当时在行业内已经实现的电子申报后端服务,不但都是通过定时扫描纳税数据文件来串行处理申报,而且往往高峰时段要让纳税人等上2个小时以上才有申报结果,对处理程序也没有监看状态界面,都只有日志记录。
项目中自行实现了动态数据展示组件和线程管理器组件,可视化并行申报监看界面上可以对已处理申报、成功数、待申报数和正在申报的纳税人数据情况一目了然,联想到现在,这个和现在很多的监控大屏功能有些类似;由于当时所有的申报数据都是数据文件和数据库操作为多,磁盘IO和等待数据库处理会花大量的时间,所以通过线程管理器配制合理线程数量并行处理后,申报效率有了倍数的提高,高峰期纳税人等待申报结果的时间也明显缩短。
实时划款功能是初期讨论项目时提出来的,这在当时还是比较有创新性的,要知道当时根本没有税银联网协议,合作的三家银行中行、工行和建行,打报告一直到了总行才批复下来;当时虽然我刚参加工作,但对网络协议相对较熟,自己的毕业设计也因此获得了校优秀论文,所以很有信心的承担了这个任务。这个功能最后是通过线程管理组件和同步SOCKET来实现同三家银行对接,在申报成功后,可以提供秒级划缴税款,在顺利上线后,还获得了客户的高度认可。
在接下来几年中,项目开发出的软件系统在江苏省内大部分地级市里得到了推行,并制定的税银协议。直至2011年全国TIPS系统上线后,使用新的硬件加密三方划缴体系后,才逐步被替换。
云化之路二:发票存储+多服务器均衡,成国税总局参考依据
2008年,公司启动了网票项目,项目主体功能是能够自动获取开票方领购发票信息,然后进行在线或离线开俱打印发票,数据都会自动传至税局服务端,再作票税比对及纳税分析。项目主要针对增值税普通发票,涉及纳税人广,票面种类多,仅江苏当时就有近32万户企业,每年发票用量近40亿份。项目中有两个技术亮点:一是发票存储;二是多服务器均衡。
以往对于不同模版的发票存储,通常是不同类型的票使用对应的表,然后对于发票明细,都是按主表和附表来做,这样做需要保持一致性,所以对数据库有较大的压力。项目中为了解决这个问题,存储采用了微结构的方式,把发票的一条记录分成三个区,发票主杆、明细主杆和微结构存储,如图1所示,这样大大降底了对数据库一致性的要求,而增加了一些应用服务器的处理量,而应用服务器的处理量可以扩充服务器来解决的,为此获得了相关技术发明专利,并且这一微结构特别是在应用服务器相对比较容易扩充的构架下,可以较广泛的得以应用。
图1
多应用服务器并行处理,在原来电子申报项目的中后期也有应用,但最开始是用C#的异步Socket写了一个NetEqualizer的均衡器,来提供多应用服务器的并行处理,但高峰时,稳定性不是很好;在本项目改为NGINX和F5,由于F5是硬件,每台至少20万人民币以上,只有少量客户具备,所以主推是NGINX,稳定性也经受住了考验,特别是在linux上。当时印象深刻的是早期NGINX版本,比如断点续传这样的功能也无法支持,到了1.2及以后版本才支持,为此,还专门还组织了技术攻关小组,甚至阅读和修改了部分NGINX源码来解决。之后为了进一步减少单点故障,还引入LVS.DR进行更大规模并发支持,提出了组合均衡的方案,如图2所示,并获得了相关技术发明专利。
图2
后期,项目的应用系统在2010年获得了在江苏省全省的推广,也是当时国内第一个全省推广网票的省份,为国税总局在2013年发布《网络发票管理办法》提供了依据。
云化之路三:平台应用系统拥抱云服务
2016年,徐烨组建全新团队建设一个以LED屏为主的数显终端播控云平台,并以此为基础,设计出打通行业上下游的互联网平台——iLEDCloud云平台。在这个过程中,正式首次与IAAS供应商进行合作,相对以前项目而言,在技术层面在三个方面得到提升:微服务架构、高速NIO和安全业务架构。
微服务架构就是将一个平台按需切分成很多个子服务,整个平台是基于JMS总线和三级存储建立的,对JMS服务进行了定制化,提供了子服务状态监测和自动回源。基于此项能力,平台WEB前端编缉节目时,即可对关联终端设备上的数据实时可视化,大大增强了客户体验;三级存储是指本地服务器内存、局域网内高速缓存服务和数据库服务三级,针对的是任务执行效率和服务宕机的平衡,通常一次任务绑定到一个服务执行,大部分正常情况下,可以以开支最小的方式完成任务;同时在单个服务宕机时,其它服务器上的同类服务能够依据设计成本来重建这个任务并执行。
图3
如图3所示,在这个架构下,从原来2017年的单个服务,到现在已经有20个以上的服务,并随着平台发展还会不断的拆分或增加。微服务是面向云计算平台的必然,原来云计算平台就是允许对资源的伸缩适配,而一个平台中各个模块所需资源是不同的,这时通过这种分离成微服务,可以对每个微服务提供不同的适配资源,这是适配资源的进一步提升。
高速NIO是指高效的异步网络连接及数据处理。由于需要对每个数显终端进行实时控制,同时显示内容通常是视频或图片,数据量又较大,所以高效的连接管理优其重要。在本项目中全面使用NIO,包括终端连接协议和文件数据传送的FTP,通过设置以下二个要点:一是在数据处理线程代码中禁用延时代码;二是数据处理主要是协议解析和组装,把其它耗时业务代码尽量分离或设计成异步处理。经过优化代码,在单核情况下,都能较轻松支持几千个终端。同时重写了FTP文件传输服务的绝大部分代码,使其不但支持一次一密和虚拟目录的安全要求,还能满足在单线程下高效传输和速度控制。
作为互联网信息发布性平台,安全性至关重要,项目也是本地网安重点检查单位。项目首次在行业内提出了事前、事中和事后的全域安全架构,并把用户操作风险系数贯穿与平台,形成了较完整安全业务架构。对连接协议也实现了类似入侵检测(IDS)功能的防火墙,对非法协议连接可以在前置环节就可隔断其来源IP地址。平台在今年国家等保三级复评中获得了86分以上的较高评测分。至今,平台已有近3000个注册用户,上线屏量也已超1万块。
牵手华为云,携手迈向“云化”新征程
2019年,通过地方政府牵线与华为云进行合作,华为云对软件研发类企业的支持是比较全面的,有较丰富的研发测试工具,是目前研发测试领域“云化”的先行者。基于华为云ESC主机,我们搭建了iLEDCloud互联网测试环境,通过白名单机制,使我们上海终端设备研发云平台测试、昆山终端设备生产云平台测试和苏州云平台研发测试,可以在一个平台上实现,不但节省了资源,也提升了跨区域测试的工作效率。
企业上云,是企业顺应数字经济发展潮流,加快数字化、网络化、智能化转型,提高创新能力、业务实力和发展水平的重要路径。在徐烨的三个项目经历中不难发现,从单进程多线程到多服务器,再到微服务,从同步处理至多层次异步处理,从自建服务到集成第三方服务,从机房到IAAS供应商,都能体现“云化”之路上的成长。如果将同类功能的云集成称为混合云,将行业上下游的云集成称为生态云,那么混合云和生态云就是下一步 “云化”发展的目标,徐烨也希望能与华为云等高附加值的合作伙伴一起在“云化”之路上继续携手前行。