天天看点

隐私计算互联互通关键技术(5)——组件容器化加载方案

作者:北京金融科技产业联盟
隐私计算互联互通关键技术(5)——组件容器化加载方案

为落实人民银行《金融科技发展规划(2022-2025年)》关于“探索建立跨主体数据安全共享隐私计算平台,在保障原始数据不出域前提下规范开展数据共享应用”的要求,北京金融科技产业联盟数据专委会在2022年度组织设立了2项重点课题。2023年5月,《金融业隐私计算互联互通技术研究报告》正式发布,为实现行业级隐私计算互联互通,保障金融数据要素安全有序流通提供坚实保障。

在上一篇隐私计算互联互通关键技术(4)——流程调度互通设计基础上,课题组开展了组件容器化加载方案研究。从平台标准化管理异构隐私计算算法出发,课题组梳理了组件容器化加载思路,为高效调用隐私计算平台资源奠定了坚实基础。

本文主要撰写人员:上海富数科技有限公司(卫骞、杨天雅)

一、关键技术点概述

本关键技术点系北京金融科技产业联盟数据专委会“隐私计算互联互通”课题中“流程调度接口和算法容器加载研究”子课题的组成部分,由上海浦东发展银行股份有限公司、北京百度网讯科技有限公司、深圳前海微众银行股份有限公司、上海富数科技有限公司、深圳市洞见智慧科技有限公司牵头,联合13家单位共同研究攻关(完整参与单位名单见附录)。

算法是隐私计算的核心,而算法的加载就是用来使用标准化的接口或方式管理异构算法,其实现方式决定了算法的可扩展性和易扩展性,并且其设计方式也会影响到算法的执行效率。因此,我们需要制定统一的算法镜像构建标准与接口并定义一套规范的算法镜像加载机制与流程,从而保证整个算法容器加载过程的安全、高效及高可用。图1展示了组件容器化加载在隐私计算互联互通中所处的层次。

隐私计算互联互通关键技术(5)——组件容器化加载方案

图1 组件容器化加载在隐私计算互联互通整体框架中所处层次

二、关键技术点研究思路、内容及相关成果

为了标准化算法容器组件的镜像,本关键技术点制定了组件镜像构建规范并设计了标准的组件加载管理机制与容器加载流程;此外还对镜像、组件名称和组件的实例状态进行了规范定义,以实现更完整、更统一、更兼容的算法容器加载流程。

01、研究思路

本关键技术点研究了组件容器化加载的详细方案,提供标准化的组件容器加载流程和关键技术,提供统一的镜像定义规范和组件名称定义规范,最后给出组件实现和组件管理服务的详细容器加载工作流程。本关键技术点与“流程调度接口和算法容器加载研究”子课题中其他关键技术点关系如图2所示:

隐私计算互联互通关键技术(5)——组件容器化加载方案

图2 组件容器化加载在流程调度与算法容器加载中的作用

02、研究内容

组件容器化加载方案由组件容器加载整体设计、镜像定义规范和组件名称定义规范、容器加载流程三部分组成。组件容器加载整体设计,定义了组件镜像加载到隐私计算平台的相关模块及模块关系,明确了组件容器管理器对标准组件全生命周期的管理机制;镜像定义规范和组件名称定义规范,明确了镜像和组件名称的命名规范及组件实例状态与转换;容器加载流程,明确了算法容器加载到隐私计算平台的时序。

03、研究成果

(1)组件容器加载整体设计

组件容器化加载的整体关系结构示意图如图3所示。

隐私计算互联互通关键技术(5)——组件容器化加载方案

图3 组件容器化加载关系结构图

与隐私计算平台相关的模块包括:

1)component register and discovery service:组件注册与发现。用于管理组实例的服务,提供组件的注册和查找服务。组件实例启动后进行注册,实现算法服务发现和路由

2)schedule service:调度服务。对算法作业、任务进行调度

3)container manager:容器管理器。对底层容器编排能力的封装,接收调度服务的请求

注:上述各模块是逻辑上的抽象,不对应具体的服务,其物理形态不作限制。

组件通过加载机制,将组件的镜像加载成为组件实例,并将相应的接口注册到注册和发现服务上,供任务进行调用。任务和组件实例之间,可以是多个任务对应一个组件实例,也可以是一对一形式。组件和任务的关系示意图如图4所示。

隐私计算互联互通关键技术(5)——组件容器化加载方案

