Update README.md
This commit is contained in:
parent
daab8da594
commit
bfbd7643f7
108
README.md
108
README.md
|
@ -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/)
|
||||
|
||||

|
||||
[](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提供的信息,也可以通过接口直接获取数据。
|
||||

|
||||
## 服务部署
|
||||
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
|
||||
```
|
||||
## 加入&贡献
|
||||
我们期待您的意见和贡献,欢迎所有的朋友对项目进行指正和改进,共同打造一套高效稳定的云际协作机制。
|
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
Loading…
Reference in New Issue