从系统的组织和部署结构方面来看,软件架构的演化进程显然有着从简单到复杂的趋势。那是否最新最复杂的架构就是目前业界选择的最佳架构呢?非也。没有最好的架构,只有最合适的架构。在软件架构的选择上,“合适”比“新”更加重要。
对于整个软件架构发展进程,我们可以大致分为三大阶段:单体架构、SOA架构、微服务架构。今天就来简单分析一下架构的发展与优劣势,希望能对大家的项目开发有所助益。
(1)单体架构
单体架构就是把所有的业务逻辑和控制逻辑全部都放在了一起,一个程序里包括了所有的相关功能。(All in one)。比如一个 ERP 系统中包括了商品模块,订单模块,销售模块,库存模块,报表统计等等。
单体架构基本解决了所有简单的问题,由于开发时所有业务代码都在一起,测试的时候不需要联调各种服务,发布维护非常轻松。
但缺点也很明显,每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个BUG都会造成隐含的缺陷。一旦某一个模块出了问题,那基本就是全盘 GG。如果想针对某个具体模块提升性能,难度也比较大。
总的来说单体架构前期开发成本低、开发周期短,适合小型项目。对于大型项目来说不易开发、扩展和维护。技术栈受限,只能使用一种语言开发。系统性能扩展只能通过扩展集群节点,成本高。
单体架构优劣势:
优势 |
---|