论软件架构的选择

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/topofyou/article/details/78937186

论软件架构的选择

摘要:

        2015年初,我所在的公司承担了某集团公司的移动信息化开放平台的建设工作。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以移动信息化发展为契机,采用”平台+应用”的模式解决现有应用的集中移动化需求。平台整体的逻辑复杂,对系统的高可用和高扩展能力提出了较高的要求。

本文以平台系统架构为例,讨论了软件架构的选择和应用。在该项目中,我结合实际需要,从开发和维护难度、安全性、稳定性和扩展能力等方面综合衡量,为平台选择了具有表现层、业务逻辑层、数据访问层的三层分层架构。平台的研发耗时10个月,目前,系统已稳定运行了近两年时间,实践证明,这种架构设计有效的降低了系统的维护和开发成本,增强了系统的安全性、提高了系统的稳定性和扩展能力。

正文:

        随着移动信息化技术的迅猛发展,我所在的某集团公司的在信息化建设中发现,随着业务系统移动化的需求越来越多,内部移动应用的数量也随之激增,使用起来十分繁琐。为了解决这一问题,集团制定了移动信息化发展战略,根据这一战略要求,移动信息化开放平台应运而生。2015年初,我所在的分公司承担了集团移动信息化开放平台(以下简称MIOP)的建设工作,我有幸参与了项目前期的一些工作,担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。MIOP采用”平台+应用”的模式,立足于集团总部管理域各应用,覆盖全国各省分应用,实现移动应用的统一入口、统一认证、统一鉴权、统一管理,将总部与省分的各种有移动化需要的应用进行有效整合,降低了集团内部移动应用的使用难度,使用户可以无感知的在多个应用间进行切换使用。平台的主要用户是集团全国40多万管理域员工,其中首要保障的是集团领导和省分领导对移动应用的使用,其中涉及公文管理、合同管理、财务报账、ERP和CRM等多个复杂系统,业务流程复杂,系统可靠度和可扩展性要求较高,影响的范围比较广。在部署模式上,MIOP采用集团统一私有云集中部署,各省分系统与MIOP做网络对接,是一个典型的跨城际系统。在系统认证上采用既有4A系统结合自建应用商店作为权限入口,对使用者的权限进行划分。

        作为集团唯一的移动信息化门户,信息的安全是首要的保障任务,同时,用户量级决定了系统必须具有很高的并发能力,其”平台+应用”的特点又决定了系统必须具有很好的扩展能力。考虑到现有部署资源和团队的开发和维护能力,为了降低系统的维护和开发难度,提高系统的稳定性、可扩展性,我通过技术调研和讨论分析,为平台选择了具有表现层、业务逻辑层、数据访问层的三层分层架构。下面我从提高安全性、降低开发和维护成本、增强系统稳定性的三个主要方面出发,结合实施之后的实际效果综合分析选择三层分层架构的原因。

        第一,从平台安全层面出发,三层结构可以更好的提升系统的安全性。平台存储了集团管理域40多万用户的个人信息,流经平台的应用数据包含合同、客户管理等敏感信息,信息数据的安全是十分重要的,集团领导在系统安全性上也是最为重视。在数据隔离方面,三层结构的数据访问是自上而下、层层隔离的,表现层只能通过业务逻辑层访问数据层,相对于单层或双层系统,系统的数据访问点大大减少,数据的安全性得到了提高。在安全接入方面,三层架构将客户端与服务器的通信集中到表现层与业务逻辑层的通信上,这就使得针对这部分通信链路的安全增强手段就可以有效提高整体系统的安全性,如通过HTTPS、VPN加强通信安全,又如将只将涉及接入的部分服务放入DMZ,而系统的主要业务处理和数据交换由防火墙与外网隔离,这些技术手段都可以很好的借助分层架构的业务隔离特点更好的提高系统的安全性。事实上,由于三层架构所带来的多种安全手段的可行性,MIOP除部分操作系统的安全漏洞修复外,平台整体的安全体系得到了集团信息安全部门的认可,顺利通过了安全检测,运行至今,从未发生安全生产故障。

        第二,从开发和维护的需要出发,三层架构可以有效的降低系统的开发和维护难度。通过实际调查分析,现有项目开发和维护人员的技术能力参差不齐,掌握的技术比较分散,不足以完整的支撑一套复杂系统的开发和维护。在复杂的业务逻辑面前,三层结构可以将系统的具体功能分散到不同的层级,除少数核心人员以外,其他开发、维护人员只需要关心自己所负责层级的实现和保障,相对于单层或双层架构,这直接降低了系统的开发和维护的难度。在经常变化的接入需求面前,三层结构可以在各层之间做到很好的业务隔离,相对于单层或双层架构更容易实现服务的标准化,在降低层与层之间的依赖的同时,增强了各层的逻辑复用,各层还可以很方便的使用新的实现方式来替换原有实现方式,或灵活的对现有业务实现进行扩展,这些优点相对于单层或双层架构在新需求的扩展和新应用的接入等方面来说都将大大降低开发和维护的难度。实际中,由于三层架构所带来的开发和维护难度降低的优点,在MIOP的开发和维护阶段,超过100款移动应用的接入和大量临时活动的开发、上线都顺利得以实现,整体开发和维护效率获得极大提高。

        第三,从保障系统稳定性方面考虑,三层架构具有更好的扩展能力和可靠性。在扩展能力方面,传统的单层或双层业务当系统达到并发能力上限而面临扩容的时候,往往是最难以实现的时候,单层系统通常只能采用增强服务器性能的方式,而双层系统虽然可以横向扩展,但是通常需要在新的节点上完整的部署程序来达到扩容的目的。三层系统通过业务的分层处理,各层的业务相对集中,层间数据交换规则相对简单,可以针对各层分别扩展。系统的主要业务逻辑都集中于业务逻辑层,而该层的业务逻辑实际上可以运行于多台计算设备之中,以支持分布式计算。通过利用网络的计算能力,在提升处理能力的同时,获得更高的扩展能力,结合MIOP所需要部署的云化资源池,通过云计算技术,系统可以通过动态的增加资源来方便的扩展业务逻辑层的运算节点,以加强业务处理能力。在可靠性提高方面,三层架构支持分布式这一特点又可以通过服务动态冗余等方式实现更高的可靠性,降低系统的故障概率,提高系统的稳定性。实践中,三层架构所带来的更好的扩展能力和稳定性保障了平台的运行,在MIOP上线运行的2年中,系统即使在近期每天近十万访问量的情况下仍然保持了较高的反应时间,系统的资源数量也从最初的24个云化资源点平滑扩展到了目前的53个云化资源点。

扫描二维码关注公众号,回复: 6753166 查看本文章

        在架构决策阶段,我所选择的这种架构得到了集团领导的认可和采纳, 2015年末,MIOP正式上线运行,至今已稳定运行了接近2年时间。系统平稳经历了访问量激增、大量活动上线、紧急应用接入等复杂运维状况,系统所采用的三层分层架构在降低开发与维护难度、加强平台安全性、提高系统稳定性、增强扩展能力等方面都发挥了重要的作用,获得了领导和同事的好评。但是在系统运行过程中,我也发现了这种架构存在的一些不足。首先是分层结构的多层调用降低了系统的性能。其次是分层所带来的级联修改问题,上层逻辑的修改可能会导致下层逻辑随之修改。分层架构所具有的优点和面临的问题将是我今后在同类系统的架构决策方面需要重点考虑因素。

猜你喜欢

转载自blog.csdn.net/topofyou/article/details/78937186