关于AppPod、AppMiddle字段

来源:11-2 云应用app_store模型开发及管理说明

慕瓜9063200

2023-04-07

老师你好,在AppStore中,有三个字段:

	AppPod[] AppPod `gorm:"ForeignKey:AppID" json:"app_pod"`
	//中间件组合
	AppMiddle[] AppMiddle `gorm:"ForeignKey:AppID" json:"app_middle"`
	//存储组合
	AppVolume[] AppVolume `gorm:"ForeignKey:AppID" json:"app_volume"`

课程里面关于这三张表也没有设计完整

  1. AppPod这里的意思是不是开发者开发一个应用,假设叫demo.app然后将demo打包成镜像,AppPod就代表这个应用的镜像?然后AppPod表里面应该包含如下字段:demo.app的ID、demo.app的版本有哪些、demo.app需要的端口号、demo.app的协议,我这么理解对不对,如果我需要完整的功能,我还需要设计哪些字段?
  2. AppMiddle这里的意思是不是开发者开发一个应用,假设叫demo.app,那么有用户下载了这个demo.app,同时这个demo.app他需要数据库,例如MySQL、redis,那么AppMiddle就代表了demo.app运行起来他需要的其他中间件?如果我要完整的功能,这里AppMiddle表的字段就应该设计成和middleware模块一样,就像这样:
`type Middleware struct {
	ID              int64           `gorm:"primary_key;not_null;auto_increment"`
	MiddleTypeID    int64           `json:"middle_type_id"`
	MiddleVersionID int64           `json:"middle_version_id"`
	MiddleReplicas  int32           `json:"middle_replicas"` 
	MiddleName      string          `json:"middle_name"`
	MiddleNamespace string          `json:"middle_namespace"`
	MiddleCpu       float32         `json:"middle_cpu"`
	MiddleMemory    float32         `json:"middle_memory"`
	MiddleConfig    MiddleConfig    `gorm:"foreign_key:MiddleID" json:"middle_config"`
	MiddlePort      []MiddlePort    `gorm:"foreign_key:MiddleID" json:"middle_port"`
	MiddleEnv       []MiddleEnv     `gorm:"foreign_key:MiddleID" json:"middle_env"`
	MiddleStorage   []MiddleStorage `gorm:"foreign_key:MiddleID" json:"middle_storage"`
}`

这样的话,只要用户下载了这个demo.app,并且我们在AppMiddle表中已经预设好demo.app所需要的中间件的配置数据,那么就调用paas平台的middleware服务,创建这个demo.app所需要的中间件,这样这个用户需要的demo.app就完整的运行起来了?
3. AppVolume[] AppVolume 这个字段里面也是没有设计完整,如果我想要设计得完整一些,是不是这个AppVolume中应该包含的字段和volume服务中的表是一样的?就像这样:

`type Volume struct {
	ID int64 `gorm:"primary_key;not_null;auto_increment"`
	// 存储名
	VolumeName string `json:"volume_name"`
	// 存储所属命名空间
	VolumeNamespace string `json:"volume_namespace"`
	// 存储的访问方式
	VolumeAccessMode       string `json:"volume_access_mode"`
	VolumeStorageClassName string `json:"volume_storage_class_name"`
	// 请求资源大小
	VolumeRequest float32 `json:"volume_request"`
	// 存储类型
	VolumePersistentVolumeMode string `json:"volume_persistent_volume_mode"`
}`

然后在AppStore服务中调用Volume 服务的接口创建对应的存储即可?

写回答

1回答

Cap

2023-04-16

这里三张表的意思是存储这些中间件和存储于应用的对应的模版关系,方便后续之间通过这种模版关系创建可以直接运行的应用。

0
0

Go 开发者的涨薪通道,自主开发 PaaS 平台核心功能

云原生专家带来稀缺的 PaaS 平台实战,带你直击核心业务+技术

400 学习 · 169 问题

查看课程

相似问题

gorm外键

回答 1

AppTitle字段

回答 1

AppSku字段

回答 1