美文网首页
思想篇,补完(4)

思想篇,补完(4)

作者: KivalYu | 来源:发表于2018-12-21 00:09 被阅读0次

            “补”,是补充、修补的意思。“完”,是完整、完全的意思。“补完”,就是针对系统架构设计中,所出现的BUG、缺陷、漏洞而采取不同的修补措施。要么加以修复,使其恢复正常的逻辑、正确的状态;要么根据后期的业务功能和版本规划,进行项目的功能扩展或重构。

            在系统开发中,一定要重视并详细记录遇到的BUG、缺陷和漏洞,仔细分析其中的原因和问题,积极及时的做出对应的修复改进方案。本着消除一切BUG、缺陷和漏洞的原则,积极、严肃、认真、一丝不苟地对待所有的BUG、缺陷和漏洞!

            系统架构设计开发中,存在潜在未知的BUG、缺陷、漏洞都是不可避免的,业务系统在发展运行的过程中,有的时候能够按照当初所设计的方向和预期,稳定运行、稳步发展;有的时候可能市场的变化导致需求的变更,导致整个系统和当初的设计背道而驰。有的经常操作的功能,平时使用没有什么问题,一到集中访问,高并发的场景,就出现各种诡异崩溃的问题;有的功能,短时间内使用都很正常,一旦经过几周几月的持续运行,就会出现偶然崩溃中断,重启后就有正常的情况。

            集中访问、高并发崩溃的问题,主要是系统的压力测试、并发测试,不够完全不够持久,很多公司都会容易忽略高压力测试和高并发测试,以为只要功能流程能正常跑通运行,就可以上线了;系统长时间运行导致间接性崩溃的问题,主要是系统没有经过持久性测试导致的,很多公司由于项目周期短,上线任务紧,几乎都不会做持续性功能测试。

            系统出现了这些问题,如果不进行及时修复,可能系统运行越来越慢,问题越来越多,更有可能被黑客利用,造成数据丢失或者成为跳板肉鸡,变相攻击其他网站访问者,后果十分严重!系统在测试或者上线运行的时候,一定要加上全面完善的日志系统和监控系统,在UAT仿真环境和生产环境中,就对可能存在的涉及内存泄漏、系统间通信调用、多线程使用的情况,进行周期性的日志分析,制定应对修复方案,以防止系统出现崩溃等问题。

            在进行系统BUG问题修复时,可以采取不同的方法策略。能够快速修复的,就及时进行修复;如果涉及流程比较复杂,不容易修复的,可以设计一个补救流程,或者代替流程,比如:用户在使用系统的时候,偶然遇到服务器崩溃的500,400,404等错误,可以针对性的设计出温馨可爱的页面,来降低用户的反感,以及给用户引入其他的可接受的业务流程。

    腾讯的404页面 TapTap的404页面

            如果是间接性的系统崩溃,如内存泄露导致的,能通过重启系统恢复的,就先临时采取重启系统,或者主备系统重启热切换的方式,临时性应急解决;如果周期性出现崩溃,严重影响了其他关联系统使用的,可以考虑下到当前有问题的版本,恢复之前的可用版本,或者给出提示公告,将用户引到别的替代流程上;如果出现的系统问题,影响到系统的内核功能以及多个关联系统都出现问题,牵一发而动全身,严重限制了系统的稳定发展,那么可以考虑在维护现有系统的同时,进行系统重构,并通过热切换的方式,逐渐替换掉现有的系统模块,使整个系统逐渐迁移到新的系统上来。这就是“补完”的运用之道。

            在基于微服务的分布式系统设计开发中,如果没有优秀稳定的核心系统架构,就会导致各个系统服务运行不稳定,细节BUG层出不穷,服务系统之间的服务调用错乱无章,系统的参数校验和安全校验没有,漏洞百出;重要的系统不经过充分的测试,导致内存泄露和间接性崩溃;服务器安全不做,导致后门、跨站脚本到处都是;不做系统日志记录和安全监控,在系统崩溃时,无法进行日志分析,系统出现了sql注入,留下了后门和木马也无法感知。这些情况都是比较严重的系统问题。

            在进行系统BUG分析时,要保持独立清醒的头脑,从多个角度综合分析,不放过每一个细节。系统研发初期,BUG的产生概率比较小,影响的关联系统也比较少,能够快速发现和修复;一旦经过多个版本的更新迭代之后,项目演化成多个系统服务与组件,BUG的产生概率就非常大,而且关联的系统也会增多,排查问题就变得异常困难,修复周期和修复发布,都会变得复杂麻烦。不管在系统发展的任何阶段,都适合使用“补完”的方法,针对系统的BUG、缺陷、漏洞进行对应的修补措施。

           “补完”的核心在于,如何应对系统架构设计中出现的BUG问题的修复措施。共分为四层:

          (1)任何系统在长期运行的过程中,都会或多或少产生BUG、缺陷、漏洞,一定要善于观察分析日志,找到潜在的BUG问题的征兆,采用不同的方案措施对待;

          (2)很多间接性的隐晦的BUG崩溃,都是系统运行中逐渐出现的,一定要建立起完善的日志系统和监控系统,在出现问题的时候,可以进行日志跟踪排查;

          (3)在系统BUG问题逐步扩大,直到牵连到多个公共模块和系统时,能够补救修复的,就进行补救修复;不能补救修复的,就要采取重构的方式,逐渐替换;

          (4)在进行系统“补完”时,要从多个角度分析,列举不同的修补方案,灵活组合,可考虑多个方案并行,循序渐进的进行系统修复。

            在软件开发行业中,任何系统都会出现各种各样的BUG和问题,一定要仔细研究其中的问题和原因。遇到多系统多功能关联的较难排查的BUG问题时,可以采用“开合”的方法,从外到内的逐步分析BUG问题的关联点和内部影响点。采用“补完”的方法来进行有计划的修补措施!

    相关文章

      网友评论

          本文标题:思想篇,补完(4)

          本文链接:https://www.haomeiwen.com/subject/nvjpkqtx.html