日调度万亿次,微服务框架TSF大规模应用——云+将来峰会开发者专场回顾

欢迎你们前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~前端

演讲者:张浩 腾讯云中间件产品负责人java

背景:众多开发者中,必定经历相似的甜蜜烦恼,就是当线上业务规模愈来愈大,系统分支发展愈来愈多的时候,初期上线的成就感很快就会被系统间数据不兼容、不通畅,折磨得精疲力尽,每次模块更新都是牵一发而动全身。腾讯云微服务框架TSF就能够为你们解决数据孤岛以及重复造轮子的问题,提供了简洁易用的代码入口,将复杂的底层网络、服务器部署接口化,使开发者更易用。

本文整理自腾讯云中间件产品负责人张浩在腾讯云云+将来峰会上的分享内容。算法

你们下午好!我是来自腾讯云中间件产品负责人,我叫张浩。很高兴今天能来到广州这样一个工业、金融、制造等很是发达的城市,和你们分享腾讯云微服务的一些实践。spring

刚刚前一个主题的负责人邹辉是腾讯云 PaaS 产品总监,可能已经讲了不少DevOps和微服务结合的理论和落地的工具,我是接着详细讲讲腾讯云,除了容器、DevOps工具之外,在这以上咱们抽象出来的一套叫作TSF的平台可以帮助开发者解决什么问题。数据库

首先就微服务这个概念,我本身的理解,把它简单用一句话来说,传统的冗余、耦合的IT架构,我经过一些互联网手段和工具,把它解耦成为单独的耦合的微服务,这样开发团队能够拥有独立的技术站,快速迭代作一些小步快跑和升级,这样很好的应和互联网时代,作一些业务上的创新。可是每每运营总监下决心作微服务并非最艰难的,每每是咱们作了决定以后,可能团队整个公司的价值观还有不少领域跟不上,好比说咱们采购了很是多的像传统的硬件和设备,买一些总线服务,好比说工业开发者尝试用彻底开源的产品搭建本身的生态系统,发现有不少线上的问题解决不了。腾讯云推出了TFS的微服务平台,它的目标是相似于乐高积木式的工具和平台,去协助咱们全部的开发者更加聚焦业务的开发,让你们的精力聚焦在作业务逻辑的开发和上线,而不是去造轮子开发工具。后端

TFS的能力介绍我分红两部分来说,一部分是面向开发者的能力,一部分是面向运维。安全

先讲开发者的能力,腾讯是用一种很是开放包容的心态和社区结合,一块儿参与这个事情,腾讯目前在参与比较深刻的是在spring Cloud的微服务框架里,在场的开发者我来以前看一下,有不少java的开发者,对这个社区应该是很是熟悉的,腾讯在spring cloud有很是深刻的迭代和对这个技术的贡献,最大的一个特性就是一个spring cloud的商业版,解决了社区里面没法解决的问题。其次,在TFS这个平台上,像一些java的开发者,用spring作开发的话,在兼顾平台过程当中也是很是的便利,很是方便,腾讯云这一块还整合了腾讯内部的一些中间件的产品,包括消息队列、API网关、等一些中间层服务,让开发者在微服务开发过程当中不须要去选择复杂的云的API,直接在云服务器来的时候拉取运用,这是咱们在这方面的实践。还有一个词很火叫Service mesh,可称为微服务的3.0时代。服务器

腾讯将在6月份左右推出咱们本身的Beta版本,Service mesh在一些异构系统,在多语言开发者的状况下,能让不一样的开发者更加聚焦本身的业务逻辑,把服务之间互相访问、发现复测、覆盖均衡、降级服务等等都交给服务网格去处理,会更加聚焦。微信

第二部分的能力,咱们讲微服务,咱们讲服务框架,腾讯基于spring提出了新版本,在这个注册中心加入了自研算法,咱们作到在深圳和广州的双城机房里能够作愈合,一旦一个机房中心挂掉了,咱们能够跨机房作一个服务发现,注册和访问。咱们的服务框架在协议的支持方面也有比较丰富的支持,有基于RPC的高性能框架,传统设备私有协议也会兼容。网络

面向开发者的第三部分的能力,腾讯云提供很是全面的从逻辑到物理上的资源隔离、生产测试、预发布能力。做为现场的开发者或者架构师,在作微服务设计过程当中,第一部分是要怎么样划分基础资源的计算、网络、环境的资源问题,第一步要把咱们购买的物理机、虚拟机等等服务器资源要利用起来,同时在构建DevOps的测试构建过程当中,不能出现一些服务抢占、资源抢占甚至是更严重的事故。因此基于这个空间,咱们提供了很好的生态环境和云测试环境的隔离能力。

