為了簡化軟體雲化部署,阿里雲計算巢提供了一站式平台,開發人員僅需將自己的Git倉庫配置為符合計算巢服務規範即可實現自動化部署到雲端的操作。官方提供了多個模板,這些模板涵蓋了不同的架構和部署物的類型,便於開發人員從計算巢官方倉庫複製並定製模板。通過計算巢控制台,即可完成服務的建立和發布,實現軟體的雲上部署。本文介紹如何建立符合計算巢規範的Git倉庫的詳細資料。
規範Git倉庫配置
軟體開發人員往往會在GitHub、GitLab、Gitee等地方有自己的倉庫。如果您想要將軟體部署起來,需要手動搭建伺服器並構建環境。阿里雲計算巢為開發人員提供了一站式軟體雲化部署平台,只要將自己的倉庫配置成符合計算巢服務格式規範的倉庫,就可以將軟體自動化地部署到雲端,成為雲上可以執行的軟體。若一開始沒有類似倉庫,可以從計算巢官方倉庫中將模板複製到自己的帳號。
官方倉庫推薦
截至2024年2月28日,計算巢提供了8個私人服務範本和5個全託管服務範本,覆蓋多種架構情境。
倉庫目錄檔案說明
此處以WordPress-ECS託管版單租倉庫為例,介紹倉庫目錄檔案的資訊。請查看每個檔案的功能說明,以便您能正確的嵌入對應軟體。
wordpress-managed-demo
├── README.md - README
├── docs - 服務文檔相關檔案
│ └── index.md
├── resources - 服務資源檔
│ ├── icons
│ │ └── service_logo.png - 構建服務預設的表徵圖
│ └── artifact_resources - 部署物相關資源檔
│ └── file - 檔案部署物目錄
│ ├── epel-release-latest-7.noarch.rpm - epel安裝包
│ ├── remi-release-7.rpm - remi安裝包
│ └── wordpress-6.2-zh_CN.tar.gz - wordpress檔案部署物
├── ros_templates - 服務ROS模板,可以有多個
│ └── cluster.yaml - 叢集版ROS模板
│ └── template.yaml - 單機版ROS模板
├── config.yaml - 服務組態檔,服務構建過程中會使用計算巢命令列工具computenest-cli,computenest-cli會基於該設定檔構建服務
├── preset_parameters.yaml - 服務商預設參數,如VpcId,VSwitchId等,該ros模板內容會渲染為表單方便服務商填寫配置config.yaml檔案
該檔案為computenest-cli構建服務的核心設定檔,本質是指定了服務的配置,然後computenest-cli會根據該配置調用對應的計算巢OpenAPI介面傳入具體的配置參數。構建服務的整體流程中調用的介面包括計算巢建立服務,建立部署物和ECS的建立鏡像(如果是鏡像部署物)介面。
Service:
RegionId: cn-hangzhou # 服務部署的地區
DeployType: ros # 部署類型,使用ROS(Resource Orchestration Service服務)
TenantType: SingleTenant # 租戶類型,單租戶
DeployMetadata: # 部署中繼資料配置
ServiceInstanceNameRule:
Prefix: wp # 服務執行個體名稱首碼
SupplierDeployMetadata: # 供應商部署中繼資料
RoleName: ${RoleName} # 使用的角色名稱
UserType: Aliyun # 使用者類型,阿里雲使用者
SupplierTemplateConfigs: # 供應商模板配置數組
- Name: 高可用版 # 模板名稱
Url: 'templates/template.yaml' # 模板檔案的URL
PredefinedParameters: [] # 預定義參數列表
HiddenParameterKeys: # 隱藏參數鍵列表
- VpcId
- VSwitchId
- ZoneId
ParameterMappings: # 參數映射配置
- ParameterKey: RegionId
ParameterMappingKeys: # 參數映射鍵
- VpcId
- ZoneId
- VSwitchId
ParameterValueMapping: # 參數值對應配置,指定地區的參數值
cn-hangzhou:
Parameters:
VpcId: ${VpcId}
ZoneId: ${ZoneId}
VSwitchId: ${VSwitchId}
FileArtifactRelation: # 檔案部署物關聯配置
'{{ computenest::file::wordpress }}': # 檔案部署物關聯標識符。可以在templates/template.yaml中使用該標識符指定部署物
ArtifactId: ${Artifact.Artifact_1.ArtifactId} # 檔案部署物ID
ArtifactVersion: ${Artifact.Artifact_1.ArtifactVersion} # 檔案部署物版本
TemplateConfigs: # 模板配置數組
- Name: 高可用版
Url: templates/parameters.yaml # 參數模板檔案的URL
AllowedRegions: # 允許的地區列表
- cn-hangzhou
ServiceType: managed # 服務類型,託管服務
ServiceInfo: # 服務資訊配置
Locale: zh-CN # 本地化配置,中文
ShortDescription: WordPress demo # 簡短描述
Image: 'icons/service_logo.jpg' # 服務表徵圖
Name: WordPress託管版 # 服務名稱
ShareType: Public # 共用類型,公用
ApprovalType: Manual # 審批類型,手動審批
Artifact: # 部署物配置,配置後會構建出相應的計算巢部署物
Artifact_1:
ArtifactType: File # 部署物類型,檔案
ArtifactName: WordPress # 部署物名稱
Description: WordPress # 描述
ArtifactProperty: # 部署物屬性配置
RegionId: cn-hangzhou # 部署物所在地區
Url: 'artifacts/wordpress-6.2-zh_CN.tar.gz' # 部署物檔案URL發布服務
完成倉庫配置後,可以直接登入計算巢控制台,通過倉庫直接建立服務,並完成軟體雲化部署。