一、单体应用架构存在的问题?
1、复杂性高:
当一个单体应用功能越来越多,它的功能越来越多!但是它项目就会越来越复杂,不好维护。有可能牵一发而动全身!一个小bug可能导致整个项目跑不起来。
2、技术积累:
一个单体应用随着时间的推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务。并且会越积越多。我上一家公司就是这样,导致人员流动非常大!
3、部署频率低:
代码的增加,构建和部署的时间也会增加。在单体应用中改一次bug就要重新部署整个应用。全量部署风险很大。
4、可靠性差:
某个应用的Bug,例如死循环、OOM等,可能会导致整个应用的崩溃。
5、拓展能力受限:
单体应用只能作为一个整体进行拓展,无法根据业务模块的需要进行拓展。比如:有的模块是需要大量计算资源的,有的模块需要大量的读写资源。这些模块一起拓展就要在硬件的选择上做出妥协。
6、阻碍技术创新:
单体应用一般使用统一的技术平台或方案解决所以的问题,团队里所以人都是这样使用会阻碍大家的提升(手动狗头!)