文 | 王健 on 中间件 前言Service Mesh 的概念自 2017 年初提出之后,受到了业界的广泛关注,作为微服务的下一代发展架构在社区迅速发酵,并且孵化出了诸如 Istio 等广受业界关注的面向于云原生 (Cloud Native) 的微服务架构。目前阿里、华为云、腾讯云都在 Service Mesh 上投入了大量精力进行研发和推广。阐述和讨论 Service Mesh 架构的文章目前网络上已经非常丰富,在此不再赘述。本文主要阐述 Service Mesh 架构在有赞是如何一步步发展和落地的,期望能够给读者带来一定的思考和借鉴意义,并对 Service Mesh 架构能够解决的问题和应用场景有进一步的了解。同时,有赞 Service Mesh 架构发展的过程也正是有赞微服务架构的演进过程,期待能够给正在进行微服务改造的团队带来一定的启发和思考。
一、缘起
有赞初期,使用的是 Nginx+PHP-FPM,所有的业务逻辑代码都在一个叫做 Iron 的 PHP 代码仓库里,是一个典型的单体应用 (Monolith),整体架构可以简单的表示成下图:该架构在有赞初期,团队规模比较小,且业务逻辑相对比较简单的时候,很好的支撑和承载了有赞的核心业务。但是,随着有赞业务和团队规模的极速发展,单体应用的缺陷愈来愈凸显: