初识 Service Mesh

307 阅读3分钟
原文链接: zhuanlan.zhihu.com

前言

因为平时喜欢逛一些技术论坛或者博客,再一次偶然的机会下听说了service mesh这一词语,还听说这是下一代的微服务;这无疑激发了我很大的好奇心,因为我本事就是做后端开发的,同时我们公司现在也正在使用spring cloud进行微服务开发,我们发现我们对于相关服务的部署调度和灰度金丝雀等等能力很缺乏,所以我更想看看这个下一代微服务到底是个什么样子;随即我查阅了相关的资料

《Service Mesh 的诞生》:从分布式到微服务​www.servicemesh.cn图标

,并了解了一下相关的项目;

istio/istio​github.com图标 runconduit/conduit ​github.com 图标

大致有了一下自己对于service mesh的理解;

Service Mesh的差异

因为我们公司是使用spring cloud + netflix OOS 这套技术栈,并且我是主要负责人和搭建者之一,所以我会对spring cloud这样一套会了解多写;

当我了解到了service mesh所提出的思想使,我觉得是很惊艳的一个想法,也许我之前并没有想到这方便的东西,但是我理解到他之后我确实觉得这是一个很好的idea;他把分布式系统最复杂的网络抽离出来作为基础平台的一部分进行运行,让我们的业务代码可以彻底与平台性功能分离;相比spring cloud的解决方式我觉得这是一种更好的方式,我甚至有种这就是微服务最终的形态(k8s + service mesh);

在我们进行业务开发的时候,我们不需要去管我们是使用什么样子的语言,什么样子的框架,我们只需要一种能够与其他服务进行网络交互的协议(比如:http,rpc...);这样子我们可以根据特定的服务选择最适合的框架和语言,这也是微服务所推崇的,相比在使用spring cloud进行开发的时候,开发人员有时候是需要去关注我们底层的依赖包的,因为这可能他的程序又是甚至无法运行,同时我们也被绑定在了jvm这个平台,除非你再使用其他运行造一个一模一样的轮子;

甚至service mesh的相关实践项目还能提供一些发布相关的优化功能,比如灰度发布与金丝雀发布;

采用Istio实现灰度发布,给运维人员一支强心剂 - ServiceMesh中文网​www.servicemesh.cn图标

但是我们在使用spring cloud的时候想要实现这个功能,目前我们还没有找到合适的实现方案,可能进行一些相关的定制化能够实现相关的功能,但是因为service mesh代理了应用的相关流量,所以这在service mesh是开箱即用,这也是很好的一个点;

最后

因为其实service mesh这个概念也还算一个比较新的概念,同时我比较关注的istio和conduit都还没有发布1.0,但是我觉得这是一个微服务发展的趁势,而且我也打算优化一下我们公司的微服务架构;所以之后我会对istio或者conduit进行一些相关的实践,并总结一下与大家进行分享;

第一次在知乎写文章,感觉还有那么点小紧张呢,以上只是自己对于service mesh的一些小理解,如果有地方说错了希望能够得到指正或者进行讨论,让大家可以一些快乐学习,成长^-^;