什么是Service Mesh
Service Mesh作为下一代微服务技术的代名词,初出茅庐却深得人心一鸣惊人,大有一统微服务时代的趋势。
那么到底什么是Service Mesh?
一言以蔽之:Service Mesh是微服务时代的TCP协议。’’有了这样一个感性的初步认知,我们再来看到底什么是Service Mesh。
提到Service Mesh,就不得不提微服务。根据维基百科的定义:
微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的 API 集相互通信。
目前业界跟微服务相关的开发平台和框架更是不胜枚举:Spring Cloud, Service Fabric,Linkerd,Envoy,Istio …
这些纷繁的产品和Sevice Mesh有什么样的关联?哪些属于Service Mesh的范畴?
为了理清这些繁复的产品和概念,我们先来了解下微服务和Service Mesh技术的历史发展脉络。
了解清楚了技术的主要脉络,就能清晰的知道上述的各个平台、框架属于技术脉络中的哪个结点,其间的关系也就一目了然。
Phil Calçado的文章《Pattern: Service Mesh》,详细的介绍了从开发者视角来看,服务开发模式和Service Mesh技术的演化过程,个人认为是非常经典的学习Service Mesh的资料。这里借用文章的脉络,结合自己的理解并予以简化,试图说清楚ServiceMesh的概念和这项技术诞生的历史必然性。你可以把本文当做原文的一个中译版本来阅读。
时代0:开发人员想象中,不同服务间通信的方式,抽象表示如下: