几乎所有的人都有跟银行系统打交道的经历,以前我们存钱、取钱都需要去ATM机排队,现在手机银行这样更方便的银行交互做得越来越好了。随着4G、5G网络时代的发展,用户对体验感的要求越来越高。以前在交互的过程中出现很慢的情况,业务人员可能会解释为“网络服务慢”,把这个问题推给了网络这种无形的东西,用户也会妥协“只能等”。
现在,随着4G时代的发展、5G时代的到来,带宽越来越大,这些推辞不再有效。加之互联网金融行业的发展,互联网+时代到来,将使各银行互联网电子化普及。相对应的业务平台、产品营销推广和运营管理需要做出调整来满足市场需求。打造专业协同、上下联动、线上线下一体化的新型营销方式,需要在业务架构和技术架构上都要随之改变。同时银监会监管规定,涉及客户服务的系统停机超过30分钟需上报银监会。
所以现在银行系统越来越完善,用户的体验越来越好,带动其他行业也一起越来越好了,其中就有电商平台。现在很多电商平台的竞争不仅是在于拼价格,还在于用户的体验。通过下图,我们可以看到某电商历年双十一的交易情况,一分钟内光是交易额就这么大,可想而知并发量有多大。并发量这么大的情况下,只有通过多台服务器集群的部署,才能支撑住全国这么多用户的同时并发。再就是,在抢购购买的过程中,下单的用户数据不能丢失。国家会对资金控管进行控制,也有相应的资金控管要求,不能出相关的故障。
尤其是2017年,仅仅用了11秒就达到了1682亿,可想而知tps有多高。这个时候就需要我们做好系统测试。在做测试的过程中,总会出现故障的情况下,就出现了各种优化手段去解决这些问题。这也是我们从传统的单体架构,到混合型的微服务架构的出现的原因。微服务架构的出现一是为了避免性能问题,再就是快速,可以快速迭代开发,兼容各种语言,再就是熔断机制。非功能的要求也被抬到了一个新的高度。
往往出现非功能问题的时候,最深恶痛绝的首先是用户。比如说在你买股票的过程中,刚好是要涨停跌停的时候,想要买或者要卖的时候,系统出现问题,网络卡顿、或者宕机,用户这时候是非常痛苦的。
再比如下面这几个新闻,银行、证券交易系统、医院...都曾发生过类似的事情。出现这样的问题,最受伤害的是用户,最先发现问题的也是用户和运维人员。当出现问题,应该去从哪些方面进行分析呢?往往都会先从数据库开始、web服务器、操作系统(是不是操作系统被人攻击了?)、存储设备(是不是存储空间满了?)、应用服务器(cpu使用太高?内存泄露溢出?)这些问题的产生一方面源于测试不到位,没有把这些内容测试细化。再就是非功能测试的充分性和必要性没做好。