演讲分享

蚂蚁金服Service Mesh渐进式迁移方案和实现平滑迁移的关键点

Knative是Google发起的 serverless 项目,希望通过提供一套简单易用的 serverless 开源方案,将 serverless 标准化。

在勇敢的选择了Service Mesh作为未来技术方向之后,蚂蚁金服率先开始了Service Mesh大规模落地探索。在此过程中,我们遇到很多问题,面临各种挑战,也有了一些思路和方法。今天我们将这些实践分享出来,并结合我们开源的SOFAMesh项目,和大家一起探讨:如何更好的将Service Mesh这样的新兴技术落地于实际生产环境。

蚂蚁金服Service Mesh产品(SOFAMesh)的技术选型,架构设计和开源策略

今天我们不谈技术,不谈架构,也不谈具体的产品,我们来聊一聊在未来一两年之内,Service Mesh技术会在微服务相关的市场带来什么样的变化?

出版作品

互联网架构不断演化,经历了从集中式架构到分布式架构,再到云原生架构的过程。云原生因能解决传统应用升级缓慢、架构臃肿、不能快速迭代等问题而成为未来云端应用的目标。本书首先介绍了架构演化过程及云原生的概念,让读者对基础概念能有一个准确的了解。接着阐述分布式、服务化、Observability、容器调度、Service Mesh、云数据库等体系及其原理,并介绍了与其相关的Dubbo、Spring Cloud、SkyWalking、Kubernetes、Istio开源解决方案。最后深度揭秘开源分布式数据库生态圈Sharding-Sphere的设计与实现ss。

我们回顾 2018 年的 Service Mesh,会发现的确如去年预期的,2018 年 Service Mesh 市场上的几个主要产品,都还在产品落地和生产实践上努力探索。只是这个过程,比我们预期的要慢一些,遇到的问题也比预期的要多一些,以至于在 2018 年结束时,我们未能看到一个梦寐以求的完美答案,而不得不将对 Service Mesh 的美好期许,留待 2019。

2017年的Service Mesh历程,在平淡中开始,如戏剧般结束,留给我们一个充满想象和憧憬的2018。让我们一起来回顾这堪称精彩的一年。

技术博客

微服务领域的著名专家 Chris Richardson 在其博客上发表了微服务反模式序列文章,描述他在与全球众多客户合作时,观察到多种微服务采用的反模式。

在 re:Invent 2018,AWS宣布了AWS App Mesh 的公开预览版,App Mesh是一个服务网格,可以轻松监视和控制跨应用的通信。而现在,AWS App Mesh 正式GA了。

Istio1.1版本加强了对HTTP Retry条件的控制,同时修改了原有的HTTP retry的默认行为,去除了5xx的重试条件,但是没有文档上体现,所以使用时请留意:如果遇到重试不生效,请检查retryOn配置。

为了尽可能的提升往Mixer批量上报数据的性能,提供了Delta Encoding的特性。但是最近发现存在属性删除的bug,因此Istio1.1之后废弃了这个特性。

Istio支持在多个cluster之间设置权重,通过设置不同的subset和weight,可以实现很多丰富的功能。但是之前只能为HTTP提供,TLS和TCP只能设置一个Destination,直到Istio1.1版本。

蚂蚁金服容器与服务创新组招聘优秀毕业生啦,欢迎致力于云原生微服务研发的同学投递简历。

对于服务的可见性,在 Istio 设计之初,是没有特别考虑的,或者说,Istio 一开始的设计就是建立在如下前提下的:Istio中的任何服务都可以访问其他任意服务。直到Istio1.1版本才开始正视这个问题 :)

SOFAMesh需要增加多个通讯协议的支持,在开发中我们发现按照Istio标准的开发方式,会有大量重复的工作和代码。通过x-protocol我们在SOFAMesh中实现简单快捷的协议扩展,可以方便的支持新的TCP通讯协议。

虽然大多数的服务都不会要求极致性能,但是系统中总是有可能出现个别服务的确对性能要求很高,为了满足这些特例而不至于因此整体否决Servicemesh方案,我们需要在Servicemesh的大框架下提供一个折中方案。

为了更方便的支持通讯协议扩展,为了更灵活的性能与功能的平衡,为了兼容现有SOA体系,我们在SOFAMesh项目中引入了名为x-protocol的解决方案,在Istio之上进行补充,让我们从DNS通用寻址方案开始。

和我联系