什么是ServiceMesh(Istio一)

现在最火的后端架构无疑是微服务了,微服务将之前的单体应用拆分成了许多独立的服务应用,每个微服务都是独立的,好处自然很多,但是随着应用的越来越大,微服务暴露出来的问题也就随之而来了,微服务越来越多,管理越来越麻烦,特别是要你部署一套新环境的时候,你就能体会到这种痛苦了,随之而来的服务发现、负载均衡、Trace跟踪、流量管理、安全认证等等问题。如果从头到尾完成过一套微服务框架的话,你就会知道这里面涉及到的东西真的非常多。当然随着微服务的不断发展,微服务的生态也不断完善,最近新一代的微服务开发就悄然兴起了,那就是服务网格/Service Mesh。

什么是Service Mesh?

Service Mesh 是一个非常新的名词,最早是2016年由开发 Linkerd 的 Buoyant 公司提出的,伴随着 Linkerd 的传入, Service Mesh 的概念也慢慢进入国内技术社区,现在主流的叫法都叫:服务网格。

服务网格是一个用于处理服务间通信的基础设施层,它负责为构建复杂的云原生应用传递可靠的网络请求。在实践中,服务网格通常实现为一组和应用程序部署在一起的轻量级的网络代理,但对应用程序来说是透明的。

要理解网格的概念,就得从服务的部署模型说起:

单个服务调用,表现为sidecar

Service Mesh 的部署模型,先看单个的,对于一个简单请求,作为请求发起者的客户端应用实例,会首先用简单方式将请求发送到本地的 Service Mesh 实例。这是两个独立进程,他们之间是远程调用。

Service Mesh 会完成完整的服务间调用流程,如服务发现负载均衡,最后将请求发送给目标服务,这表现为 Sidecar 方式。

部署多个服务,表现为通讯层

![WechatIMG195.png][2]

多个服务调用的情况,在这个图上我们可以看到 Service Mesh 在所有的服务的下面,这一层被称之为服务间通讯专用基础设施层。Service Mesh 会接管整个网络,把所有的请求在服务之间做转发。在这种情况下,我们会看到上面的服务不再负责传递请求的具体逻辑,只负责完成业务处理。服务间通讯的环节就从应用里面剥离出来,呈现出一个抽象层。

有大量服务,表现为网络

如果有大量的服务,就会表现出来网格,图中左边绿色方格是应用,右边蓝色的方框是 Service Mesh,蓝色之间的线条是表示服务之间的调用关系。Sidecar 之间的连接就会形成一个网络,这个就是服务网格名字的由来,这个时候代理体现出来的就和前面的 Sidecar 不一样了,形成网状。

首先第一个,服务网格是抽象的,实际上是抽象出了一个基础设施层,在应用之外。其次,功能是实现请求的可靠传递。部署上体现为轻量级的网络代理。最后一个关键词是,对应用程序透明。

大家注意看,上面的图中,网络在这种情况下,可能不是特别明显。但是如果把左边的应用程序去掉,现在只呈现出来 Service Mesh 和他们之间的调用,这个时候关系就会特别清晰,就是一个完整的网络。这是 Service Mesh 定义当中一个非常重要的关键点,和 Sidecar 不相同的地方:不再将代理视为单独的组件,而是强调由这些代理连接而形成的网络。在 Service Mesh 里面非常强调代理连接组成的网络,而不像 Sidecar 那样看待个体。

现在我们基本上把 Service Mesh 的定义介绍清楚了,大家应该可以大概了解什么是 Service Mesh 了。现在实现 Service Mesh 的开源方案有很多,比如 Linkerd、Istio 等,当然目前最流行最火热的还是要数 Istio 了,记下来我们就来开始讲解 Istio 的使用。

相关推荐
深圳安锐科技有限公司39 分钟前
边坡倾斜自动化监测 倾角仪 如何通过安锐云查看监测曲线?
运维·视觉检测·实时监测·自动化监测·结构健康监测·倾斜角度监测·倾角传感器
咕噜企业分发小米2 小时前
有哪些开源的直播云服务器安全防护方案?
运维·服务器·云计算
C_心欲无痕3 小时前
nginx - 开启 gzip 压缩
运维·前端·nginx
王阿巴和王咕噜3 小时前
【WSL】安装并配置适用于Linux的Windows子系统(WSL)
linux·运维·windows
Xの哲學4 小时前
深入剖析Linux文件系统数据结构实现机制
linux·运维·网络·数据结构·算法
Wpa.wk5 小时前
性能测试工具 - JMeter工具组件介绍二
运维·经验分享·测试工具·jmeter·自动化·json
朝阳5815 小时前
Ubuntu 22.04 安装 Fcitx5 中文输入法完整指南
linux·运维·ubuntu
开开心心就好5 小时前
图片格式转换工具,右键菜单一键转换简化
linux·运维·服务器·python·django·pdf·1024程序员节
永远在Debug的小殿下5 小时前
wsl安装Ubuntu and ROS2
linux·运维·ubuntu
❀͜͡傀儡师5 小时前
docker一键部署HFish蜜罐
运维·docker·容器