TSF这个平台是和tencent hub是无缝链接的。接下来第四部分是我面向开发者要介绍的是分布式事务,这个事情在这几年会获得愈来愈大的关注,怎么理解呢?如今有很是多的互联网业务是跨公司的,我上周才刚见了客户中石化,我去加油站加油,四百块钱一箱油加了以后要买单,常常会出现四百块钱的结算是首先在加油站的支付网关有优惠券作减免,其次在微信支付的网关作一次结算,最后微信支付的背后,关联了农行的信用卡,我要作第二次的折后结算,你们就会发现,我做为开发者要知足这种前端运营团队给我提的复杂运营活动,我在IT层面要作很是复杂的一次性处理,怎么解决?特别是这种中石化,微信支付和农行的结算网关的数据库都不在一块儿,是跨公司,腾讯基于TCC的分布式事务的规范,推出了自主知识产权的分布式事务平台,去知足这种很是复杂的跨公司、跨部门的事务管理能力。

接下来的能力是讲讲微服务的网关服务。这个公安网关也很是重要,常常咱们的微服务开发者会有几个常见的诉求,第一个我多是一个大的央企,下面有各个子公司,A部门和B部门互相的业务调用,就会发现是跨机房的,多是跨网络的,怎么样把我后端的服务安全可靠的暴露出去,让个人合做团队进行调用,这是第一个层次。第二个层次,我怎么样定义一个API的契约,从上至下的开发团队怎么定义好API的规范,微服务的网关是能作好这些事情,能让开发者在作服务调用过程当中,不管是网络之内的仍是跨网的均可以作到一致。

在公网关之外咱们还作了提供服务总线的能力,在作微服务过程当中,其实有好大一部分的客户群体是来自于传统客户,好比像政府、烟草、海关等等客户,他们会有这么一些特殊需求,他须要你的网关能力增长一层逻辑能力,好比说最近广东省政府省厅的项目,他须要一些敏感接口,在调用过程当中可能要增长一些逻辑判断,增长一些线下审核、流程审核,经过以后才对外开放的能力。腾讯云在面向传统市场咱们也作了很是多的努力,在网关这一块增长了逻辑判断。以及网关上调用的方式,咱们是以消息队列的方式,一对一,一对多的消息发送方式,去知足服务调用的场景。

刚刚讲了不少面向开发者的能力,咱们如今讲讲面向运维的能力。TSF有一个很是强大的,让我很是自豪的体系叫TSF的生命管理周期平台,第一是解决开发者把微服务的配置作一个集中管理,这个配置在微服务里很是重要,腾讯在每一年也有像双十一游戏业务,会有大量的弹性伸缩的场景,业务波动性很是大,这样运维的同窗常常要作预案,好比说我可能要作一些接入层、逻辑层,后台在遇到大流量的时候要作降级服务,避免具体的某个节点的热点访问,致使整个后端系统全线瘫痪,我会作这个预案,当触发的时候我能够作配置变动来达到这些效果。并且在必定程度上能作到不须要重启计算节点。第二部分能力,咱们有能力在分钟级别里面快速启动上千个服务节点,来应对突发的流量。

面向运维的同窗,咱们有一套很是完善的全链路智能的平台,讲微服务最抗拒的多是运维的负责人,为何?你看咱们的运维同窗是怎么解决问题的,最简单的,出现问题登到一台机器上看端口,哪里有问题解决哪里的,一查就完事。微服务一般是一个中间经历了数十个环节,我可能看到前端的APP点一个按纽,到底哪里出现问题就很是痛苦,怎么定位很是痛苦,如今传统的作法是我在每一个节点上抓一些日志下来来处理,这个时间是很是长的。腾讯TSF这个平台作了一个事情,咱们参考了谷歌的分布式日志论文,咱们会打入一个 trace id,咱们会把服务节点上散乱的集合在一块儿,这样能够以事件的方式去看具体某一个事件,能够清晰的排查。这一块的能力是咱们面向运维同窗作的友好的能力。

我再也不赘述里面的功能,接下来五分钟时间我跟你们讲讲微服务平台解决了哪些问题,落地了哪些案例,带来哪些价值。首先我讲讲公司财付通的案例,财付通有一个交易订单层,这东西是支撑腾讯包括手机QQ以及微信支付一些像红包等等热门应用的核心逻辑层,像风控、订单处理都在里面,TSF平台给它带来什么价值?

