Update README.md

This commit is contained in:
zhouqunjie 2023-08-16 11:17:05 +08:00
parent daab8da594
commit bfbd7643f7
2 changed files with 83 additions and 25 deletions

108
README.md
View File

@ -1,43 +1,101 @@
# PCM: Peer Collaboration Mechanism
# Kubenan
PCM is positioned as Software stack over Cloud, aiming to build the standards and ecology of heterogeneous cloud collaboration in a non intrusive and autonomous peer-to-peer manner. It focuses on how to make full use of the computing and storage capabilities of multiple source clouds without changing the heterogeneous cloud computing software stack, rather than implementing a new cloud software stack. From the cloud perspective, PCM superimposes on the cloud and focuses more on collaboration between clouds than on the cloud itself.
- 网站: [https://www.jointcloud.net](https://www.jointcloud.net/)
- 论坛: [PCM Discuss](https://www.jointcloud.net/)
- 文档: [https://www.kdocs.cn/l/ceLXXITQCgpv](https://www.kdocs.cn/l/ceLXXITQCgpv)
- 教程: [PCM's Learn Platform](https://www.jointcloud.net/)
![pcm](docs/imges/pcm.png)
[![PCM](https://www.gitlink.org.cn/images/avatars/Organization/123822?t=1689062058)](https://camo.githubusercontent.com/1a4ed08978379480a9b1ca95d7f4cc8eb80b45ad47c056a7cfb5c597e9315ae5/68747470733a2f2f7777772e6461746f636d732d6173736574732e636f6d2f323838352f313632393934313234322d6c6f676f2d7465727261666f726d2d6d61696e2e737667)
## Requirements
  对等协作机制的愿景是在云际环境中构建一套所有服务提供方和需求方能够自主参与协作实现对等交易以非侵入的方式实现各利益主体间便捷高效的连接和调用并在构建云际生态的同时形成行业标准吸引更多云际服务商加入贡献。PCM站在云上视角叠加于云之上关注云之间协作多于云自身。
对等协作机制建立在一个标准的软件定义框架之上按照这个标准框架拥有物理云资源的云服务提供者可以自主定义PCM规则框架其他遵循该规则框架的实体云即可参与协作交易并进而面向领域应用定制虚拟专用云满足各类云际参与者如中心侧、边缘侧和终端侧等异构基础设施资源直接自主参与协作和交易的需求。
---
PCM力求解决的现实问题
* Linux amd64
- **效能提升**:
  云际开发者加入PCM框架后可以通过描述性语言生成框架内部功能结构的代码和大部分规格定义专注于业务逻辑开发无需关心底层管理功能。框架提供微服务管理、多语言代码生成和模型桥接功能可降低编码工作量和入门难度提高能效。
* [Slurm-2-6-9-1](https://github.com/SchedMD/slurm/archive/refs/tags/slurm-2-6-9-1.tar.gz)
- **解决平台锁定问题**:
  对等协作机制通过多云适配、标准化接口和抽象层等手段,有效解决平台锁定问题,实现跨平台运行、部署和交互。标准化接口简化开发人员工作,降低平台锁定风险。
* [Go](https://go.dev/) 1.19 or higher
- **降低代码开发难度**:
  对等协作开发框架降低了开发难度提供了结构化开发模式、现成组件和文档支持不同级别开发人员能更公平地协同工作。框架可节省约50%的开发时间初级程序员用约15人天完成原需1人月的任务。自动生成工具、代码模板和组件复用等功能让开发者更专注于业务逻辑实现。无需再培训高级开发人员可节省时间和人力资源成本提高投入产出比。
* [GCC](https://gcc.gnu.org/) 4.8.5 or higher
- **减少代码开发工作量**:
  PCM框架提供自动化功能和代码生成工具减少手动编写代码提高开发速度和代码质量。使用框架的自动生成工具后整体代码量超过一半由工具生成低代码率达到约63%。开发者主要工作是编写描述语言文件生成基础结构,然后调整和编写逻辑功能的开发。这使团队能更快速敏捷地交付产品并进行业务优化和用户反馈迭代。
  
## 设计架构
  Kubenan是框架的核心组件实现了对不同Participant端技术栈的异构屏蔽。框架面向用户侧主要分为资源变更任务提交和集约展示两大功能。在任务提交后PCM通过架设在云算云、智算云、超算云之上的调度中心来实现任务的动态流转。在集约展示部分PCM主要通过Tracker以及P端主动上报的方式对多个Participant服务的资源、任务等信息进行收集和汇聚向用户提供标准化的统一接口。用户可以在前端页面上查看PCM提供的信息也可以通过接口直接获取数据。
![img.png](docs/images/img.png)
## 服务部署
  PCM的开发环境需要安装golang 1.18以上版本参考下文内容将会在本地启动kubenan的相关服务。
  拉取项目的命令如下
  
`git clone https://gitlink.org.cn/jcce-pcm/pcm-coordinator.git`
## Quick Start
---
#### nacos
  配置管理采用nacos用户需要在本地或服务器上安装部署nacos服务对应教程可以参考[nacos安装](https://nacos.io/en-us/docs/quick-start.html)nacos中添加对应服务的配置文件具体配置内容参考下文。
#### kubenan-rpc
rpc服务的配置内容模板如下
```
# clone
git clone https://gitlink.org.cn/JCCE/PCM
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
```
  运行以下命令后将会在本地启动kubenan-rpc服务其具体功能可参考上文架构设计中的描述。
```
# get required packages
go mod tidy
# build pcm components
make build
# start service
nohup ./pcm-gateway &> pcm-gateway.log &
nohup ./pcm-pod &> pcm-pod.log &
nohup ./pcm-vm &> pcm-vm.log &
nohup ./pcm-slurm &> pcm-slurm.log &
# run rpc service
go run pcm-coordinator/rpc/pcmcore.go
```
#### kubenan-api
  api服务的配置内容模板如下其中各P端的config信息可以根据实际情况按需配置。
```
Name: pcm.core.api
Host: 0.0.0.0
Port: 8999
If the startup is successful, the 'gateway' will listen on the '8880' port by default, and no error is reported in the log. The above is a simple demonstration using nohup. It is recommended that the production environment should be hosted by systemd. The relevant service files can be found in the etc/service directory for reference.
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
```
  运行以下命令后将会在本地启动kubenan-api服务服务启动后用户将可以通过http请求其接口进行各类功能调用。
```
# get required packages
go mod tidy
# run rpc service
go run pcm-coordinator/api/pcm.go
```
## 加入&贡献
  我们期待您的意见和贡献,欢迎所有的朋友对项目进行指正和改进,共同打造一套高效稳定的云际协作机制。

BIN
docs/images/img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB