导读:本文系 Service Mesh 系列文章的第一篇,一步步带读者了解 Service Mesh 的基础概念和前世今生。
后续还将会为读者带来系列 Service Mesh 文章,内容涵盖 Istio 入门体验、Istio 和 Envoy 源码深度解析、服务网格大规模落地经验、服务网格性能优化等,敬请持续关注。
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 ,Istio ,Envoy ,Consul ,NginMesh ,OSM ...
这些纷繁的产品和 Sevice Mesh 有什么样的关联?哪些属于 Service Mesh 的范畴?
为了理清这些繁复的产品和概念,我们先来了解下微服务和 Service Mesh 技术的历史发展脉络。
了解清楚了技术的主要脉络,就能清晰的知道上述的各个平台、框架属于技术脉络中的哪个结点,其间的关系也就一目了然。
Phil Calçado 的文章《 Pattern: Service Mesh 》,详细的介绍了从开发者视角来看,服务开发模式和 Service Mesh 技术的演化过程,个人认为是非常经典的学习 Service Mesh 的资料,感兴趣的读者也可以阅读英文原文。这里借用文章绘图和脉络,结合自己的理解并予以简化,试图说清楚 ServiceMesh 的概念和这