微服务架构下路由、多活、灰度、限流的探索与挑战

导语

2022腾讯全球数字生态大会已圆满落幕,大会以“数实创新、产业共进”为主题,聚焦数实融合,探索以全真互联的数字技术助力实体经济高质量发展。大会设有29个产品技术主题专场、18个行业主题专场和6个生态主题专场,各业务负责人与客户、合作伙伴共同总结经验、凝结共识,推动数实融合新发展。

今年6月,腾讯宣布内部海量自研业务实现全面上云,成为国内最大规模的云原生实践,累计节省IT成本超过30亿元,充分显示腾讯云的产品、技术和综合服务能力。

云原生技术在云计算 PaaS 的应用已经迈入深水区,腾讯云微服务和中间件产品基于客户业务落地实践,在产品能力、可用性和可运维性等多个方面进行了深入的优化和落地。本次大会设立了微服务与中间件专场,本专场从产品研发、运维等最佳落地实践出发,详细阐述云原生时代,企业在开发微服务和构建云原生中间件过程中应该怎样少走弯路,聚焦业务需求,助力企业发展创新。本篇为微服务与中间件专场第一个演讲议题的干货集锦,欢迎大家收看!

本文将从以下五个方面展开,对微服务架构下路由、多活、灰度、限流的探索与挑战进行深入解析。

1、微服务概述

2、测试阶段最佳实践

3、发布阶段最佳实践

4、生产阶段最佳实践

5、微服务架构总结

微服务概述

企业架构演进之路

应用层

最早的应用架构,也就是IT系统通常都是一个单体架构,随着技术的发展与进步,出现了 SOV 这种面向服务的架构,一直发展到现如今,最流行的架构就是微服务架构。

单体架构:

  • 紧耦合,系统复杂,牵一发而动全身
  • 重复制造各种轮子
  • 完全封闭的架构

SOA架构包括接口层、逻辑层和数据层:

  • 通常通过 ESB 进行系统集成,松耦合
  • 需要集中式、计划内停机扩容或更新
  • 团队庞大,沟通成本高

微服务架构:

  • DevOps: CI/CD, 全自动化
  • 可扩展性:自动弹性伸缩
  • 高可用:升级、扩容不中断业务
资源层

随着应用层的发展,资源层的发展也随之改变,对应单体架构的时候,大家都还是 IDC 基础设施,这是第一阶段;到了第二阶段,大家开始慢慢上云,就有了云计算与虚拟化技术;到了第三阶段,大家开始探索怎么去做容器化;随之到了第四阶段也就是现在,大家又开始探索怎么去做 Severless 无服务器的这种方式。

企业架构演进下的挑战

到了微服务架构之后,大家又想要去实现更多的场景,比如 Devops、架构的可扩展性、架构的高可用以及多环境路由、发布等,接踵而至的就是层出不穷的挑战。

如何做流量路由?

如何保证多活容灾?

如何实现金丝雀、蓝绿发布?

如何实现全链路灰度?

如何扛住流量洪峰?

接下来,我们就探讨一下在以上挑战之下的微服务实践。

测试阶段微服务的实践

测试阶段:解决多测试环境的流量路由问题

痛点

微服务系统中,在开发测试时,如果有多团队同时开发,或者多系统需要联调,每次都需要部署全量服务来进行测试。如何做到仅部署本次有变更的服务,其他服务通过流量动态路由的方式复用基线环境服务资源,成为这种微服务测试阶段的一大痛点。

目标

1、节约资源成本,开发/测试按需申请,用完即弃;

2、提升研发效率,摆脱大量的本地化配置的工作;

3、实现跨环境的联调,不用争抢不同的测试环境。

为了实现这个方案,需要用到微服架构里面的两个组件,一个是入口层的网关,另一个是服务治理框架例如服务网格等。

如何实现呢?

如下图所示,在测试环境里面通常会有多个环境,分为基线环境和特性环境,在测试的过程中,团队1想要去测左边蓝色的特性环境,团队2想要去测右边绿色的特性环境,这个时候就可以通过服务治理的框架来实现。

实现方案

1、实例打标

K8s注册场景:在workload上通过添加annotation打上环境标签。

微服务框架注册场景:对服务下所有实例进⾏分组,通过标签能够区分部署的环境。

2、流量染色

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值