前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >卢政:微服务与ServiceMesh在TSF平台的应用与实践

卢政:微服务与ServiceMesh在TSF平台的应用与实践

原创
作者头像
腾讯云开发者社区技术沙龙
修改于 2018-12-25 02:26:24
修改于 2018-12-25 02:26:24
1.7K0
举报

12月15日,由腾讯云主办的首届“腾讯腾讯云开发者社区开发者大会”在北京举行。本届大会以“新趋势•新技术•新应用”为主题,汇聚了超40位技术专家,共同探索人工智能大数据、物联网、小程序、运维开发等热门技术的最新发展成果,吸引超过1000名开发者的参与。以下是DevOps分会场的演讲内容,稍作整理,分享给大家。

其实腾讯云上很多产品,微服务的架构是区别于运维发布的东西,它更多的是设计理念。平常谈微服务架构,其实就是今天的主题TSF。

这是一个架构的路线图,最初企业可能是一个单体架构,能够满足快速迭代的需求,今天的企业随着业务规模的增长逐渐演进像主题结构,最近几年随着互联网用户的增长,随着企业里面服务数量的增加,以前的主架构可能面临一些瓶颈,微服务的架构其实是说我们服务在启动了时候,会有注册中心,从注册中心获取其他服务的实例列表。

微服务应用只是其中的一个部分,以前人们用微服务的时候,他自己会下载Jar 包,自己去搭建服务中心,自己去搭建自己的ES,自己构建自己的一个发布系统。微服务只是其中的一环,围绕微服务需要很多周边系统的建设。

这是以前第一批采用微服务的国内企业做法,除了开源社区提供了一些开源的组件包以外,很多都是需要自己建设的。包括服务自己能力的建设,服务自己的能力包括了配制管理的能力,包括分布式系统的搭建,这些工作都需要企业关心,这些工作我们认为凡是标准化的工作都应该标准化,这也是云的思想。

这里面摘选了一部分公司内部的对话,开发的同学要接受很多新的理念,我们看到有的工程师可能会有一些抱怨,包括版本回滚方案,这个都是我们在现实当中会遇到一些问题,这些对于传统企业来说,需要大都构建一个平台,这个成本是非常高的。

其实这个自然而然让我们想到了微服务的架构,其实就要清楚的划分出边界,哪个是企业需要自己定制化的东西。微服务注册、鉴权、限流、降级,这些能力是可以标准化的,因为只要修改一些配制、参数就可以标准化。虚拟机应用发布也是一种发布能力,发布是可以标准化的流程,像运维,就是日志采集,这些东西是可以直接做产品化的东西,对外输出,而不需要每个企业开发这样的系统,一是难以做到运维,二是它的质量没有办法做好很好的保证。

在定义了这些标准化的时候,把这些能力做一个产品化,用户关心的是一个业务逻辑,业务逻辑如何去变成一个程序,其实我们做开发的都知道,我通过不同的语言框架可以实现这个东西,其实我们更建议往开源这条路走。

容器化的应用发布管理,集成TSF服务注册发现、调用链、基础监控、RPC服务监控,这些做一些优化和改造。有一些能力,比如说像限流,Spring cloud没有相应的组件,他本身没有把限流的能力做一个组件提供给用户,我们也提供了一些自研的能力,像限流、路由这些能力,都是我们进行改造和优化的。

另外,关于服务网格能力的输出,我们知道在谷歌推出 istio之前,有一些数据面的选择,比如说像Envoy , Conduit,我们最终选择了Envoy,因为谷歌整合了几家做 Mesh的厂商,最终控制面我们采用了Istio,数据面上采用了Envoy 进行组合,在这个基础上我们进行了封装,同时我们对它进行了优化。可以看到整个TSF没有自己造轮子,他一部分是基于业界别人的开源标准,如果用户直接用了服务网格的思路设计他的框架,那他很好的迁移到云上来,这样也降低了开发者迁移上云的成本。很多时候并不是说我选用哪个虚拟机或者容器,我们知道有些客户,比如说能力比较强的互联网客户,他可能自己自研了这样一套服务框架,这样的能力不是每家企业都具备的,腾讯云在完善了一些基础的能力之后,今天的分会场其实是一个开发者的分会场,帮助开发者更好的服务应用。

这是TSF在SpringCloud方面的优化,是基于开源Netflix OSS、Hashicorp服务的商业化封装,比如说配制加密组件,还有一个CLOID还支持API级别的服务路由、鉴权、流量控制。

