专栏前面的文章,我主要给你讲解了微服务架构的基础组成以及在具体落地实践过程中的会遇到的问题和解决方案,这些是掌握微服务架构最基础的知识。从今天开始,我们将进一步深入微服务架构进阶的内容,也就是微服务与容器、DevOps 之间的关系。它们三个虽然分属于不同领域,但却有着千丝万缕的关系,可以说没有容器的普及,就没有微服务架构的蓬勃发展,也就没有 DevOps 今天的盛行其道。
之后我还会具体分析它们三者之间是如何紧密联系的,今天我们先来看微服务为什么要容器化。
微服务带来的问题
单体应用拆分成多个微服务后,能够实现快速开发迭代,但随之带来的问题是测试和运维部署的成本的提升。相信拆分微服务的利弊你早已耳熟能详,我讲个具体的例子。微博业务早期就是一个大的单体 Web 应用,在测试和运维的时候,只需要把 Web 应用打成一个大的 WAR 包,部署到 Tomcat 中去就行了。后来拆分成多个微服务之后,有的业务需求需要同时修改多个微服务的代码,这时候就有多个微服务都需要打包、测试和上线发布,一个业务需求就需要同时测试多个微服务接口的功能,上线发布多个系统,给测试和运维的工作量增加了很多。这个时候就需要有办法能够减轻测试和运维的负担,我在上一讲给出的解决方案是 DevOps。