微服务架构Service Mesh概念汇总

云世  公众号

推荐在云世搜索以下关键词,获取更多相关内容:      

ServiceMesh优势、ServiceMesh基础组件、服务网格概念、sidecar数据面、sidecar控制面

今天和你分享的内容是微服务架构的基础知识。正如在开篇词提到的,学习 Service Mesh,首先要理解微服务架构。理解微服务架构产生的背景和原因,才能进一步抓住微服务架构的痛点,更清晰地认识到 Service Mesh 解决的问题。

单体服务架构有哪些问题

单体服务,相信大家都有所了解,在我们最初接触 Web 开发,写一些网站或者 App 的时候,大多使用的是单体服务这种后端技术架构。比如在 Web 2.0 时期,最常见的博客系统 WordPress,就是一个著名的单体服务。因为它所有的功能模块都在一个代码仓库,并且部署在同一个进程内,是一个典型的单体架构。

事实上,在不需要快速迭代的业务上,单体服务也可以运行得很好,比如一个小的团队维护一个变更速度没那么快的项目,就像WordPress 和早期的门户网站。但面对如今移动互联网业务的快速迭代,单体服务就显得力不从心了,一个很大的问题就是,大量复杂的业务冗杂在一个单体应用中,造成了人员沟通成本和发布迭代成本的急剧上升。

【了解更多DDD系列课程,搜索  云世   公众号获取】

为了让你更好地理解从单体服务转向微服务的原因,下面来具体说说单体服务的问题

1. 人员协作问题

所有人员都在一个代码仓库开发,当数量超过 10 人时,协作问题就开始凸显了。比如一个新成员,需要在一个庞大的代码仓库中,找到自己负责的模块部分,假如他在改动自己负责的部分的时候,代码组织并不是很好,就很容易涉及其他人写的代码,这个时候就产生了不必要的沟通成本。即便沟通顺利,也容易引起单体应用中其他部分的故障。

2. 部署问题

除了协作中的问题,还会产生上线部署效率的问题。当不同人员开发的不同模块,同时需要上线时,如果分别将分支代码合并到主干代码,再按照流程上线,就会产生先后顺序的等待时间;如果合并到一起上线,线上功能一旦出问题,就需要花费大量时间排查是哪个模块出现的问题。

3. 架构演进问题

当我们应用中的某个模块,遇到了性能瓶颈,我们希望以另外一种语言重新编写此模块,这个时候单体应用完全无法演进。如果我们要替换语言,就得重写整个应用,花费的成本可想而知。

4. 程序稳定性问题

在单体应用中,某个模块出现 Bug 时,比如因为疏忽造成了 OOM (程序内存不足),导致程序 panic,这会导致整个网站或者 App 不可用。一个模块的问题,导致了整个应用挂掉,这在生产环境中是无法接受的。

随着互联网业务的发展,整体业务越来越复杂,以上问题越来越明显,单体服务已经无法应对如此复杂的业务场景了。互联网行业也从架构上逐步开始了服务拆分,进入了 SOA (Service-Oriented Architecture 面向服务的架构)时代。

在 SOA 时代,比如淘宝网,采用了一种 ESB 总线的技术,就是所有服务的通信需要通过一个集中式的总线服务(可以理解为集中式网关),这大大降低了服务的通信效率并且增加了单点风险。但是随着业务进一步扩大, ESB 总线的弊端逐步凸显,比如每次服务变更节点都需要人工操作,这大大降低了互联网业务的迭代效率。

微服务和 SOA 一脉相承,而微服务则不再强调传统 SOA 架构里面比较重的 ESB 企业服务总线。

微服务有哪些优势

微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的 API 进行通信的小型独立服务组成,这些服务由各个小型独立团队负责。微服务架构使应用程序更易于扩展、更快开发,从而加速创新并缩短新功能的上市时间。与单体应用相比,微服务能够更好地满足互联网时代业务快速变化的需要。

接下来我们看一看微服务相对于单体服务都有哪些优势

1. 敏捷开发

一个小的团队,甚至一个人,负责一个或者多个服务,当有新的需求出现,可以快速对这个小型服务做出修改并上线。但是当维护一个庞大的代码仓库构成的单体服务时ÿ

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值