关于Service Mesh
微服务架构不是银弹,在业务逐渐增长的过程中可能会遇到以下问题。
- 业务关注服务间通信,业务之间的通信会导致业务的迭代速度变慢。
- 基础设施组件升级比较困难,比如说两个应用用的服务降级是同一个组件,依赖基础组件的业务越多,越容易出现问题。比如业务团队的业绩是做业务,而基础设施团队的业绩是让业务团队升级基础组件,但是业务团队很忙,这个时候就很麻烦了。
- 在微服务之间如果跨语言的话,虽然可以通信,但是通信组件还是很麻烦的,每种语言一套基础设施的话,成本太大了。
我们能不能只关注应用代码,其他的东西都不关注呢?
那么ServiceMess做了什么事情呢,服务网格,其实最早由Linkerd公司提出来的,2016年第一次公开使用,在2017年初进入国内。
Service Mesh是一个基础设施,用于处理服务间的通信,云原生应用有着复杂的服务拓扑,而Service Mesh负责在这些拓扑中实现请求的可靠传递。在实践中,服务网格通常实现为一组轻量级网络代理,它们与应用程序部署在一起,而对应用程序透明。
ServiceMesh重点用来负责拓扑中请求的可靠传递,与应用程序分离但是又部署在同一台服务器,则可以分开升级。
ServiceMesh优点:
- ServiceMesh独立进程,独立升级
- 业务团队专注于业务逻辑本身,无需关注通信的可靠性
- 一套基础设施支持多语言开发
- 业务团队和基础设施团队物理解耦
云计算技术的成熟和普及以及容器技术的大量应用,为了更快地交付、降低试错风险、更快地拓展业务,云原生应用将会是未来服务演进的方向
用一句很通俗易懂的比喻来形容Service Mesh就是:
Service Mesh 是微服务时代的 TCP/IP 协议。