关于TSF的优势,TSF可以做到同一个机房的服务能力,服务中心本身是微服务框架里面,非常关键的一个组件,微服务启动的时候,你需要注册到服务中心,然后通过服务中心发现其它的微服务,我们能做到同城跨可用区的能力。比如说在广州某个区我们部署了用户的代码,我们发现广州一区部署的注册中心挂了以后,用户的微服务信息是能够无缝地接到了二区。另外一种,机房也会挂掉,那我们能够很快的迁移到广州二区,广州二区也部署了同样的微服务,一个是基础层面的容灾,一个是业务层面的容灾。

ServiceMesh,重点可以关注(英文),ServiceMesh被定义为下一代微服务平台,核心组件有4个:Envoy、MIxer、Pilot、Auth,Envoy。ServiceMesh和TSF的结合点有哪些?用户在发布的时候不会关注sidecar,把sidecar进行发布,我们TSF会帮助你把ServiceMesh运行起来,帮助你把流量进行一个托管。这个的好处,以前已经写的代码不需要改造,就可以直接迁移到TSF平台上。那MS的应用和以前的老应用可以进行一个部署,MS可以帮助你做请求的转发和响应。优势包括以下几点,就像我们支持多协议、丰富的规则,支持访问控制,支持服务的健全,这些能力我们认为是sidecar和后台组件之间的事情。

我们发现TSF和ServiceMesh是紧密结合的,他的应用和K8S需要进行一个部署和发布。TSF针对这个场景进行了一个优化,我们发现我们有的用户他可以对容器不熟悉,他可能只对虚拟机比较熟悉,用微服务虽然跟容器有一个很好的契合点,因为容器是支持资源的利用率非常高,但是有些用户,我们要意识到发展进程,有些传统的企业对容器不大熟悉。

我们是如何做到和K8S的结耦的,一个是Pilot/Mixer,我们目前采用Consul作为一个配制管理的中心,去增加配制管理的能力。还有一部分,Pilot无法获取服务节点健康信息,这个时候Envoy通过HDS接口上报健康信息给Pilot。我们TSF里面,通过Pilot、agent增强能力,支持启动时根据描述文件自动注册服务。新增APIserver组件、接口consul、负责配制中心。

HTTP/2是一个经过实践检验的标准,TSF团队建议将私有化协议进行分装的过程,HTTP/2的方式,把原数据、请求的服务名放到HTTP/2Headers里,请求参数,传输body序列化,这是TSF支持的一个思路。

接下来是TSF平台上的一些开发者和运管平台的能力,开发者在TSF平台做的事情非常多,像集群、空间管理,我们在私有化环境中,会支持更丰富的容器,TSF可能不是一个容器发布平台,所以我们定义了一部分对接容器的标准,在私有云的场景下,我们会和其它的容器平台进行一个对接,我们供给用户更多的选择。

服务和服务之间存在同步场景、异步场景,这里画的CMQ,我有消息可能不是同步返回的,那可能需要建一个异步返回。网关对一些日志、监控进行认证,像TSF微服务平台以及其它云服务器的一个入口产品。

分布式事务,在分布式场景下,我们会经常遇到数据不一致的问题,这里面举个例子,我们的客户他就是有一个场景,他们想做一个促销活动,促销活动涉及到两方面,一方面他们会有减免券或者折扣券的方式,你不能说我扣了这个券,但是你支付失败了,这个时候能保证你的券加回来,或者你的券扣失败了,但是你钱加回来,你涉及到多个服务的时候,必须要确保事务数据的一致性,TSF提供了一个基于TCC的解决方案,确保一致性,在公司内部已经在大型的金融项目里面经过了认证和实践。

开发者关心的其实不仅仅只是这些,包括我们提供了像SDK,提供一些代码服务编排的能力,都会在官网里面进行呈现。后面介绍一些运管平台的能力,这张图想讲的是服务治理的能力,TSF平台,比如说对服务鉴权,我对来源的请求,可以屏蔽或者认证,服务降级,我保证部分服务,同时限制部分服务为较低优先级,这些能力都是我们平台提供的管控能力。在ServiceMesh场景下,用户不用关注这些,他会做流量的控制和能力,用户只需要做一个参数的配制就可以了,这个如果让每个用户开发,其实成本是非常高的。

我们谈完应用、发布、上线,我们发现有时候打开一个页面的时候,非常慢,我们打开分析工具看请求耗时的分布情况,但是分析工具可能只能解决前端页面,但是你没有办法知道请求经过了后台之后,它的每个环节的情况,这张图展示的是服务与服务之间一个依赖关系的图谱,你可以看到服务整体运营的情况。左上角的图,是请求正常和失败的情况,本身我们也做到了日志的联动,比如说我知道了这个请求,我可能知道与它相关的日志请求,我们做到了调用链和日志的联动。

