作者:竹达 赵宇

布景

CPaaS(cainiao platform as a service)是以公有云为基座,结合先进的云原生理建造的企业级 DevOps 的 PaaS 渠道,CPaaS 首要现在首要支撑的场景:菜鸟生态的云上研制运维、菜鸟公有云 SaaS 化的才干透出、菜鸟商业化输出支撑,布置到客户的公有云、专有云环境。

在服务了菜鸟多家生态公司及部分商业化输出的产品过程中,深化客户事务场景,处理事务研制及布置痛点的过程中,积累了一些宝贵的经历。这儿咱们首要对标准云上研制流程,提高研制功率为目标建造的环境管理(云上项目环境)及削减线上版别发布风而险建造的灰度渠道的完结过程进行打开介绍。

目标

1、经过项目环境,为多分支并行开发场景供给流量阻隔及快速联调的才干。

2、生产环境完结服务灰度发布(金丝雀发布),下降改变危险。

3、微服务运用具有高雅上下线才干,避免启停过程中带来的服务调用犯错问题。

调研阶段

微服务流量管控

咱们首要调研了开源自建的计划。在调研时咱们发现,开发和保护开源 SDK 计划的本钱非常大。需求对 Spring Cloud 和 Dubbo 这些微服务结构以及 RockeMQ 这类音讯中间件非常了解,才干精确地找到各个结构的增强点进行定制化开发。

除此之外,事务方运用的微服务结构版别也是跨度很大,保护这些不同版别的微服务结构适配,也需求投入大量的精力。

最重要的一点是,运用开源 SDK 自建的计划,开发事务的同事,需求在运用的开发和布置运维的流程都感知到 SDK 的存在,对开发、构建、运维的侵入性很大,很难进行推行。

后来咱们也找到了阿里集团负责中间件的同事寻求支撑,了解到中间件团队已经推出了一款面向公有云的微服务管理产品 MSE,于是咱们进行了调研。

MSE 作为公有云的微服务管理产品,具有云上的服务管控、微服务测验、标签路由、离群去除、高雅上下线等才干,与咱们的诉求彻底吻合,而且经过 agent 方法完结,对运用代码无侵入,更适合 PaaS 渠道对事务运用增加扩展。

菜鸟 CPaaS 平台微服务治理实践

图 1.1

经过与 MSE 团队同时的几回电话和会议交流之后,逐渐对 MSE 产品有了一些功用上的认知。其间在微服务管理中,咱们结合实际的事务需求,落地完结了下面 MSE 的部分才干。

菜鸟 CPaaS 平台微服务治理实践

图 1.2

落地场景

项目环境

在多分支开发的场景下,咱们一般需求同时布置多个分支。但是多个分支同时布置之后,怎么将开发自测流量与日常环境的测验流量分隔,以及怎么让各个分支具有自己独立的流量,都是需求处理的问题。

  • 流量阻隔

调研和验证 MSE 的标签路由的才干之后,完结思路:经过标签路由才干,将流量进行阻隔。

相同运用的不同分支,运用不同的 deployment 完结对版别和容器标签的管理。图 2.1 中 core 运用项目环境 c1 和项目环境 c2 均运用独立于日常环境的容器单独布置,各自的路由标签为 joint1 和 joint2。经过对流量带着流量标记的方法,完结项目环境流量的操控。

接入层运用则经过 K8s-Ingress 完结流量路由,只需求在恳求流量的恳求头中带着 x-mse-tag的标签,则能够将流量路由到对应标签的进口层运用。进口运用设置标签传递的开发,可将流经此容器的流量打标传递到上有服务。如此反复,则完结流量在整个调用链路的封闭。

菜鸟 CPaaS 平台微服务治理实践

图 2.1

  • 服务测验

在研制过程中,除了分支之间的彼此干扰需求阻隔之外,还需求从事务侧研制的视点处理服务测验的功率问题。MSE 渠道供给了微服务测验渠道,能够快速的协助开发者完结服务自测,而且咱们经过集成方法集成到本身的 PaaS 渠道中,免除本身重建的苦楚。

测验渠道支撑按照服务供给者 IP 的维度进行服务测验,刚好与流量阻隔彼此符合,能够对本身重视的项目环 境的运用容器发起服务测验完结服务自测。

菜鸟 CPaaS 平台微服务治理实践

图 2.2

灰度环境

灰度环境的意图是为了下降线上运用版别发布的危险,减小问题爆破半径。同样能够经过 MSE 供给的标签路由功用基础上完结对流量灰度的完结。

菜鸟 CPaaS 平台微服务治理实践

图 2.3

想要流量完结灰度,那么需求对流量的所有进口完结流量路由。一般咱们所感知的流量进口包括:HTTP 接入层、RPC 下流调用、MQ 服务消费、Task 使命调度。当时在 MSE 的灰度才干支撑范围内,微服务云网关、金丝雀发布、MQ 灰度均能够组合完结。

当然,这儿咱们只完结了 HTTP 接入层+RPC 的灰度才干,由于历史的原因,在接入层运用了另一个接入层(MSHA 的 MSFE,本质上是一个 tengine)完结接入层的灰度。但这儿一点点不影响与 MSE 的灰度才干完结流量的串联,这得益于 MSE 产品本身具有良好的对其他产品的兼容性。咱们只需求在进口层的运用上设置流量经过此容器时带标,即可完结灰度流量的传递。

菜鸟 CPaaS 平台微服务治理实践

图 2.4

在实际的事务灰度场景中,咱们总结了常见的四种灰度场景,均经过 MSE 完结并完结。

菜鸟 CPaaS 平台微服务治理实践

图 2.5

未来规划

在运用 MSE 的云产品之后,对 PaaS 渠道层来说,避免许多重复功用的建造。在咱们事务侧实际落地的远不止如上罗列的场景,比如:服务高雅停机、注册中心等才干,均处理了事务侧的微服务管理上的难点问题。

在完结了对项目环境及灰度发布的才干开发之后,咱们接下来对服务离群去除、运用服务列表透出、服务鉴权、本地联调布置等才干做重点重视,在下降事务侧服务运维本钱、微服务可观测、服务可用性方面与 MSE 团队加强合作,协助事务侧处理微服务管理中的痛点。

MSE 注册配置中心专业版首购享 9 折优惠,MSE 云原生网关预付费全规格享 9 折优惠。点击此处,即享优惠!