你好,我是看山。
前面我们聊了微服务的话题,现在微服务已经是业内通识。但凡系统开发、系统设计,必然采用微服务架构,或者宣称是微服务架构。
但大家有没有想过,微服务架构不是一开始就有的。如果追溯历史,微服务最早在 2005 的云计算博览会,由 Peter Rodgers 博士提出(那时候称为微 Web 服务(Micro-Web-Service))。到了 2014 年,Martin Fowler 与 James Lewis 共同提出微服务(Micron-Service)的概念,算是对概念归纳总结,天下一统。这一年也被称为微服务元年。
看山的小屋
那就要问了,在 2014 年之前呢?大家用啥架构?再往前呢?上次互联网大潮的时候,大家又是用啥?我们今天来聊聊这段历史,可能你会对现在习以为常的架构,产生一些新的看法。在架构上,可以有更多的选择。
人人喊打的单体架构
单体架构,人人都说这种架构不好,为什么不好呢?真的不好吗?可能真相并不是你认为的那样简单。
当前来说,如果有人说某个系统是单体架构,一定会有人投来怀疑的眼神,有的会带着些许不可思议,甚至带有一丝鄙夷。但是不得不说,单体架构(又称巨石系统,Monolithic)是整个软件发展过程中,出现时间最早、应用范围最广的一种架构风格。从另一个方面,原来本没有单体架构这个称呼,只是后来有了微服务架构,为了区分,才把所有“自包含”的系统称为单体架构。
人人喊打的单体架构构
上面这个图就是单体架构,所谓“自包含”,简单说就是自给自足,所有业务功能靠自己,不依赖其他业务系统。其优点有下面这些:
-
不涉及进程间通信,效率可控;
-
不依赖网络通讯,可以规避不可靠的网络通讯带来难以预知的故障;
-
开发生态良好,目前的 IDE 对单体架构的支持更好;
-
编码重构容易,单体架构完全的自控制,只要修改自己即可,不需要上下游支持;
-
端到端测试简单,因为没有上下游依赖,测试起来更加方便,部署一套环境,