产品设计

传统架构存在的问题及其解决的方法

2017-03-23 09:59:31 | 来源:中培企业IT培训网

随着互联网行业的不断发展,传统软件架构的问题也日益显现。中培伟业《软件系统详细设计最佳实践》培训专家龚老师指出,传统软件架构的问题第一就是成本太高,第二个问题就是运维效率问题,具体有以下原因。

1、随着项目的发展,很多功能打包成一个war包,一个人的代码编译或者功能出错,需要重新归档和回归测试,交付效率越来越低

2、核心业务逻辑和非核心的混在一起,一旦非核心的业务发生OOM或者死循环,会导致核心业务也不能正常运行,可靠性差

3、对于很多新加入团队的新员工,学习和适应成本都很高:本地代码在不断的迭代和变更,最后形成了一个个垂直的功能孤岛,只有原来的开发者才理解接口调用关系和功能需求,新加入人员或者团队其它人员很难理解和维护这些代码。

那么应该如何解决这些问题呢?龚老师指出了以下方法:

1、拆分:由大及小,分而治之。目前常用的拆分策略有水平拆分和垂直拆分两种。

2、解耦:通过服务化和订阅、发布机制对应用调用关系解耦,支持服务的自动注册和发现。本质就是 透明化路由,消费者只需要知道我依赖什么服务即可,不关心服务的具体位置信息,双方只有接口契约关系。

3、独立原则:服务可以独立打包、发布、部署、启停、扩容和升级,核心服务独立集群部署。这个原则实际就是 微服务架构倡导的原则:微服务可以独立的部署、升级和运维,实现一定程度的自治。

4、分层:梳理和抽取核心应用、公共应用,作为独立的服务下沉到核心和公共能力层,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。无论我们是做互联网,还是其它IT行业,都有一个共性。经常发生变更的总是集中在20%左右的功能上,而变更频繁的就是前端展示Portal和元数据映射、编排。后端的接口和能力通常是比较稳定的。核心应用、公共应用,作为独立的服务下沉到核心和公共能力层,逐渐形成稳定的服务中心,独立集群和部署。前后端分离,使前端可以更灵活的适配业务需求的变更。

标签: 传统架构