单块架构系统,传统的单服务器三层架构组成的系统。
优势:
- 易于开发
- 易于测试
- 易于部署
- 易于水平伸缩(集群配置比较方便,ngix+文件同步软件)
劣势:
维护成本越来越大
档代码膨胀到几十万行以上,改一出业务可能会影响很多业务逻辑
缺陷排查也十分困难
持续交付周期长
当功能越来越多,代码越来越复杂,构建和部署时间会越来越长。新功能的增加、部署、测试周期会越来越慎重越来越长。
新人培养周期困难
即使不考虑团队离职问题,当业务增长,需求的开发团队膨胀,新入职的成员学习该项目会有一个很长的周期。我有一个朋友,光入职跑起来项目用了一个月。
技术选型成本高
单一架构,所有的工具和插件、中间件堆积到一起,开发人员要考虑各个技术插件的兼容问题,后续引入的新技术是否不影响以前的插件。
可扩展差
随着应用程序越来越大,对服务器的要求越来越高,环境越来越复杂
团队管理困难
随着团队变大分割,ui、业务、数据库等等成立新的团队,业务沟通变得跨层级。