图4 组件和任务关系示意图

其中组件镜像(Component Image)指用于表示组件的打包后的容器镜像文件。组件实例(Component Instance)指在加载和启动后用于提供组件功能的进程或者服务。组件实例可以是常驻或者单次形态进行运行,但组件的工作流程和步骤均保持一致。

●常驻形态:组件经过加载后,形成组件实例将持续存在系统中,供一个或者多个任务来进行使用。组件启动,可以在组件第一次使用时进行加载,或者在系统启动时完成拉起;组件停止,可以在系统停止时,或者根据空闲情况进行停止。

●单次形态:组件随着任务的执行开始而启动,随着任务的执行完成而进行停止。

下面进一步描述标准组件加载管理机制,由组件管理服务和组件支撑服务两部分组成。标准组件全生命周期通过组件容器管理器进行管理。容器加载结构如图5所示。

隐私计算互联互通关键技术(5)——组件容器化加载方案

图5 容器加载结构图

其中:

●组件管理服务Component Management Service:用于管理组件及其实例的服务。负责管理组件所运行的容器的管理,与容器平台(例如,Docker,Swarm和 Kubernetes)进行对接,完成容器的编排管理。

●组件支撑服务 Component Support Service:用于向组件提供基础操作能力的服务。用于对组件容器内所使用的功能,提供标准的服务接口。其会将基础服务通过unixfile文件形式将基础接口功能映射到容器内部并接收并响应组件所提供的请求。

(2)镜像定义规范和组件名称定义规范

1)镜像定义规范如下:

a.镜像命名:基本格式为 /<developer>/<image-name>:<tag>

隐私计算互联互通关键技术(5)——组件容器化加载方案

表1 镜像命名字段信息

b.镜像标签:通过 LABEL k1=v1 k2=v2 的方式添加键值对,为镜像提供更多的信息,具体含义需在对外文档上说明。

c.目录结构:通过 Dockerfile WORKDIR 指定工作目录,在镜像标签上指定日志目录。

隐私计算互联互通关键技术(5)——组件容器化加载方案

表2 镜像标签信息

d.网络通信:

●TCP/IP socket:最常见方式,通过监听端口来暴露内部服务。需指定端口使容器对外可访问。在镜像标签里提供以下信息:

隐私计算互联互通关键技术(5)——组件容器化加载方案

表3 镜像标签信息

可能出现端口冲突问题,需要利用基础设施(如K8S)的能力来解决。

●Unix file(可选):利用 Unix Domain Socket 技术, 通过监听本地 socket文件来暴露内部服务;访问外部服务也是通过socket文件。该方式可屏蔽网络架构的细节,但需要组件支撑服务实现流量转发。在镜像标签里提供以下信息:

隐私计算互联互通关键技术(5)——组件容器化加载方案

表4 镜像标签信息

e.镜像安全性保护手段可参考如下:

●防篡改:比对镜像的 sha256 摘要值与开发者提供的是否一致

●漏洞扫描:各家可根据自身基础设施的情况,利用开源或自研工具进行 CVE 漏洞扫描

●镜像签名:可利用Notary服务实现发布方加签与使用方验签

2)组件名称定义规范(Component Name)如下:

a.组件名称 Component Name用于唯一表示组件的名称字符串,按照<前缀>.<版本>.<类型>.<名称>方式进行命名。

例如:intercom.v1.algorithm.hetero_lr

隐私计算互联互通关键技术(5)——组件容器化加载方案

表5 组件名称字段信息

组件实例状态描述如下:

隐私计算互联互通关键技术(5)——组件容器化加载方案

表6 组件实例状态描述

组件实例状态转换关系如图6所示。

隐私计算互联互通关键技术(5)——组件容器化加载方案

图6 组件实例状态转换关系图

(3)容器加载流程

各家基于自身的基础设施,通过 container manager实现容器加载能力。以 K8S 为例,container manager 构建好 Deployment 配置后调用 API server 的 REST 接口(或 kubectl 命令)创建 pod(即component instance)。

整体交互时序图如图7所示。

隐私计算互联互通关键技术(5)——组件容器化加载方案

图7 容器加载流程图

本关键技术点联系人:杨天雅 [email protected]

附:流程调度与算法容器加载子课题参与单位(按贡献度排序)

隐私计算互联互通关键技术(5)——组件容器化加载方案

本文来源:数据专委会

投稿邮箱:[email protected]

继续阅读