前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原生应用 “0” 代码改造,无侵入接入,纵享丝滑般上云体验!

原生应用 “0” 代码改造,无侵入接入,纵享丝滑般上云体验!

作者头像
腾讯云中间件团队
修改2021-07-16 17:40:08
1.6K0
修改2021-07-16 17:40:08
举报

导读:您还在为代码改造而感到烦恼吗?您还在为云平台各种条条框框所限制而闷闷不乐吗?您还在为业务与云服务框架耦合耿耿于怀吗?同志们,福音来啦!最新版腾讯微服务平台 TSF 重磅推出原生应用接入方式,无需改造一行代码,无需重新编译,无需重新构建程序包,原生 Spring Cloud 应用直接上!

作者介绍

张培培

腾讯云微服务团队高级工程师

TSF Mesh研发及负责人

热衷于云原生和开源技术,在容器、Service Mesh、消息队列、区块链等领域拥有丰富经验,目前致力于Service Mesh 技术的落地和推广

背景介绍

Spring Cloud 提供了微服务系统架构的一站式解决方案,并利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控、分布式调用链等,通过 Spring Cloud 提供的一套简易的编程模型,我们可以在 Spring Boot 的基础上轻松地实现微服务项目的构建。

然而,这仅仅是帮助开发者开发微服务应用带来了便利,最终开发出的应用需要在生产环境运行起来,因此,我们还需要:

  1. 稳定的运行环境,如虚机环境或者容器环境,并能对微服务应用进行生命周期管理。
  2. 高可用的注册中心,Spring Cloud 虽然支持使用  Eureka、 Zookeeper 或 Consul 实现服务注册发现,但需要我们自行搭建并保证其高可用。
  3. 统一的控制平面对服务进行治理,Spring Cloud 整合了大量的服务治理组件,但没有一个统一的控制平面进行管理,这对大规模的微服务治理带来了不少的压力。
  4. 可视化的数据运营服务,如日志服务、监控服务、分布式调用链服务,如 Spring Cloud 通过引入 Sleuth 实现分布式调用链,并和 Zipkin、HTrace、ELK 兼容,但这些后端服务需要我们自行搭建并保证其稳定性。

也就是说,我们开发者开发完应用、构建好 Jar 包也只是第一步,要让应用稳定运行和持续运营,还需要一个微服务平台来满足上面的要求,这正是 TSF ——腾讯微服务平台 (Tencent Service Framework)的价值所在:

  1. TSF 提供了一站式应用生命周期管理服务。提供从应用部署到应用运行的全流程管理,包括创建、删除、部署、回滚、扩容、下线、启动和停止应用并支持版本回溯能力。
  2. TSF 提供了高效的服务注册发现能力。支持秒级的服务注册发现并提供本地注册信息缓存、服务实例注册发现异常告警、注册中心跨 AZ 区容灾等完善的高可用保障机制。
  3. TSF 提供了细粒度服务治理能力。支持服务和 API 多级服务治理能力,通过配置标签形式进行细粒度的流量控制,实现灰度发布、就近路由、熔断限流、服务容错、访问鉴权等功能。
  4. TSF 提供了立体化应用数据运营。提供完善应用性能指标监控和分布式调用链分析、服务依赖拓扑、日志服务工具,帮助您高效分析应用性能瓶颈及故障问题排查。

既然 TSF 满足一切运行要求,那对于一个原生的 Spring Cloud 应用,是否能直接接入 TSF 运行起来呢?

原有接入TSF方式

TSF 支持原生 Spring Cloud 微服务框架,但对于旧版 TSF(v1.27或之前版本),Spring Cloud 应用需要做些改造才能接入;

旧版 TSF 支持普通应用和 Mesh 应用两种接入方式。

对于普通应用接入,需要进行 SDK 依赖和注解代码的改造:

  • pom.xml中引入TSF对应Spring Cloud版本的SDK依赖

  • 向 Application 类中添加注解 @EnableTsf:

对于 Mesh 应用接入,以虚机部署为例,则需要按照 Mesh 方式构建程序包:

1. 添加spec.yaml 文件

2. 添加 start.sh 启动脚本

3. 添加 stop.sh 停止脚本

4. 添加 cmdline 进程执行命令文件

可以看出,无论是普通应用接入还是 Mesh 应用接入,都需要做些改造才能接入 TSF,这样势必是带来一些问题:

  1. 虽然两种接入方式对于单个微服务的改造量不大,但对于大规模应用的项目改造量将是巨大的。
  2. 对于普通应用接入,引入了 TSF 的 SDK 依赖,而 TSF SDK 的依赖包与业务的依赖包及其造成版本冲突,也就是需要业务找到并修改对应的冲突包版本。
  3. 由于引入了 TSF 的 SDK 依赖,业务代码也即和 TSF 平台强耦合,这对不希望和云厂商平台耦合的用户来说非常的不友好。

那 TSF 有没有一种接入方式,既不需要引入 TSF 依赖、改造代码,也不需要重新构造程序包呢?

原生应用接入方式

新版TSF(v1.28)来啦!

推出第三种接入方式——原生应用接入,支持原生 Spring Cloud 应用真正的无侵入接入,无需改造一行代码,无需重新编译,无需重新构建程序包,现有应用 Jar 包直接部署接入 TSF !

登录 TSF 控制台,部署原生 Spring Cloud 应用仅需简单 个步骤:

1. 创建资源,虚拟机集群或容器集群

2. 创建应用,应用类型选择【原生应用】

3. 导入原生 Spring Cloud 应用 Jar 包或者上传镜像包

4. 创建部署组,部署原生 Spring Cloud 应用

我们知道,Spring Cloud 提供了丰富的服务治理套件,那接入 TSF 后这些治理能力是否兼容呢?以下是 TSF 支持的原生治理能力,基本覆盖了常用的核心能力:

除此之外,TSF还额外提供了以下几个主要能力:

总结

Spring Cloud 微服务架构核心是开发端 SDK 框架和后端支撑服务如注册中心 Eureka,通过引入 SDK 依赖和相关服务治理注解,开发人员能快速实现一个微服务应用,但对于后端支撑服务,特别是要支撑生产环境大规模的微服务接入,将面临巨大挑战;而这恰恰是 TSF 微服务平台的价值所在,TSF 提供了强大的后端支撑服务能力,无论是注册中心、数据运营中心还是服务治理控制中心,都具备工业级别的高可用性。

但原先 TSF 提供的两种接入方式,对原生应用存在其他待优化的问题;因此,为降低 Spring Cloud 应用接入 TSF 的门槛,彻底摆脱对云平台框架的依赖,让用户与云厂商解耦,TSF 推出了原生应用接入方式,无需任何改造即可享用 TSF 各种强大的服务治理能力!

往期推荐

《拥抱 Agent,“0” 代码玩转 Trace 之 OpenTelemetry 系列第二弹!》

《超有料!万字详解腾讯微服务平台 TSF 的敏捷开发流程》

《【超详细】前端程序员只需六步,实现微服务架构转型初实践》

扫描下方二维码关注本公众号,了解更多微服务、消息队列的相关信息!解锁超多鹅厂周边!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云中间件 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者介绍
  • 背景介绍
  • 原有接入TSF方式
  • 原生应用接入方式
  • 总结
  • 往期推荐
相关产品与服务
微服务平台 TSF
微服务平台(Tencent Service Framework,TSF)是一个围绕应用和微服务的 PaaS 平台,提供一站式应用全生命周期管理能力和数据化运营支持,提供多维度应用和服务的监控数据,助力服务性能优化。提供基于 Spring Cloud 和 Service Mesh 两种微服务架构的商业化支持。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档