00:09
各位直播间的小伙伴大家晚上好,欢迎来到云家社区直播间,今天是我们燕溪学堂吴从楚专题直播的第五期,然后本期我们邀请到的是腾讯云高级工程师谢远东老师,今天分享的主题的话,主题是库斯FS加速t ke容器服务。今天的分享内容的话,会有两大部分,第一部分是云原生数据编排调度引擎flu架构分析,第二部分是使用库FS加速t ke容器应用,然后在直播开始前呢,我还是简单跟大家说一下我们的抽奖机制。然后在报名环节,我们是有抽奖激励的,奖品是有20份,直播过程中也有,然后直播过程中的话,你你如果有什么问题的话,可以将您的问题打在讨论区,我们在直播结束会随机抽取三个问题做相应解答,如果您的问题有幸被抽中,再有机会获得精美礼品一份,那接下来呢,我们把时间交给谢远东老师,由他这边给我们做讲解。
01:23
嗯,好的,谢谢主持人,嗯。那首先感谢大家在这个周四的这工作日的晚上,大家累啊,然后参加我们这样一个分享,然后我我我们也希望通过这次的技术分享,能够让大家呃学到或者了解到一些呃东西,然后。这次分享呃的主要内容主要是呃,我们之前在呃社区创呃去做的一个项目,叫这个主要是解决我们呃有类似于FS这种缓存引擎,在原生在环境下如何去进行一个数据的编排。
02:09
嗯。呃,下面简单介绍一下我自己,呃,我叫谢东,自于腾讯云,目前是在腾讯云服务T团队,主要做云AI的这架构,还有一些产产品和研。之前。嗯,就职于语音的AI公司云,担任计算平台员,呃,平常也是活跃在各种开源社,比如说呃,原生A一些开源,包括原缓存加速引擎,就是我们今天的一样一个的一个。呃,本次的分享将分为以下五个部分,呃,第一个部分是说,呃,为什么我们要创建flu的这样一个项目的,这个项目真正解决的是一个什么样的一个问,第二个主题是呃,我们怎么去定义fluid fluid它到底是什么样一个东西,然后第三个是我们将简要的介绍一下flu整体的一个架构,让大家有一个呃大概的一个认知。
03:19
第四个的话,我们会准备一个呃,简单的DEMO,这个DEMO主要的内容是通过flu在8S原环境下去去调度F种存擎,去加速T这A任务。第五个部分的话,我们会呃,从社区出发,介绍一下福瑞的社区目前发展的一个状态啊。大概是分为这五个部分。呃,在介绍福的解决什么问题之前,我们先简要的了解一下,或者介绍一下目前计算还有存储领域发展的一个趋势。
04:02
首先是计算领域啊,我们众所周知这种AI和大数据,这些数据都属于这种数据密集型的应用,当这些数据密集型的运用运行在KS或者说叫云原生环境中。这个趋势已经已经慢慢的显现出来,呃就如之前预测到我们在2023年,呃70%的AI的应用都都会运行在容器和S平台上,也就是呃两年后。另外之前也有报道称,呃的一些对外的一些服务已经是将阿帕Spark的那个调度器从慢慢切向了。然后介绍完,呃,计算的发展的一个趋势,我们看一下存储发展的趋势啊,存储发展的趋势,我们可以回顾一下数据驱动公司的一个变迁。我们可以从呃大概三个维度来看一下数据驱动架构的一个变化,第一个第一个维度就是说计算还有和存储的一个物理的关系,呃第二个就是说存储还有任务类型多样性的一个关系,第三个是呃计算的部署模式,呃这个计算模式主要是是说你的计算是弹性的,还是说呃是静态的,是是物理机还是说是容器,类似于这种关系。然后第一个的话就是2010年的时候,其实主要还是以map这种大数据任务,然后运行在HDFS这样的一个。
05:37
呃,大数据存储上面它的特点其实就是说,呃,任务的类型,还有存储比较单一,而且啊基本上都是静态部署的。呃,但是到了2015年的时候,呃,类似于flow flow在2015年的时候应该是一个版本,然后Spark应该在2014年的时候是一个版本,也就说2015年的时候,这样任任务的类型就逐渐的丰富了起来,从单一的这种任务就拓展到sparkli,包括flow这种AI的任务。
06:09
呃,同时这个存储类型也进一步拓展,从HDFS到safe到等。很多这样的不同类型的一个存储。呃,在这个存储类型拓展的同时,这个计算和存储也进行了一个分离。啊,但是2015年的时候。那个时候的应用还是一个静态的部署模式,并没有说这种弹性,像现在看到的弹性,还有容器化的一个能力。但是到了2020年的时候,计算和存储类型就就更加多样化了,就。嗯,不不仅仅是,呃,大数据任务,还有AI任务,呃,有一些图计算任务,存储类型也也也进也进一步拓展。呃,当然2012015年的时候应该是计算存储,呃,开始分离,但是到了2020年的时候,计算存储分离已经成为一个主流的一个趋势。
07:07
同时,呃。这种应用的运行环境也从之前的这种静态的一个计算的环境,变成了现在这种混合云,然后这种基于CU的一个环境。这时候比较典型的一个特征就是说我们的资源的弹性伸缩,包括网络资源,计算资源,甚至说存储资源,都都都能够按需的。来进行这种弹性的伸缩计算,就没有不会固定在某个固定的节点,当然存储也不会说呃,也不是固定的。所以从技术发展的趋势,我们呃做了下面一个总结,就是随着这些AI,包括大数据的一些应用部署到云原生环境。呃,虽然说。院生确实给这些应用的部署和维护带来一些便利性,但是也带来了一些新的技术挑战。
08:06
啊,主要。呃,我们大致分为三个部分,就是第一个挑战应该是呃,访问异构数据的数据源的复杂性,就是你你的存储你的数据源的越来越多,然后第二个问题是。你计算的一个计算存储分离导致导致缓慢的数据IO。因为要走网络。第三个问题是,嗯,就是应用和数据的亲和性没有办法感知到,就导致你的这个调调度的一个低效,调度低效,从而导致了你访问数据的一个低效,因为这些挑战都制约了数据密集应用在云原生平台上的进一步的使用。好,下面我们可以。详细的来,呃,就是分析一下上面说到的三个挑战。然后第一个挑战就是复杂的数据存储。其实呃,数据密集型的应用本身,应用本身就需要关心这种底层的一个存储的。
09:05
包呃,除了底层的一个存储,还有这种多样化的数据服务,还有一些比较low level的一些数据访问的API,所以这就增加了应用应用在云上,或者说呃,访问数据的一个复杂复杂性。为了为了解决这样一个问题,我们项目这里定义了一个比较high level的一个数据的抽象,我们把它叫我们通过这样一个抽象来隐藏异构数据源导致的这种。导致导致的这种呃,数据源的一个复杂性。导致的这种呃,运维啊的一些不便利性。第二个挑战是数据IO的一个瓶颈。其实主要是因为。呃,因为呃,计算和存储分离的这种云平台的一个架构,它为了拓展这些资源,采用的这种这样一个架构。
10:03
就引入了更大的这种IO的开销,从而使这种数据密集的应用,因为数据密密集的应用本身就需要大量的IO,就就变得非常缓慢,就像我们在我们在PPT的右边这个图一样。通过这种呃,云上的这种对象要比内存,还有就是本地SD值要,嗯,就是。这这个就访问,访问的时间就是读取相同数据的时间要多很多。另外云上的的环境的弹性的变化,通通常也会导致呃,导致没有办法进行进行一个本地的访问,只能进行这种远程的数据访问这种网络。同时也因为这个数据密集性的应用,它本身的数据要处理的数据量也是很大的,就是不仅仅是TB的,就有可能是从TB到PB,所以为了解决这样一个问题,我们引入我们,我们呃这边引引入了一个这种分布式引擎的概念来加速数据访问,通过分布式的引擎来解决,呃,那个数据密集型应用,呃,数据量大,然后。
11:15
呃数据,呃数据远程读的读慢的一个缺,呃有的两个问题。嗯,我们这边也是把这个分分布缓存引擎也进行了一次抽象,因为分布缓存引擎很多就是目前市面上,所以我们也抽象了一个概念,叫runtime的一个概念。呃,所以上半其实抽抽象有两个概念,第一个概念就是data set,主要是为了解决呃数据的问题,第二个就是我们抽象一个的概念,主要是通过分布式缓存引擎解决呃访访问时还有就是。呃,还有就是就是数据量大的一个问题,第三个。我们观察到,在云计算平台上。
12:01
面就是面,对就是。就是。对,就在在在云计算平台上,其实对于那个像大数据任务AIAI的一些应用都有一些现成的调度器,就像大数据,它是有这种。力调度器,它可以基于这种呃容量啊,基于或者说基于这种呃调度的一些策略,还有就是AI领域的话,有一些像我一些调度会有这些一些一些调度器来做。这样一个事情,但是这些调度没有去考虑到,呃,数据的一个。和数据和负载的一个联合的调度,所以说呃,你的调度调度器只能说把是把你的任务调到他,他想要的一些计算,但没有办法说把它调到你想要的一个存储节点,所以我们在K8上去设计到这样一个数据感知的一个调度策略。
13:00
就是让我们的应用,还有我们的缓存time可以自动的进行一个协同的调度。所以说,呃,上面其实都在讲flu,它到底在解决什么问题,所以我们这边就简单的定义一下fluid,它到底是一个什么样的系统。啊,它其实是能够实现呃购的这种数据源的抽象,然后通过一些自动扩容,包括缓存。这些特性来实现一些数据的加速。嗯,来为这种应用和数据来实现这种弹性的一个感知,它最终构成的是一个在原生环境下一个弹性的数据抽象和加速平台,然后我们目前也是在也已经捐献到这种CNCF,然后目前是CNCF的一个项目。呃,我们下面我们介绍一下这个分享的第三个部分,就是所有的整体的一个架构。
14:04
我们我们简要的是概,呃,就是说一下这个整体的架构,就从上到下,其实是需要呃,用户需要定义两个自定义资源,就第一个叫就像图这个架构图的左上方,第二个是。这样的一个data和它的关系是一对一的,就目前我们也是支持三种run,呃,就包括我们。我们腾讯资源的一个故事,F缓存引擎,然后我们看一下。呃,第二个部分,第二个大的部分叫operator operator它主要有两个组件,一个叫controller manage,一个叫controller control manager,它主要是负责调度。因为在呃,因为在中,我们将数据的调度问题转化为这种数据加速引擎的调度问题。然后这一个部分,它它也分为三个小的部分,呃,第一个这有三个病例run control,它分别是做呃,Data的生命周期的管理,还有就是run生命周期管理,还有就是volume的一个概念,一个一个管理。
15:23
呃,这个这个控制器,它主要是负责数据相关数据的一个创建和删除。然后右边这个是一个是一个调度器,负责根据缓存的一些信息将pod分配到一个合适的节点,然这个pod也就是你的应用的一个负载。然后这个的。也是分为两个部分,第一个叫开启啊in,这个是主要是让你的作业和你的那个数据进行联合调度的一个插件,呃,就用户不需要指定指定指定任何东西,它可以呃自动的进行一个读取,然后执行自动的识别你的你的load需要哪些数据,这个数据已经缓存在哪个节点上,我会把这个你的workload调度到那个那个节点上去。
16:16
然后这边有一个还有一个plug,这个是一个的件,是说在调度期间,因为调度期间有可能会有等,或者说呃,有一个调度时间,我会在这个调度的时间。这样一个空窗期,我会去预热你的数据,让从而让你的这个load。运行的时候都享受到这种热数据的一个优。的优势。好,下面我们简单介绍一下flu的使用。就flu,它的核心概念叫data,它本身也是一个CD,就是用户自定义资源。呃,他提供了一个数据的抽象。所以创建data是,呃,非常简单的。就是下面这个在图上这个例子其实来自于就是一个真实的客户案例,就是。
17:05
客户他的情况是这样的,他的数据训练数据的规模是比较大的,但而且已经完成了,数据敏已经放在了这种云上的对象存储上,但是验证就是它的AI训练,一个验证它比较敏感,它不能放在云上,所以它放在了云下的IDC,也就是盘中,所以这边会有两个数据源,一个数据源来自于COS11个数来自于S。然后通过这个统一视图。我一方面我们提供了一个呃,分布式缓存加速能力,一方面提供这样一个统一的视图,让不同的数据能够在同一个数据的视图下。进行这个一个调度。然后这边还有一个部分就是ity,这个可你可以手动的去指定你想把数据还有你的负载移动到那个节点。可以通过这样来动态的配置。
18:04
就创建这个下载也非常简单,你只需要写这样一个文件,然后通过keeptrl命令就可以呃去创建,一旦创建完之后,你就可以看到,就像这个PPT下的这个。我们有一个对data的一个可观测性的一个体现,就完之后你可以观测到这个数据的总数据量,包括缓存能力,也就是说它总共可以能够缓存多少数据,还有就是你目前已经缓存了多少。缓存比例。这个我们不仅提供了这个可观的性啊,我们后面还会通过这个可观性会触发一些弹性的伸缩。在第三,呃,在第三部分会。然后第二个就是说你你的应你的应用如何去使用这样一个数据,然后如何去享受到这样一个亲合性的一个调度,呃,其实这个很简单,就是在你的应用只需要你你的应用去指定一个PVCPVC的你PVC需要指定你刚才创建这个这个data set的data set的name,我们就哦我们就会通过的去自动的识别。
19:14
啊,你这样的一个配置,然后我们去会去识别目前缓存已经缓存到哪个节点,然后我会将一些信息注入到你的workload中,然后你的load就会调度到一些有缓存的节点,然后通过这种短路的方式获得一定的性能加速,而且这些都对于对用户都透明,而且是基本上是没有一些配置的负担的。第三个就是我们除了对于。就是提供这种数据集的缓存。就是缓存的能力,我们也提供这种数据缓存的自动拓展的一个能力。在这里我们是我们是用呃FS就是FS擎实现来实现这种弹性的展,就默认情况下,这个数据缓存到一定比例的时候,就会触发这种数据驱逐,数据驱逐就会影响到你数据访问的一个吞吐量,所以我们这边就提供了这样一个自动拓展的一个机制,就我们可以设定当你的数据缓存到一定比例的时候,我们就让这个分布式缓存来横向的拓展,然后然后提供这种更大的缓存能力等,然后让你的应用可以享受到很稳定的一个吞吐。
20:34
然后呃,这次分享第四个是一个DEMO,这个DEMO主要是用来加度学习的任务,就是这个DEMO就是可能要切切换一下屏幕,呃,我要不我可以放在这个分享的最后,可以向大家展示一下,呃,这个DEMO。下面我们可以看一下本次分享第五五个部分。
21:00
第五部分主要是社区。就是我们先介绍一下社区的一个road map,就是截止到目前的话,我们社区已经发布了这个零点六点的一个版本。它主要是。解决这样一个user case,就是能够让数据,呃,数据工程师,数据技术建设一个工程师能够有用这种简单有效的方式来使用这种缓存加速,嗯,然后主要是负责呃,主要是加速AI的一些业务,然后在1.0。01.1.0发布的时候,我们希望能够满足这样一个就是case,就是数据啊,工程师,包括数据工程团队,在不需要不需要关心数据管理的情况下,能够实现这种大数据,还有AI业务的训练假设,所以将将这种user case进一步的进行拓展,所以为了实现这样一个目标,我们需要在1.00版本之前去实现这样几个特性,就是第一个特性是在AI应用的一个基础上,我们。
22:02
通过服务的进一步加速啊,K8S就是云原生上的大数的一个应用啊,第二个是我们需要进一步的来拓展优化调度的一个算法,然后来提数据性,然后提升数据访问的一个效率。第三个部分是在KS环境下,我们需要进一步的来优化这种调度器,包括控制器,让这样的这样的一个控制器能够在大规模应用的场景下,能够管理到这样数据的一个生命周期,包括啊缓存引擎的一个生命周期。啊,这个部分我们呃会说一下,就是社区目前发的发展的一个状态,目前。就是这个社区发展还是呃。很稳定的就是目前也是有超过这种80名来自不同的公司,还有组织的一些贡献,包括阿里云,腾讯云,还有呃,就像呃学校的就类似于南京大学,还有俄罗克社区,包括第四办事,还有呃中国电信等公司都都进行了一些代码的贡献。
23:13
然后如果大家在这次分享的有什么疑问,或者说呃有什么想法,都可以通过这种包括还有微信,包括呃呃的这个官网都可以跟我们取得联系,我们社区也会在每每周三的七点,然后举行社这样的社区会议,然后每就是不是每每两周的周三,然后会讨论这项目的一些进展,包括的一些分享。呃,目前的话已经有很多公司在生产环境上去用,就像语音AI的公司,云,还有自动驾驶AI公司啊,包括微博啊,还有电信都在使用来对AI的负载进行一个加速啊,同时360目前也在探索使用来加速这种大数据的应用。
24:04
啊,同时阿里云还有腾讯云都已经在自己的这种容器平台上去升了度的一个加速服务。呃,下面下面打个打个广告,就是在我们T服务上也已经上线了这个的一个服务器服务的应用市场。就是用户如果使用t ke的话,可以简单的通过应用市场来一键部署,然后同时我们也集成了呃,云原生监控,还有云原生的一些日志的一些服务,可以呃全方位的来观测的的一些呃。的负载。然后这是下期的一个,主要讲DEMO演示切换。哦,好让大家。
25:07
不是F来进行加速。啊,大家可以看到。啊,首先首先我们看一下。啊,目前的。啊。部署了一个。情况。目前是没有。没有的是。首先我们安装一下非常简单,就是我们首先可以在get下载最新的一个版本。然后在下载最新的版本之后,我们可以通过的方式。来一键部署。嗯,现在应该不熟。
26:04
目前样第个第二个是第三个是一个,这个主要是在调的时为你的。Load去注入一些帮助你调度的一些no c SI。主要是为。帮助你的那个挂载这样一个缓存。然后我们创建一个。我们我们看一下这个内容。个主要是我们指定这就下面可以设一些必备必须的一些参数,我们这里特别呃对于对于S的这个CIDC进行了一个加密。
27:08
目前也是支持这种加密的一个能力。就是我们可以通过一键来。部署这样一个。让建的时候它处于一个状态,就是没有使用这个个。呃。后有个第。
28:01
然后master的话,我们这边可以看到有MASTER0,其实我们可以进行一个配置,就是如果你需要就提供一外面提供一个高可用的服务,我们可以设置master,类似于三个MASTER5个master啊,这个后面会有这种的算法来,然后确定你你的服务一直是可用可可用的。呃,下面因为我这边就指定了两个,所以这边会有两个。然后我们看一下这个data set的状态。啊,目前这赛已经。已经识别了,就是我他他这个意思就是说我的我刚才那个点,它里面的数据有1.19GB,但是我现在的缓存是一个。然后我给到了他一个缓存能力是3773。然后我可以启动一个预热的一个任务。
29:04
来进行一个数据的预热。我们可以看一下这个。这个预热的一个过程。这个才会慢慢的提高。嗯,我们看到目前这个已经完全缓存了,缓存就是缓1.9GB数据缓。我们启动一个。这个任务。
30:01
是AI的这种的一个任务。我们这里只做功能性演示,就是我们这个训练就可能我们只用了一轮,所以比较。嗯,等会可以看一下日志。我们我我在这里,其实。在sum sh,其实这里就指定了一个。你如何去使用这样一个缓存引擎,我们只需要在这边指定一个,呃,你的刚才创建的,它就会自动的挂载。然后这个。这个其实在对应的就是一个文件中的,比如说pod PC的,只不过这里的脚本进行一个封装。
31:06
我们看一下这个任务还没跑。呃,在等待过程中,我们先说,也顺便说一下现在的一个状态,就现在,嗯,也是在进行0.7.0版本的一个开发,然后0.7.0主要是。我们会进一步的去拓展在大数据的一个应用,同时我们也会拓展就是有这种的工具,我们通过去获在这种数据的一些在节点上的一些信息,通过这些信息来进一调度。
32:20
同时我们在0.0也会去探索一些在的场景的一些。应用。因为现在的现在的flow的整体架构还是说在有有这种节点概念的一个一个架构。
34:09
嗯。呃,要不我们等稍微等一下我们可以,呃,主持人,要不我们先可以回答,就是有,就是有什么问题我们。好的好的,然后这边的话,我看一下今天的问题,我刚刚做了一下汇总,然后一共是有六个问题,我整理一下给到你,然后你这边选三个去做解答,好吧,嗯,好的,其实我们直播间的中奖率还是挺高的,你看抽三个问题大概是50%的中奖率,按照今天的这种情况来说,然后如果大家有什么问题的话,现在还可以继续问,就是直播没结束之前,你的问题都有可能被抽中。好的,那接下来有谢老师帮我们做一下,就是问题解答。哦,好的,我看到我们的就是情况都都很积极啊,就问了很多这种非常有价值的一个问题,然后我看了一下,我我选。
35:10
要不我依次回答一下吧,就是我看到有人在问,就有这种SDK供下载,就是上SSSSDK可以是结合目。然后第二个是说腾讯云数据储有哪些运维工具,呃,因为我目前所在。就是嗯,就是中心是这种TK就是。KS就是容器,容器容器中心,所以我对于我们的数据的架构的运工具不太了解,但是我知道的应该有有。
36:02
呃。就是F的一些工具,大家是以看一就之,就F是有大家需要的一个工具。然后我再选呃两个问题吧,就是跟我分享的内容比较相关的一个问题,就第一个问题是呃,基于AI应用与存储是如何做到高吞吐和低延时的,就第一个的话就是我回答第一个就是如何做到高吞吐,就高吞吐的话,因为我们是。用的是这种分布式缓存引擎,所以我们可以通过呃,动态的调节这种分布式缓存引擎的一个缓存的节点数,来提高这种整体的一个读取的一个吞吐,然后低延时的话,因为高吞吐的话,呃。就会带来部分的D延时一个性能的提升,然后但是我们同时结合flow的一个优化调度的能力,这个优化调度能力主要是说我们会会把你的这种workload去调度到有缓存的节点,然后通过这种短的方式获取这种低延时的一个访问,然后。
37:15
呃,下面回答还有最后一个问题啊,就是容器AI应用使用F缓存引擎有遇到哪些困难,就是我们其实在在使用估值F缓存引擎的时候就是。遇到第一个困难应该是说。啊F,呃,如何去?呃,因为因为AI的应用是一个是一个对于。这个数据读取的一个感知是非常敏感的,所以他呃希望就是端去呃有很高的一个性能,就是如就是之前会有这样一个问题,就是如果在这种高并发的情况下,它的读取会会因为这个线程数的增加而急剧的下滑,然后估SFS,通过优化这种FS,包括优化一些原数据的读取。
38:09
来实现这种AI应用的一个读取,一个加速。呃。然后我看到应该大致这些问题,然后主持人。呃,是这样的,就是刚刚如果您的问题被抽中的话,您可以就是凭借您的问题截图,在我们腾讯云公众号回复您的收货地址和问题截图,我们就会将您的礼物的话,大概是一周左右送到您手中。然后,然后刚刚那个演示要再等一下,还是说怎么样。呃,这个演示要不先停停吧,先停在这吧,可能是这个数,那个可能是这个有有一些问题,不过没关系,我我们大致演示一下在TK的容器平台如何去使用这样FS的一个加速。
39:04
好的行,是这样的,我看一下,嗯,如果没有参加抽奖的同学,麻烦那个就。嗯,麻烦PPT放一下,就是有二维码那个地方那一页。因为有一些同学,有一些同学还没有参加那个抽奖,如果你要抽奖的话,您可以扫码关注公众号,然后公众号里边有软文,然后那个因为我们每期直播都会做软文推广,软文最下面的话是有抽奖链接的。啊好的,那主持人可以看到哦对对对,是是是,就是这一这一页上面的那个二维码,你扫一下就可以看到。然后然后左边的话就是我们下一期的,呃,下一期的直播。直播内容,然后是数据迁移篇,我们下一期的直播的话是在11月十十一月11号,然后也是周四。
40:13
那个就如果是这样的话,今天的直播就到此结束,谢谢大家。嗯,感谢主持人,还有还有大家,嗯。好的,谢谢。
我来说两句