# docs **Repository Path**: zhouqunjie/docs ## Basic Information - **Project Name**: docs - **Description**: jointcloud pcm - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-06 - **Last Updated**: 2023-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- ---

PCM
jointcloud云际团队正式发布PCM对等协作框架,框架包含了kubernan核心组件源代码、8个participant协作者组件仓库,以及PCM中定义的超算、智算、数算资源操作及信息收集规格。

什么是Jointcloud和PCM

云际协作环境 (JointCloud cooperation environment, JCCE), JCCE 包括分布云交易、分布云社区、分布云监管以及基于区块链的分布记账系统, JCCE 中与信息交换尤其是价值交换相关的支撑技术, 利于打破云际协作参与方之间的信息不对称, 为参与各方创造多赢机会, 实现对云际计算商业模式创新的强有力支撑。
对等协作机制(peer cooperation mechanism, PCM)的愿景是在云际环境中构建一套所有服务提供方和需求方能够自主参与协作,实现对等交易,以非侵入的方式实现各利益主体间便捷高效的连接和调用,并在构建云际生态的同时形成行业标准,吸引更多云际服务商加入贡献。PCM站在云上视角,叠加于云之上,关注云之间协作多于云自身。
对等协作机制建立在一个标准的软件定义框架之上,按照这个标准框架,拥有物理云资源的云服务提供者可以自主定义PCM规则框架,其他遵循该规则框架的实体云即可参与协作交易,并进而面向领域应用定制虚拟专用云,满足各类云际参与者如中心侧、边缘侧和终端侧等异构基础设施资源直接自主参与协作和交易的需求。

PCM力求解决的现实问题:

设计架构

Kubernan是框架的核心组件,实现了对不同Participant端技术栈的异构屏蔽。框架面向用户侧主要分为资源变更(任务提交)和集约展示两大功能。在任务提交后,PCM通过架设在云算云、智算云、超算云之上的调度中心来实现任务的动态流转。在集约展示部分,PCM主要通过Tracker以及P端主动上报的方式对多个Participant服务的资源、任务等信息进行收集和汇聚,向用户提供标准化的统一接口。用户可以在前端页面上查看PCM提供的信息,也可以通过接口直接获取数据。
PCM架构

服务部署

PCM的开发环境需要安装golang 1.18以上版本,参考下文内容将会在本地启动kubernan的相关服务。
  拉取项目的命令如下
  
git clone https://gitlink.org.cn/jcce-pcm/pcm-coordinator.git

nacos

配置管理采用nacos,用户需要在本地或服务器上安装部署nacos服务,对应教程可以参考nacos安装,nacos中添加对应服务的配置文件,具体配置内容参考下文。

kubernan-rpc

rpc服务的配置内容模板如下

Name: pcm.core.rpc
ListenOn: 0.0.0.0:2004

DB:
  DataSource: username:password@(x.x.x.x:3306)/pcm?parseTime=true
  
SnowflakeConf:
  MachineId: 1

运行以下命令后将会在本地启动kubernan-rpc服务,其具体功能可参考上文架构设计中的描述。

# get required packages
go mod tidy

# run rpc service
go run pcm-coordinator/rpc/pcmcore.go

kubernan-api

api服务的配置内容模板如下,其中各P端的config信息可以根据实际情况按需配置。

Name: pcm.core.api
Host: 0.0.0.0
Port: 8999

DB:
  DataSource: username:password@(x.x.x.x:3306)/pcm?parseTime=true
  
Redis:
  Host: x.x.x.x:portnumber
  Pass: password


# k8s rpc
K8sNativeConf:
  Endpoints:
    - 127.0.0.1:2003
  NonBlock: true

#slurm rpc
THRpcConf:
  Endpoints:
    - 127.0.0.1:2007
NonBlock: true

#modelarts rpc
ModelArtsRpcConf:
  Endpoints:
    - 127.0.0.1:2002
NonBlock: true

运行以下命令后将会在本地启动kubernan-api服务,服务启动后用户将可以通过http请求其接口进行各类功能调用。

# get required packages
go mod tidy

# run rpc service
go run pcm-coordinator/api/pcm.go

接下来的计划

加入&贡献

我们期待您的意见和贡献,欢迎所有的朋友对项目进行指正和改进,共同打造一套高效稳定的云际协作机制。