Service Mesh的一点思考

微服务,服务网格这些新概念下传统后端技术的变革

Posted by TopJohn on 2019-05-21
本文总阅读量

Service Mesh的一点思考

近几年,随着云计算技术的发展,容器、Kubernetes技术的成熟,Service Mesh微服务架构正在悄然崛起。微服务架构,简化了由于业务不断扩张导致的系统复杂度,解耦了各个模块的代码,使得各个子系统更易于维护和扩展,降低了服务器单机压力。随之而来的是如何有效地管理众多的服务,使得这么多的微服务能够协同作战。在微服务体系结构中,我们需要处理各个系统间的交互,需要监控整个系统的健康,处理警报、日志、负载均衡等一系列问题。

Service Mesh(服务网格)则正是为了解决微服务中的诸多基础问题而生的。例如负载均衡、服务发现、统一身份认证、断路和降级、健康检查等基础服务,都由Service Mesh框架统一提供,具体的微服务则更专注于业务层面,通过代理服务的形式将诸多的基础功能从微服务中解耦。谈Service Mesh,更多的是谈理念而不是实现,谈后端技术架构的规划,而不是业务,将原来中心化的单机系统,拆分成解耦合的相对去中心的微服务的架构,由传统的单兵作战改为多听从指挥的军队式的管理模式。从而提升了系统的扩展性,以应对更大规模的并发也无压力,实现横向扩展。

微服务将原有的代码调用方式从直接调用改为了远程方法调用,解耦代码牺牲的是性能,当然在当业务量不断增大的情况下,牺牲内网的一点网络延迟换来的收益还是非常值得的,借助Grpc服务可以很好地实现服务间地调用。借助Docker简化整个系统运行时的部署运维压力,通过Kubernetes来统一编排容器以更好地实现服务网络,实现后端系统的治理,将一个个微服务放进容器,由Service Mesh提供底层统一的基础服务,各业务层微服务统一接受底层基础服务的管理,例如服务发现,健康检查,日志监控等实现一套完善的可扩展的,复杂度相对较低的后端系统架构,而Kubernetes、Docker这些技术为Service Mesh提供了一个高效、零污染的部署环境,更高效地辅助Service Mesh的发展。