首先基于TSF平台作了一个微服务化,经过咱们运维平台能力,协助财付通的负责人去梳理整个IT架构,好比说我能够把非关键的调用路径异步化,除夕那天晚上,A给B发红包,12点的时候会出现系统繁忙,钱是发出去了,可是余额的更新不是实时的,这里面作了一个逻辑,把余额更新这个点他认为是能够做为一个降级处理,你余额更新慢一点不要紧,只要你的钱能发出去就行了,你们都很开心。因此经过这一点让非关键路径作了异步化,让财付通的吞吐性能获得很大提高。第二,财付通的弹性是很是大的,如何保证一些大型活动,好比双十一活动来临的时候,可以及时扩缩容,平时也能节省一些闲置的服务器呢?咱们的生命周期管理平台就很好的管理。

第二个案例我想讲讲永辉超市,跟腾讯是深刻合做伙伴。腾讯开始跟一些零售企业作新零售,新零售带来什么价值?无非是从人货场这三个地方来看。人的话,线上线下支付体验能不能获得提高,场地的话做为零售的商家,它的管理,门店效率能不能提高,还有货物,商家能不能作到智能选品,选择的商品能让消费者喜欢,怎么样下降库存,提高流转。在座全部开发者能感觉到的是永辉超市推出了像人脸支付这种很是新颖的APP业务方式,或者是像一些生鲜,买肉买鱼能够给你送到家这种新颖的零售应用。可是作到这一点是很是很是不容易的,腾讯跟永辉超市在过去的半年时间,整合成了一个攻坚的云的建设团队,从底层的IaaS开始,一步一步搭建,中间这一层很是关键,叫作零售业务中台,这个中台承载了永辉超市在IT化里面最关键的逻辑,好比说它的一些对商品质量的管理、支付的管理,全部的这些大的核心平台都进行了微服务的改造。作微服务的最大价值就是让团队更加敏捷,为何要敏捷?就是由于要支撑前端的项目,人脸识别、生鲜到家,全部的应用会给后端的中台提很是多IT的需求,如今能达到的点是两星期能发一个版本,在场可能互联网开发者可能会以为15天还能够,不是很了不得,可是传统领域15天一个版本确实是惊人的速度,这是腾讯云给永辉超市带来的最大价值。

最后一个案例是银行,甲方不容许我把姓名透露出来,因此我没有贴LOGO,这是腾讯云技术团队跟金融团队以及这家银行作的网贷业务,有点像微信的微粒贷,经过智能手段快速审批我的信用状况,快速把钱给你放款的业务。这里我想强调,我不会讲网贷业务的具体状况,我会讲作微服务不少过程当中会遇到的点,甲方会问我,大家干DevOps,干服务,是否是要把原来的都干掉,其实并非这样,其实并不会有一个项目把老的完全重构,常见的是新的业务或者是一些带互联网属性的业务,咱们会尝试有微服务的平台去承载,去跑起来。老的业务系统怎么办呢?第一个问题要解决的是通讯的问题,腾讯云这边的网关能力,咱们会作很是多传统硬件兼容,咱们去作这些协议的兼容,经过兼容以后会把原来的大的硬件做为大的微服务的子体系,把它能够访问到咱们的服务框架,服务到注册中心,这样能够作很是轻力度的服务治理,至少保证你的业务是能够访问的。

当新的系统和老的系统有一个打通以后,能够互访以后,第二阶段就作更进一步的重构,协助作落地细颗粒度的服务治理,service mesh能力的点,咱们把原来的能力经过service mesh的方式作重构,这样从老到新有一个很是好的过渡过程。最后这些是咱们平台在面向一些传统行业,好比像工业、零售、能源、交通领域有很是多的落地实践,我也但愿今天在场的合做伙伴能一块儿跟咱们把微服务这件事作好,谢谢你们。

更多相关资料,请点击下方连接获取:
日调度万亿次,腾讯TSF微服务平台最佳实践.pdf

问答
微服务架构:跨服务数据共享如何实现?
相关阅读
微服务调用链追踪中心搭建
如何从传统单体架构转向微服务
云存储:面向企业的7项必备功能

此文已由做者受权腾讯云+社区发布,原文连接:https://cloud.tencent.com/dev...

欢迎你们前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~

相关文章
相关标签/搜索