重庆市城乡建设施工安全管理总站网站,站长工具端口,微信卖货小程序怎么做,加油优惠卡app软件开发更多技术交流、求职机会#xff0c;欢迎关注字节跳动数据平台微信公众号#xff0c;回复【1】进入官方交流群 Data Catalog是一种元数据管理的服务#xff0c;会收集技术元数据#xff0c;并在其基础上提供更丰富的业务上下文与语义#xff0c;通常支持元数据编目、查找、… 更多技术交流、求职机会欢迎关注字节跳动数据平台微信公众号回复【1】进入官方交流群 Data Catalog是一种元数据管理的服务会收集技术元数据并在其基础上提供更丰富的业务上下文与语义通常支持元数据编目、查找、详情浏览等功能。目前Data Catalog作为火山引擎大数据研发治理套件DataLeap产品的核心功能之一经过多年打磨服务于字节跳动内部几乎所有核心业务线解决了数据生产者和消费者对于元数据和资产管理的各项核心需求。
DataLeap作为一站式数据中台套件汇集了字节内部多年积累的数据集成、开发、运维、治理、资产、安全等全套数据中台建设的经验助力ToB市场客户提升数据研发治理效率、降低管理成本。
Data Catalog公有云整体架构 Data Catalog支持综合搜索、血缘分析、库表管理、元数据采集、备注问答、专题管理、OpenAPI等功能和DataLeap其他功能模块如数据开发、数据集成、数据质量、数据安全等一起提供了大数据研发和治理场景的一站式解决方案。同时Data Catalog公有云产品是基于火山引擎提供的数据引擎和云基础设施来部署和服务的下面会简单介绍下我们所依赖和使用的产品和服务 数据引擎是火山引擎提供的数据分析、数据仓库和数据湖相关产品包括ByteHouse/EMR/LAS等产品。通常Data Catalog会从这类系统内采集元并存储元数据进行处理加工后再提供搜索、血缘分析等功能另外库表管理模块也会依赖这类系统提供对应的接口来做建库建表等操作。 内部公共服务是火山引擎为支持公司内部产品上公有云提供的若干公共基础服务主要作用是方便内部产品能快速在公有云部署提供和公司内部兼容性比较高的公共服务降低改造和迁移成本。其中Data Catalog使用较多的包括API网关、网络代理、访问控制、安全认证、监控报警等。 基础服务这类服务或产品相较于上面说的内部公共服务主要区别是他们是火山引擎对外售卖的标准云服务内外部用户都可使用且和业界主流云厂商能力是基本对齐的不过会和公司内部一些类似的基础服务会有不少差异。Data Catalog主要使用这类基础服务来进行自身服务的部署运维并且进行较多的兼容性改造包括容器部署、网络打通、内外部CICD和监控报警流程一致性等方面。 数据库和中间件是和业界主流云厂商对齐的存储和中间件领域的标准云服务和公司内部对应组件也会有若干差异Data Catalog为此也做了多版本的兼容。Data Catalog在元数据存储上使用到了Hbase/MySQL/ES/Redis然后在元数据采集和同步场景使用了Kafka同时用到了日志服务来提高研发运维效率。
Data Catalog公有云遇到的挑战
Data Catalog经历了一个从0到1在火山引擎公有云部署并逐步优化和迭代发布10版本的过程在这个过程中经历不少挑战下面将介绍其中比较典型的问题以及我们探索并实践的一些解决方案。
网络和数据安全
为保证网络安全和多租户数据安全火山引擎上公有云产品部署的环境划分为“公共服务区”和“售卖区”同时售卖区又分割为若干私有网络即VPC然后公共服务区和售卖区以及售卖区的VPC之间都是网络隔离的。
另外Data Catalog对外会提供OpenAPI外部客户可以通过火山引擎的API网关来访问这些API但API网关服务是在公共服务区无法直接访问到Data Catalog服务基于以上情况为了正常对外提供服务我们需要解决网络隔离问题同时还要保证安全性。
解决方案 服务部署为了能够在售卖区部署经过调研我们选择火山引擎提供的容器服务VKE和负载均衡CLB来进行基础服务部署和构建其中CLB提供四层负载均衡能力容器服务是高性能 Kubernetes 容器集群管理服务。Data Catalog基于容器服务提供的无状态负载Deployment、定时任务CronJob、服务Service等云原生容器管理功能进行基本服务和调度任务部署同时也使用火山引擎的存储和中间件以上组件均在同一个VPC内能够保证网络连通以及数据安全。 网络打通为解决上文所说的网络隔离问题经过调研我们使用了公司通用的网络代理服务PLB/Shuttle该网络代理可做到网络打通的同时保证四层网络流量的安全从而达到我们和各依赖方如公共服务API网关、IAM等、独立部署的云服务EMR/LAS等的网络连通目标。 数据安全火山引擎部署环境做网络隔离主要是保证安全性我们虽然使用网络代理打通网络但是仍需保证各个环节的安全性考虑到服务间交互都是通过HTTP请求我们对和外部交互的接口都增加了SSL和双向认证的机制同时在安全认证方面我们没有使用Nginx或Java原生的方案而是借助于火山引擎内部安全服务中的ZTI团队的envoy组件来实现同时使用sidecar模式和我们后端服务容器集成部署既降低了服务端部署改造成本也解耦了服务端业务逻辑和安全认证逻辑。
多租户适配
云服务要为多个租户提供服务需要做到租户隔离保证各租户的访问控制、数据、服务响应等各方面的使用都是隔离的彼此互不感知互不影响的。要做到租户隔离就需要云服务能通过逻辑或物理隔离的方式来将各租户对应数据和访问隔离开来避免互相影响。
此前在字节跳动内部实践中不存在多租户场景所以面向公有云用户服务时Data Catalog针对支持多租户服务的能力需要进行专门适配。
解决方案
Data Catalog在元数据存储层借用了Apache Atlas的设计与实现。Atlas的底层使用JanusGraph做图引擎JanusGraph是基于Gremlin图查询语义实现的计算引擎而社区版Atlas不支持多租户场景。我们通过在Atlas上增加JanusGraph Partition Strategy适配实现存储层租户逻辑隔离。 参考以上示例JanusGraph的Partition Strategy可以支持设置的read/write Partition的value并保证只读/写指定Partition的数据从而达到数据隔离我们将租户信息和Partition Strategy相结合实现了多租户场景下读写数据的逻辑隔离保证了数据安全性。 火山引擎Data Catalog产品是基于字节跳动内部平台经过多年打磨业务场景和产品能力在公有云进行部署和发布期望帮忙更多外部客户创造数据价值。目前公有云产品已包含内部成熟的产品功能同时扩展若干ToB核心功能正在逐步对齐业界领先Data Catalog云产品各项能力。 点击跳转大数据研发治理套件 DataLeap了解更多