Service Mesh 作为下一代微服务技术的代名词,初出茅庐却深得人心一鸣惊人,大有一统微服务时代的趋势。那么到底什么是 Service Mesh?一言以蔽之:Service Mesh 是微服务时代的 TCP/IP 协议。
Service Mesh 通常是通过为每个服务实例提供一个称为sidecar的代理实例来实现的。Sidecar处理服务间通信,可观察性和与安全有关的问题--实际上,任何可以从单个服务中抽象出来的东西。这样,开发人员可以专注处理服务中应用程序代码的开发,支持和维护。基础构架团队可以专注维护基础设施功能。时代选择了Service Mesh。以 Istio 为代表的 Service Mesh 是我们在容器时代采用微服务架构的最佳实践。
Service Mesh具有如下优点:屏蔽分布式系统通信的复杂性(负载均衡、服务发现、认证授权、监控追踪、流量控制等等),服务只用关注业务逻辑;真正的语言无关,服务可以用任何语言编写,只需和Service Mesh通信即可;对应用透明,Service Mesh组件可以单独升级。
当然,Service Mesh目前也面临一些挑战:Service Mesh组件以代理模式计算并转发请求,一定程度上会降低通信系统性能,并增加系统资源开销;Service Mesh组件接管了网络流量,因此服务的整体稳定性依赖于Service Mesh,同时额外引入的大量Service Mesh服务实例的运维和管理也是一个挑战。
为了解决端到端的字节码通信问题,TCP协议诞生,让多机通信变得简单可靠;微服务时代,Service Mesh应运而生,屏蔽了分布式系统的诸多复杂性,让开发者可以回归业务,聚焦真正的价值。