接下来是一些实践案例。这是一个客户案例,有一个解决方案的系统,这个客户会发现,他的特点就是说,他以前不是用的微服务架构,他以前采用了一些传统的设计,比如说定制化的通讯协议,比如说他用了Tuexdo,后面他想一步步迁移到腾讯云,我们通过ServiceMesh思想,去托管他的私有化协议,去解决私有化场景下的微服务框架。

另外,新零售场景下的微服务实践,永辉超市,大家可能很直观的看到永辉超市里面的人脸识别或者生鲜上门的业务,大家没有看到支撑这些业务的能力,这些能力可能并不是每一位C端用户都能够感受到的,如何在短期内快速构建这些应用和服务,是通过技术平台的能力支持的,我们通过一站式微服务平台,为零售业务中台提供无线扩展能力,我们在15天内快速帮助永辉超市构成一个迭代。

这张图是我们在全球合作伙伴大会上汽车行业的一个分享者,介绍了TSF作为车流网的一个技术总干支持应用开发,这部分能力在车连网的一些KS里面都广泛应用了。这是在每个车上可以看到车展的路况信息,底层用的是TSF的服务。这是他们车流网技术终端的架构图。这是我们落地的一些客户案例,整个TSF客户群体非常广泛,包括了像零售、汽车、烟草、政府,它本身是一个新的理念,这个理念给用户提供一些指导和落地操作,让用户体验到微服务能够帮用户带来一些价值,这些价值提供给客户,无论是收入上还是理念上,带来实际的收益。


3.卢政 腾讯 TSF 微服务平台,助力企业 IT 架构转型.pdf

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
Hadoop的前世今生
HADOOP DISTRIBUTED FILE SYSTEM,简称HDFS,是一个分布式文件系统。它是谷歌的GFS提出之后出现的另外一种文件系统。它有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案。
week
2018/08/24
4450
Hadoop的前世今生
Hadoop(一)Hadoop核心架构与安装
大白话,Hadoop是个存储数据,计算数据的分布式框架。核心组件是HDFS、MapReduce、Yarn。
Chester Chen
2022/08/18
6720
Hadoop(一)Hadoop核心架构与安装
大数据学习之路05——Hadoop原理与架构解析
Hadoop 是 Apache 开源组织的一个分布式计算开源框架,是一个可以更容易开发和运行处理大规模数据的解决方案,它提供了一套分布式系统基础架构,允许使用简单的编程模型跨大型计算机的大型数据集进行分布式处理。
汪志宾
2019/05/24
8.6K0
大数据学习之路05——Hadoop原理与架构解析
Hadoop的概念
Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,它可以使用户在不了解分布式底层细节的情況下开发分布式程序,充分利用集群的威力进行高速运算和存储。
我脱下短袖
2019/12/23
1.2K0
Hadoop的概念
Hadoop基础知识及部署模式
在开始Hadoop的部署之前需要了解其基础知识及部分原理,由于本文以部署的介绍为主,篇幅有限,因此只会对这部分内容作简单的阐述,后面有机会会撰写专门的Hadoop原理及基础系列文章。
数人之道
2022/01/07
13.9K0
Hadoop基础知识及部署模式
简单介绍 Hadoop三大核心组件 的 架构思想和原理
大家好,我是 梦想家Alex 。之前实际上我也写了不少关于大数据技术组件的文章,例如:
大数据梦想家
2021/10/22
2.1K0
Hadoop极简入门
其实Hadoop诞生至今已经十多年了,网络上也充斥着关于Hadoop相关知识的的海量资源。但是,有时还是会使刚刚接触大数据领域的童鞋分不清hadoop、hdfs、Yarn和MapReduce等等技术词汇。
王知无-import_bigdata
2019/04/24
7810
Hadoop极简入门
hadoop(2.6)集群搭建
http://mirrors.hust.edu.cn/apache/hadoop/common/
胡齐
2019/09/23
1.2K0
hadoop(2.6)集群搭建
Hadoop体系_集团架构
自从大数据的概念被提出后,出现了很多相关技术,其中对大数据发展最有影响力的就是开源分布式计算平台Hadoop,它就像软件发展史上的Window、Linux、Java一样,它的出现给接下来的大数据技术发展带来了巨大的影响。很多知名公司都加入Hadoop相关项目的开发中,如Facebook、Yahoo等,围绕大数据Hadoop技术产生了一系列大数据的相关技术
全栈程序员站长
2022/11/03
1.1K0
Hadoop体系_集团架构
Hadoop 2.0:主流开源云架构(三)
  Common的定位是其他模块的公共组件,定义了程序员取得集群服务的编程接口,为其他模块提供公用API。降低Hadoop设计的复杂性,减少了其他模块之间的耦合性,增强了Hadoop的健壮性。
