单体应用与微服务优缺点辨析

前久由于需要做一个异构系统集成的架构设计,所以深入研究了下微服务架构,今天由于家里断网(只能用手机热点)所以分享一篇OneNote里面摘录的文章。

微服务架构(MSA)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非在具体代码上应用SOLID原则的设计原则。个人我认为微服务更多的是一种架构风格,也可以看作是一种粒度更细的SOA。在InfoQ上有很多介绍微服务架构的文章,今天要分享的是一篇对比单体应用和微服务的文章,所谓单体应用和微服务可以通过下图来理解:

monolithic_ms

阅读这篇文章后,可以帮助我们对微服务的概念和优缺点有一个比较清晰的认识。

这篇文章首先讲述了单体应用的优点:为人熟知;IDE友好;便于共享;易于测试;容易部署。

接着例举了一些单体应用的缺点:不够灵活;妨碍持续交付;受技术栈限制;技术负债。

由于微服务具有诸多特点:领域驱动设计;单一职责原则;明确发布接口;独立部署、升级、扩展和替换;可以异构多种语言混合;轻量级通信。

所以,引入微服务可以带入如下好处:易于开发、理解和维护;比单体应用启动快;局部修改很容易部署,有利于持续集成和持续交付;故障隔离,一个服务出现问题不会影响整个应用;不会受限于任何技术栈。

当然要成功实施微服务,具备良好的开发运维团队才有保证。

更多的解释和说明可以“阅读原文”,或者在InfoQ中文站上搜索“微服务”来获取更多相关文章。

原文地址:http://www.infoq.com/cn/news/2015/04/single-app-micro-service

posted @ 2015-05-06 23:20  朱永光  阅读(7095)  评论(0编辑  收藏  举报