内容概要
本文主要分析 WeiboMesh 在改造过程中对历史积累的一些考量以及适配,还有我个人对面向未来架构的思考。
从 SideCar 模式初具雏形的 2016 年末开始,WeiboMesh 就已经在生产环境逐步被摸索和打磨,并被大范围验证,这也是为什么 WeiboMesh 是目前最接地气的一个 Service Mesh 实现的原因所在。
它本身源自于微博内部对整体服务化的迫切需求,而面对微博巨大的流量和各业务线千差万别的异构服务现状,WeiboMesh 走出了一条适合自己也适合像微博这种在服务化进程中有着沉重历史包袱的团队。
WeiboMesh 的独到之处
WeiboMesh 实现了当前 Service Mesh 的事实规范,在架构中抽象的一层实现了 Service Mesh 的数据面板和控制面板,二者很好地解决了请求的可靠传输和统一服务治理问题。
那 WeiboMesh 同其他 Service Mesh 实现相比又有哪些独到之处呢?我们下面从面临的问题和解决的思路两方面来简要分析。
伴随着微服务化和云化技术的普及,服务间的通信方式被重新定义,数据的可靠传输以及统一规范化的服务治理是大家必须面对的问题。如何应对这些问题?
微博多年来积累了一套基于 Motan RPC 和混合云的完备服务化体系,基于我们面临的问题和当时的现状考虑,解决思路很简单,通过 RPC 跨语言来完成数据的可靠传输及服务间的依赖调用,同时复用我们强大的 Client Side 服务治理体系来实现服务的统一规范化治理,以保障服务的高可用。
但是在演进的过程中发现跨语言 RPC 的支持其实没有那么大的困难,反倒是在各种语言的 Client 端都要实现 Client Side 的服务治理体系,难度超乎想象。于是我们削薄了集成了复杂治理功能的 RPC Client,将这些通用的服务治理功能抽象到了 WeiboMesh 中统一实现。