12月15日,腾讯云+社区开发者大会在北京举行,腾讯云微服务平台产品负责人卢政在大会上做了《腾讯云TSF平台ServiceMesh最佳实践》的分享,在大会上,InfoQ记者对卢政进行了采访,了解了TSF的设计理念和发展情况,以及应用案例等。

TSF是腾讯云打造的微服务解决方案,其底层支持Kubernetes和虚拟机,框架层使用Spring Cloud+Netflix OSS等,同时接入CNCF的一些云原生技术。2018年,TSF在平台落地Istio,并发布TSF Mesh 2.0,像企业用户提供了Service Mesh相关的最佳实践。

关于TSF,InfoQ曾发布两篇技术文章,可供了解参考:

日调度 5 万亿次,腾讯云微服务架构体系 TSF 深度解读

腾讯云 Service Mesh 生产实践及架构演进

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对官方版本进行了扩展,以提供更多功能,主要包括:

  1. 平台解耦,支持Kubernetes、虚拟机、裸金属服务器环境;
  2. 新旧兼容,支持Spring Cloud应用、Service Mesh应用互通,统一治理;
  3. 提供多租户隔离和管理支持;
  4. 提供调用链日志持久化,以及监控日志统一收集;
  5. 解决Mixer缓存穿透问题,Envoy流量优化接管,Pilot性能优化等;
  6. 未来还计划支持私有RPC协议。

在其它方面,主要是集成了腾讯云提供的能力,如容器镜像托管平台Tencent Hub等。

从TSF的发展历程可以看到,它其实是紧跟着一些关键开源项目如Kubernetes、Spring Cloud、Istio的脚步发展,力争将前沿技术融入到能用于生产环境的解决方案中去。在未来TSF也会沿着这个逻辑,继续和开源社区紧密结合,同时也会开始回馈社区。另外TSF的研发重点会是结合客户需求做整合和优化。

TSF适用于想开发微服务,以及进行微服务改造的用户。目前,已有财付通网贷、零售业务中台、汽车物联网等解决方案,另TSF已经帮助某银行、某海关在TSF上落地了后台系统,使用了最新的容器和微服务技术。


(腾讯汽车物联网技术中台)

对于开发者来说,并不是所有的系统都适合用微服务来开发,卢政认为,是否使用微服务,还是要看具体的场景。比如:

  • 面临用户快速增长,需要应用具备横向扩展能力,这种就是微服务的典型场景;
  • 另外,当需求多变,业务面临灵活快速扩展的时候,也适合用微服务来进行快速的开发;
  • 对于产品集成多个功能的情况也适合用微服务,将产品拆分为多个模块,每个团队负责一个服务来小规模的快速迭代。

对于稳定的系统没有必要用微服务强行改造,利用如今的混合云技术,可以做到将遗留系统与微服务做很好的对接。

微服务在互联网企业中已经有许多成功的案例,但是,深入到传统行业,微服务架构势必要做一些调整以适应行业特点。TSF通过使用最新的技术打造具体行业的解决方案,为我们做出了有益的探索。

专访卢政:TSF如何助力企业微服务开发相关推荐

  1. Steeltoe 2.4新增代码生成工具、全新入门指南等,助力.NET微服务开发

    Steeltoe框架现可帮助.NET开发人员创建云原生应用.随着其功能的扩充,该框架越来越受欢迎,下载量达到580万(并且仍在增加),这其中大部分的功能创新都源自于用户反馈.社区贡献和.NET运行环境 ...

  2. 时速云发布微服务产品 TMF V5.6.0 全新版本,支持独立部署,简化企业微服务架构

    互联网应用海量用户.快速迭代.不间断服务以及流量突增等业务特征促进技术架构由传统集中式向分布式和微服务架构逐步演进. 考虑到越来越多企业将微服务搬到云上,由于框架异构导致微服务治理成本指数级增加.多云 ...

  3. Spring Cloud企业微服务分布式云架构技术点整合

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构... 下面我针对于spring cloud微服务分布式云架构做了以下技术总结,希望可以帮助到大家: ...

  4. java 搭建企业应用框架_溯源微服务开发体系:一位Java开发者的转型思考

    作者丨赵钰莹 简单来说,微服务是将大型单体应用程序和服务拆分为数个甚至数十个微服务,可扩展单个组件而不是整个应用程序堆栈,从而满足服务等级协议.然而,这个过程涉及很多问题需要解决,比如拆分原则.容量规 ...

  5. 大型互联网分布式企业微服务云架构

    2019独角兽企业重金招聘Python工程师标准>>> 第一篇文章简单给大家介绍了Spring Cloud架构,我这边结合了当前大部分企业的通用需求,包括技术的选型比较严格.苛刻,不 ...

  6. 企业微服务治理的解决思路

    背景 随着业务需求的日渐复杂以及产品迭代节奏的不断加快,业务开发部门面临着前所未有的压力.为了抢占先机,用最快的速度准确把握用户需求的变化,优化开发出来的业务产品,微服务(MicroServices) ...

  7. 艾艾贴关于Spring Cloud大型互联网分布式企业微服务云架构

    第一篇文章简单给大家介绍了Spring Cloud架构,我这边结合了当前大部分企业的通用需求,包括技术的选型比较严格.苛刻,不仅要用业界最流行的技术,还要和国际接轨,在未来的5~10年内不能out.作 ...

  8. 企业微服务框架学习(二)

    说明:最近在看企业微服务的书籍<微服务设计--企业架构转型之路>,借由该博文记录一些学习归纳和感想. 一.企业架构规划 1.企业架构规划介绍 概念:企业架构规划是承接企业战略落地的一个桥梁 ...

  9. 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发...

    <ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...

最新文章

  1. python的flask框架显示柱状图_使用Python的Flask框架,结合Highchart,动态渲染图表(Ajax 请求数据接口)...
  2. DIY三通道程控直流电源
  3. golang中的闭包
  4. 数据结构源码笔记(C语言):可变长度字符串的快速排序
  5. contourArea函数
  6. 【考试战报】ORACLE OCP 19C考试通过
  7. BZOJ-2115-Xor-WC2011
  8. 计算机基础扎实,到底是说什么?
  9. [19/03/16-星期六] 常用类_Date时间类DateFormat类
  10. Linux中几个实用快捷键
  11. openGauss与PostgreSQL分区策略语法测试
  12. 为什么做网站一般不用服务端控件?
  13. Java 学习路线一条龙版
  14. TransE, TransR
  15. 了解计算机技术的课件,了解计算机课件.ppt
  16. 空间战场态势感知系统
  17. 原生JS封装拖动验证滑块方法
  18. 邮件安全防护之反垃圾邮件开源软件ASSP
  19. 日期类超详解(c++入门)
  20. Java简单的对外接口验签

热门文章

  1. 100以内 蝗 靓耸 6的c语言怎,C语言学习C6.ppt
  2. java的startswith_java startsWith和endsWith的用法 | 学步园
  3. mysql查询大量数据报错_mysql 查询大量数据报错
  4. python监听多个udp端口_Python的Socket编程过程中实现UDP端口复用的实例分享
  5. python -c带来的惊喜
  6. bert本质理解记录一
  7. 总算明白了Q-Q plot
  8. 多分类可以分成多个独立的模型来训练
  9. python下面代码是什么_python代码下面__name__= __main__怎么使用 作用是什么?
  10. java调用webservice几种方式