微服务是什么?

微服务是什么?的配图
微服务(microservice)是一种软件架构,正得到越来越多的关注。但是,它到底是什么意思?什么样的架构可以叫做微服务?网上的文章虽然很多,但是都太复杂,初学者不容易看懂。我认为,这个概念其实非常简单,可以很通俗地说明白。一、单体软件要理解微服务,首先需要理解软件架构的演变。早期的软件,所有功能都写在一起,这称为单体架构(monolithic software)。整个软件就是单一的整体,彷佛一体化的机器。可以想到,软件的功能越多,单体架构就会越复杂,很多缺点也随之暴露出来。(1)所有功能耦合在一起,互相影响,最终难以管理。(2)哪怕只修改一行代码,整个软件就要重新构建和部署,成本非常高。(……