Francek Chen
2025/01/23
1580
Hadoop 2.0:主流开源云架构(三)
深入浅出学大数据(五)Hadoop再探讨High Availability(HA)集群搭建及YARN原理介绍
此系列主要为我的学弟学妹们所创作,在某些方面可能偏基础。如果读者感觉较为简单,还望见谅!如果文中出现错误,欢迎指正~ 本文主要介绍了Hadoop再探讨High Availability(HA)及YARN原理介绍,除此之外还有High Availability(HA)集群搭建的具体搭建过程。
不温卜火
2021/11/24
1.3K0
深入浅出学大数据(五)Hadoop再探讨High Availability(HA)集群搭建及YARN原理介绍
hadoop|计算框架从MapReduce1.0到Yarn
01 — HDFS 前面介绍了hadoop的分布式存储框架(HDFS),这个框架解决了大数据存储的问题,这是第一步。知道海量数据如何存储后,脚步不能停留,下一步要设计一个框架,用来玩(计算)这些数据时,资源(计算机集群)该如何调度,比如已知1PB的数据存储在了集群(1000台电脑组成)中的10台计算机(DataNode)中,现在要对这些数据进行Map和Reduce计算,该如何做呢? 在理解以下知识前,需要理解一些知识点。任何应用,比如打开一个word文档,打开QQ,都会占用一定的系统资源(CPU,内存,网
double
2018/04/02
1.5K0
hadoop|计算框架从MapReduce1.0到Yarn
从Hadoop1.0到Hadoop2.0架构的优化和发展探索详解
Hadoop1.0即第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中HDFS由一个NameNode和多个DateNode组成,MapReduce由一个JobTracker和多个TaskTracker组成。
fanstuck
2024/11/05
2.6K2
从Hadoop1.0到Hadoop2.0架构的优化和发展探索详解
一文读懂Hadoop、HBase、Hive、Spark分布式系统架构
机器学习、数据挖掘等各种大数据处理都离不开各种开源分布式系统,hadoop用户分布式存储和map-reduce计算,spark用于分布式机器学习,hive是分布式数据库,hbase是分布式kv系统,看似互不相关的他们却都是基于相同的hdfs存储和yarn资源管理,本文通过全套部署方法来让大家深入系统内部以充分理解分布式系统架构和他们之间的关系 本文结构 首先,我们来分别部署一套hadoop、hbase、hive、spark,在讲解部署方法过程中会特殊说明一些重要配置,以及一些架构图以帮我们理解,目的是为后
用户1257215
2018/01/30
3.3K0
【Hadoop研究】YARN:下一代 Hadoop计算平台
Apache Hadoop 是最流行的大数据处理工具之一。它多年来被许多公司成功部署在生产中。尽管 Hadoop 被视为可靠的、可扩展的、富有成本效益的解决方案,但大型开发人员社区仍在不断改进它。最终,2.0 版提供了多项革命性功能,其中包括 Yet Another Resource Negotiator (YARN)、HDFS Federation 和一个高度可用的 NameNode,它使得 Hadoop 集群更加高效、强大和可靠。在本文中,将对 YARN 与 Hadoop 中的分布式处理层的以前版本进行
陆勤_数据人网
2018/02/27
1.2K0
【Hadoop研究】YARN:下一代 Hadoop计算平台
一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
根据文章内容总结的摘要
别先生
2018/01/02
1.7K0
一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
搭建Hadoop3集群
强烈建议再搭建hadoop集群之前体验一下单机模式和伪分布式模式的搭建过程,可以参考以下链接:
职场亮哥
2020/10/10
1.2K0
Hadoop学习笔记—21.Hadoop2的改进内容简介
Hadoop2相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要的变更:
Edison Zhou
2018/08/20
7290
Hadoop学习笔记—21.Hadoop2的改进内容简介
大数据技术笔试题库
12、在MapTask的Combine阶段,当处理完所有数据时,MapTask会对所有的临时文件进行一次()。
杨校
2022/05/14
3.1K0
MapReduce分布式编程
MapReduce是一个分布式运算程序的编程框架,用于大规模数据集的并行处理,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 MapReduce将一个数据处理过程拆分为Map和Reduce两部分:Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。开发人员只需通过编写Map和Reduce函数,不需要考虑分布式计算框架内部的运行机制,即可在Hadoop集群上实现分布式运算。引入MapReduce框架后,开发人员可将精力集中在业务逻辑的开发上,分布式计算的复杂性交由框架来处理。MapReduce把对数据集的大规模操作分发到计算节点,计算节点会周期性地返回其工作的最新状态和结果。如果节点保持沉默超过一个预设时间,主节点则标记该节点为死亡状态,并把已分配给这个节点的数据发送到别的节点重新计算,从而实现数据处理任务的自动调度。
Francek Chen
2025/01/22
1650
MapReduce分布式编程
相关推荐
Hadoop的前世今生
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档