12 月 15 日,腾讯云+社区开发者大会在北京举行,腾讯云微服务平台产品负责人卢政在大会上做了《腾讯云 TSF 平台 ServiceMesh 最佳实践》的分享,在大会上,InfoQ 记者对卢政进行了采访,了解了 TSF 的设计理念和发展情况,以及应用案例等。
TSF 是腾讯云打造的微服务解决方案,其底层支持 Kubernetes 和虚拟机,框架层使用 Spring Cloud+Netflix OSS 等,同时接入 CNCF 的一些云原生技术。2018 年,TSF 在平台落地 Istio,并发布 TSF Mesh 2.0,像企业用户提供了 Service Mesh 相关的最佳实践。
关于 TSF,InfoQ 曾发布两篇技术文章,可供了解参考:
TSF 的诞生及发展历程
据卢政介绍,TSF 的前身叫 CAE 平台,最早在 2010 年在腾讯内部使用。15 年结合微服务理念进行改造,到 16 年年中,开始接入 Spring Cloud,向业界的主流技术靠拢。到 17 年,开始提炼出解决方案放到腾讯云上对外提供服务,这就是 TSF。17 年 Service Mesh 开源框架 Istio 发布,TSF 在早期就尝试使用,18 年 Istio 发布 1.0 版本,TSF 迅速跟进,推出了自己的 Service Mesh 服务 TSF Mesh 2.0. 总的来说,TSF 在技术上的发展追求的是和业界微服务的主流开源技术同步,同时在这些技术基础上做了一些创新,团队也一直在探索新技术的落地和应用。
TSF 对公众开放,是因为腾讯云之前已经解决了 IaaS 层的研发,接下来他们认为要解决开发者的问题,需要给开发者提供更好的工具和平台能力,减少应用生命周期管理、服务治理、日志监控等模块的重复开发,而这也是 TSF 的目的和价值所在。
TSF 架构
其中,TSF 提供的核心能力包括:服务治理,应用生命周期管理,配置中心,分布式事务,数据化运营能力(日志/监控/告警/调用链等)。
为了方便应用的开发,TSF 提供了中间件平台,包括分布式计算调度、配置和事务能力,微服务 API 网关,以及在 Spring 框架层面打通消息队列 CMQ/CKafka。
TSF 的容器服务基于腾讯云 TKE 容器 PaaS 平台,TKE 是腾讯云研发的基于 Docker 和 Kubernetes 的公有云 PaaS 平台,提供了完整的 Kubernetes 集群部署能力。
除了支持容器之外,TSF 还支持虚拟机环境,官方的 Istio 并不支持虚拟机,TSF 对官方版本进行了扩展,以提供更多功能,主要包括:
平台解耦,支持 Kubernetes、虚拟机、裸金属服务器环境;
新旧兼容,支持 Spring Cloud 应用、Service Mesh 应用互通,统一治理;
提供多租户隔离和管理支持;
提供调用链日志持久化,以及监控日志统一收集;
解决 Mixer 缓存穿透问题,Envoy 流量优化接管,Pilot 性能优化等;
未来还计划支持私有 RPC 协议。
在其它方面,主要是集成了腾讯云提供的能力,如容器镜像托管平台 Tencent Hub 等。
从 TSF 的发展历程可以看到,它其实是紧跟着一些关键开源项目如 Kubernetes、Spring Cloud、Istio 的脚步发展,力争将前沿技术融入到能用于生产环境的解决方案中去。在未来 TSF 也会沿着这个逻辑,继续和开源社区紧密结合,同时也会开始回馈社区。另外 TSF 的研发重点会是结合客户需求做整合和优化。
TSF 适用于想开发微服务,以及进行微服务改造的用户。目前,已有财付通网贷、零售业务中台、汽车物联网等解决方案,另 TSF 已经帮助某银行、某海关在 TSF 上落地了后台系统,使用了最新的容器和微服务技术。
(腾讯汽车物联网技术中台)
对于开发者来说,并不是所有的系统都适合用微服务来开发,卢政认为,是否使用微服务,还是要看具体的场景。比如:
面临用户快速增长,需要应用具备横向扩展能力,这种就是微服务的典型场景;
另外,当需求多变,业务面临灵活快速扩展的时候,也适合用微服务来进行快速的开发;
对于产品集成多个功能的情况也适合用微服务,将产品拆分为多个模块,每个团队负责一个服务来小规模的快速迭代。
对于稳定的系统没有必要用微服务强行改造,利用如今的混合云技术,可以做到将遗留系统与微服务做很好的对接。
微服务在互联网企业中已经有许多成功的案例,但是,深入到传统行业,微服务架构势必要做一些调整以适应行业特点。TSF 通过使用最新的技术打造具体行业的解决方案,为我们做出了有益的探索。
评论