生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

火山引擎DataLeap的DataCatalog系统公有云实

6月2日 浅时光投稿
  更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
  DataCatalog公有云遇到的挑战
  DataCatalog经历了一个从0到1在火山引擎公有云部署并逐步优化和迭代发布10版本的过程,在这个过程中经历不少挑战,下面将介绍其中比较典型的问题以及我们探索并实践的一些解决方案。
  网络和数据安全
  为保证网络安全和多租户数据安全,火山引擎上公有云产品部署的环境划分为“公共服务区”和“售卖区”,同时售卖区又分割为若干私有网络(即VPC),然后公共服务区和售卖区以及售卖区的VPC之间都是网络隔离的。
  DataCatalog会依赖一些内部公共服务,这类服务通常都部署在公共服务区,而按照网络和数据安全规范,DataCatalog作为独立云产品需要部署在售卖区独立VPC内,类似的情况DataCatalog依赖的数据中台产品也需部署在独立VPC内,例如EMR、LAS和Bytehouse。另外,DataCatalog对外会提供OpenAPI,外部客户可以通过火山引擎的API网关来访问这些API,但API网关服务是在公共服务区,无法直接访问到DataCatalog服务,基于以上情况,为了正常对外提供服务,我们需要解决网络隔离问题同时还要保证安全性。
  解决方案:
  服务部署:为了能够在售卖区部署,经过调研我们选择火山引擎提供的容器服务(VKE)和负载均衡(CLB)来进行基础服务部署和构建,其中CLB提供四层负载均衡能力,容器服务是高性能Kubernetes容器集群管理服务。DataCatalog基于容器服务提供的无状态负载(Deployment)、定时任务(CronJob)、服务(Service)等云原生容器管理功能进行基本服务和调度任务部署,同时也使用火山引擎的存储和中间件,以上组件均在同一个VPC内,能够保证网络连通以及数据安全。
  网络打通:为解决上文所说的网络隔离问题,经过调研我们使用了公司通用的网络代理服务(PLBShuttle),该网络代理可做到网络打通的同时保证四层网络流量的安全,从而达到我们和各依赖方如公共服务(API网关、IAM等、独立部署的云服务(EMRLAS等)的网络连通目标。
  数据安全:火山引擎部署环境做网络隔离,主要是保证安全性,我们虽然使用网络代理打通网络,但是仍需保证各个环节的安全性,考虑到服务间交互都是通过HTTP请求,我们对和外部交互的接口都增加了SSL和双向认证的机制,同时在安全认证方面,我们没有使用Nginx或Java原生的方案,而是借助于火山引擎内部安全服务中的ZTI团队的envoy组件来实现,同时使用sidecar模式和我们后端服务容器集成部署,既降低了服务端部署改造成本,也解耦了服务端业务逻辑和安全认证逻辑。
  多租户适配
  这里先对多租户相关概念做一些解释:
  租户:一个客户、公司、个人开通或购买了火山引擎的云产品,火山引擎就会通知对应的服务提供者,对应云产品会感知到他的开通,这个客户就是这个云产品的一个租户,实际场景可以类比于一个公司是一个租户,不同的公司是不同的租户。
  多租户服务:云服务要为多个租户提供服务,需要做到租户隔离,保证各租户的访问控制、数据、服务响应等各方面的使用都是隔离的,彼此互不感知互不影响的。要做到租户隔离,就需要云服务能通过逻辑或物理隔离的方式来将各租户对应数据和访问隔离开来,避免互相影响。
  此前,在字节跳动内部实践中不存在多租户场景,所以面向公有云用户服务时,DataCatalog针对支持多租户服务的能力,需要进行专门适配。
  解决方案:
  DataCatalog在元数据存储层借用了ApacheAtlas的设计与实现。Atlas的底层使用JanusGraph做图引擎,JanusGraph是基于Gremlin图查询语义实现的计算引擎,而社区版Atlas不支持多租户场景。我们通过在Atlas上增加JanusGraphPartitionStrategy适配,实现存储层租户逻辑隔离。
  参考以上示例,JanusGraph的PartitionStrategy可以支持设置的readwritePartition的value,并保证只读写指定Partition的数据,从而达到数据隔离,我们将租户信息和PartitionStrategy相结合,实现了多租户场景下读写数据的逻辑隔离,保证了数据安全性。
  内外部功能一致
  DataCatalog在字节跳动内部已打磨多年,产品形态和技术架构比较成熟,但随着公有云部署和ToB产品迭代,因内部外基础服务差异和ToB引入新的使用场景和上下游组件导致内外部产品功能和技术实现的差异也越来越多。
  在前几个版本中,我们尝试使用独立的代码分支和版本来支持ToB功能,避免内部新功能对ToB产生影响,但我们发现随着版本差异越来越大,代码和功能的合并和兼容就变得非常困难,在其中一次整体代码合并时,出现了好几千的文件diff和上百处mergeconflict,我们花费了一周时间多的时间合并代码和进行多环境测试回归验证,最终完成了合并。功能和代码的不一致已经成为影响研发效率和需求交付进度的很重要因素,必须要进行优化。
  解决方案:
  我们主要从产品功能和代码版本两方面来处理内外部一致性问题:
  产品功能
  产品功能的标准化:原则上所有功能都应做到内外部一致,只允许部分功能点的实现区别。我们期望能将各功能都进行标准化,基础模块和通用能力(如元数据模型、搜索、血缘)原则上需保持内外一致,内外部依赖或需求场景差异较大的功能(如元数据接入和采集、库表管理)改造为标准化流程,将差异部分尽量减小,做到只通过配置、插件、版本控制工具等方式就能适配,减少研发和运维成本。
  明确的一致性规划:从模块到功能点逐个对比内部外实现情况,制定长期roadmap,明确差异点的支持排期,并提高对齐内部功能的工作优先级,逐步减少差异。
  新功能的兼容性:新功能的设计需考虑内外部一致性,包括产品的交互和研发的技术方案都需考虑外部场景并明确兼容方案,原则上对特殊场景定制化功能都需考虑通用场景适配,尽量保持多环境的兼容性。
  技术实现
  统一的代码分支管理规范:原则上内外部的代码是一致的即统一的分支。具体来说,不管域内外功能都需兼容多环境并在多环境验证才能合并代码,外部如公有云在发版周期中会基于内部主分支代码(如master分支)创建一个新的releasex。x。x分支,进行回归验证和公有云上线,同时线上持续使用releasex。x。x分支以保证线上环境稳定,releasex。x。x分支需定期合回主分支。新的版本会继续基于主分支开发,并持续保持该规范。
  明确的发版规划:根据实际情况,内部通常迭代比较敏捷发版频率较快,而外部通常要求稳定性,会定期发版(如每月一个版本),考虑到发版周期的差异,我们会以外部固定周期为标准,细粒度控制需求评估、功能开发、QA测试、回归测试等各环节所在时间段,明确封板时间,降低内外部互相影响。
  一致性意识和自动化多环境验证:通过多轮分享和培训在技术团队内部对齐一致性意识,清楚内外部差异点FAQ等,另外,如上所说新功能技术设计方案需明确多环境兼容性。同时,引入自动化的多环境验证环节,尽早发现不兼容或不一致的问题,减少人工判断和测试的成本。
  OpenAPI
  在DataLeapBeta版本发布之后,有内外部客户在试用,当时就有客户提出OpenAPI的需求,但在Beta版本我们还未支持OpenAPI。公司内部有OpenAPI规范和平台,DataCatalog也借助相关平台实现了内部的OpenAPI,但是ToB场景的公共平台不同且会遇到ToB场景特定的问题(如安全认证、多租户、API开通计费等),需要综合考虑来对外提供解决方案。
  解决方案:
  如前文介绍,火山引擎内部公共服务有API网关的通用服务(TOP),并有若干API发布规范,DataCatalog调研了该API网关并解决以上核心问题来支持ToBOpenAPI。以下介绍一下主要流程和关注点:
  API管理
  DataCatalog借助于API网关管理OpenAPI,包括注册和开通、访问控制、限流等。
  API规范:火山引擎OpenAPI有明确的参数规范,DataCatalog也需符合该规范,但因内部OpenAPI参数格式不同,需做兼容,考虑到新API的支持成本,借助于Spring的Interceptor和Advice以及定制JSON序列化和反序列化逻辑,实现了自动的参数格式转化,降低API格式兼容的开发成本。
  访问控制:火山引擎作为云服务提供商,使用业界规范的AKSK密钥管理规范,API使用者需创建AKSK并通过该信息来访问API才可通过访问控制,而API网关会通过IAM进行鉴权,通过后会给服务提供者也就是API注册者透传用户的身份(如租户ID,用户ID),方便API提供者使用。
  安全认证:处理API网关提供的基础鉴权,DataCatalog也增加了更多机制来保障安全性,包括双向认证、租户开通状态检测等。
  API文档:对于每一个OpenAPI都根据火山引擎规范编写了详细的参数说明,汇总为一个正式API文档,方便用户查阅使用。
  API请求流程
  用户或服务通过AKSK访问API,或者通过前端控制台间接访问API。
  API网关通过IAM进行鉴权,将识别到的用户身份通过HTTPheader透传给服务提供者。
  服务提供者接收到请求并通过HTTPheader获取用户身份,进行下一步处理。
  总结
  火山引擎DataCatalog产品是基于字节跳动内部平台,经过多年打磨业务场景和产品能力,在公有云进行部署和发布,期望帮忙更多外部客户创造数据价值。目前公有云产品已包含内部成熟的产品功能同时扩展若干ToB核心功能,正在逐步对齐业界领先DataCatalog云产品各项能力。文中提及的内容其实还有继续优化的空间,以及随着客户的使用,还有面临一些新的问题,包括多租户性能优化、服务稳定性保障等,火山引擎DataLeap研发团队都在持续探索和解决,期望能更好的支持ToB客户的业务诉求并实现商业价值的同时,提供优质稳定的服务和丰富的扩展能力。
  点击跳转了解更多
投诉 评论 转载

一周时尚资讯纽约、米兰时装周日程,LVMH成巴黎奥运会赞助商 FashionNewsData:7月24日至7月30日本周,据报道GucciCosmos展览将在伦敦亮相;LVMH集团成为巴黎奥运会赞助商;Gucci宣布演员文淇出……火山引擎DataLeap的DataCatalog系统公有云实 更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群DataCatalog公有云遇到的挑战DataCatalog经历了一个从0到1在……水浒传里的武大郎到底有多高?热文聚热点网 武松与武大郎是同父异母的兄,《水浒传》中描述武松身高八尺,那么描述武大郎身高多少呢。【这武大郎身不满五尺,面目生得狰狞,头脑可笑,清河县人见他生的短矮,起他一个浑名叫做“……如何评价淝水之战?热传聚热点网 在中国历史上,由司马氏建立的晋朝,基本上可以说不能算是一个强大的王朝,但却应该说是一个比任何朝代都腐化堕落的多的王朝。这是一个比较幸运的王朝,华夏民族最强劲的对手匈奴,早……奥地利能源巨头称将继续进口俄罗斯天然气热传聚热点网 据英国《金融时报》9日报道,奥地利国家石油天然气集团首席执行官阿尔弗雷德施特恩表示,今年冬天将继续从俄罗斯购买大部分天然气,同时也无意终止与俄罗斯天然气工业股份公司的长期购气合……青岛出租车投诉电话是多少?热闻聚热点网 青岛出租车投诉电话非常的好记,电话是82717777投诉前你最好记住车牌号、名字、一定要发票,因为有很多都不爱承认。现在青岛出租司机有的态度很不好,为了监督青岛出租车的服务,让……目前手机里哪个处理器最好?热博聚热点网 目前手机里哪个处理器最好?目前手机处理器主要分为五大阵营,分别是苹果、高通、联发科、三星和海思。但最强的应该在苹果A14和高通骁龙888之间产生,准确说这是两大平台的王者,谁更……衰老的特征是什么?热议聚热点网 人体衰老主要表现在身体形态、功能、结构和心理等这4个主要方面。身体形态衰老的主要表现在:(1)皮肤松:皮肤松弛、干瘪、发皱,以前额和眼角最为明显。(2)毛发少……好文:免疫力差吃什么可以增强抵抗力热文聚热点网 头条创作挑战赛最近这段时间,由于戴口罩问题的反弹,很多人又不得不待在家里。而且对于一部分来说,待在家里的时间还挺长的。那么,对于一部分待在家里的人来说,如何吃饭就成了他们关心的……新媒体运营,到底是运营什么?热评聚热点网 新媒体已经是人人都能发家致富的工具了,堪称普通人逆袭的利器,是“第一生产力”。只要上过学会写作文,都可以写上几百字,然后一键发送,转发到朋友圈,新朋好友点个赞,再来一批粉……猎豹和猞猁谁厉害?为什么?热博聚热点网 这个问题还真是不好回答,我想了许久都没想到答案。猎豹和欧亚猞猁同属猫科,猎豹虽然体型大,但硬件比一般猫科差得多。而猞猁虽然强悍,但体型毕竟小。下面试着分析一下吧。欧亚猞猁……【歌词】轰隆隆歌手:花花花热文聚热点网 寂寞列车词曲:汪峰演唱:汪峰月光象狮子般地飘洒轻抚着那孤单的车厢远处沉默骄傲的灯塔诉说着迷乱缤纷的生涯轰隆隆轰隆隆轰隆隆寂寞列车……
雨霖铃古诗讲解(雨霖铃原文翻译及赏析)热博聚热点网 红豆莲藕汤做法窍门简单介绍(红豆莲藕汤做法窍门)热评聚热点网 【歌词】music歌手:朴正炫热博聚热点网 【歌词】旧城人歌手:易影峰热博聚热点网 堂堂科技霸主美国,为何干不出一个抖音?热闻聚热点网 【歌词】消失歌手:迷乐队热议聚热点网 吃什么通便(通便的食谱居然这么简单)热博聚热点网 投资大佬朱啸虎捅破了核酸检测利益链的窗户纸热传聚热点网 林冲怎么死的林冲结局死了吗热文聚热点网 靖词语解释(靖是什么意思)热评聚热点网 十只兔子(恐怖童谣十只兔子)热文聚热点网 实力够强,好运挡不住的星座热传聚热点网
亲身经历告诉你靠谱的网络赚钱项目有哪些?货物进口合同汽车前风挡玻璃如何保护2013年以来,新增减税降费和退税缓税缓费超12万亿元初中生的周记热文聚热点网 高考之后如何撒欢?为爱车装贴威固隐形车衣,启程美好旅行小米手机关机怎么查定位没卡(对方手机关机了怎么定位到对方)女生愿意为男生花钱会有这种理由斗鱼tv弹幕助手怎么用战胜自己的前提就是反省自身励志文章大树爷爷的话一年级家长如何配合老师教育孩子的家长会发言稿

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找新乡渭南铜川松江山南雅安松原荃湾淮北昭通平凉鞍山赤峰苗栗保亭池州渝北株洲陇南濮阳三沙秀山密云鸡西