全部產品
Search
文件中心

:建立符合計算巢規範的Git倉庫

更新時間:Nov 15, 2024

為了簡化軟體雲化部署,阿里雲計算巢提供了一站式平台,開發人員僅需將自己的Git倉庫配置為符合計算巢服務規範即可實現自動化部署到雲端的操作。官方提供了多個模板,這些模板涵蓋了不同的架構和部署物的類型,便於開發人員從計算巢官方倉庫複製並定製模板。通過計算巢控制台,即可完成服務的建立和發布,實現軟體的雲上部署。本文介紹如何建立符合計算巢規範的Git倉庫的詳細資料。

規範Git倉庫配置

軟體開發人員往往會在GitHub、GitLab、Gitee等地方有自己的倉庫。如果您想要將軟體部署起來,需要手動搭建伺服器並構建環境。阿里雲計算巢為開發人員提供了一站式軟體雲化部署平台,只要將自己的倉庫配置成符合計算巢服務格式規範的倉庫,就可以將軟體自動化地部署到雲端,成為雲上可以執行的軟體。若一開始沒有類似倉庫,可以從計算巢官方倉庫中將模板複製到自己的帳號。

官方倉庫推薦

截至2024年2月28日,計算巢提供了8個私人服務範本和5個全託管服務範本,覆蓋多種架構情境。

服務類型

模板名稱

架構

部署物類型

GitHub地址

私人部署服務

SpringBoot軟體包ECS單機版

單機ECS

軟體包(檔案部署物)

https://github.com/aliyun-computenest/springboot-ecs-package-demo.git

SpringBoot鏡像ECS單機版

單機ECS

ECS鏡像部署物

https://github.com/aliyun-computenest/springboot-ecs-image-demo.git

kodbox-Function Compute版

FC服務

https://github.com/aliyun-computenest/kodbox-fc-demo.git

WordPress

單機版:ECS+RDS

高可用版:多台ECS+RDS+SLB+EIP

軟體包(檔案部署物)

https://github.com/aliyun-computenest/wordpress-ecs-demo.git

SpringBoot軟體包ECS彈性擴縮容版

ECS+SLB(負載平衡)+EIP(彈性公網)+ESS(Auto Scaling)

軟體包(檔案部署物)

https://github.com/aliyun-computenest/springboot-scaling-ecs-demo.git

SpringBoot-ACK容器版

ACK+SLB+EIP

容器鏡像

https://github.com/aliyun-computenest/springboot-ack-docker-demo.git

SpringBoot-ECS容器版

單機ECS

容器鏡像

https://github.com/aliyun-computenest/springboot-ecs-docker-demo.git

SpringBoot-ACK-Helm版

ACK+SLB+EIP

容器鏡像、Helm Chart部署物

https://github.com/aliyun-computenest/springboot-ack-helm-demo.git

單租版全託管服務

SpringBoot託管版單租

ECS+RDS+EIP

軟體包(檔案部署物)

https://github.com/aliyun-computenest/springboot-managed-demo.git

ECS+SLB架構版MySQL(支援私網串連)

ECS+SLB

軟體包(檔案部署物)

https://github.com/aliyun-computenest/mysql-managed-demo.git

WordPress-ECS託管版單租

ECS+本地MySQL+EIP

軟體包(檔案部署物)

https://github.com/aliyun-computenest/wordpress-managed-demo.git

WordPress-ACK託管版多租

ACK+本地MySQL

無部署物,Yaml方式部署Pod

https://github.com/aliyun-computenest/wordpress-managed-ack-demo.git

MariaDB-ACK託管版多租

ACK+本地MariaDB

無部署物,Yaml方式部署Pod

https://github.com/aliyun-computenest/mariadb-managed-ack-demo.git

倉庫目錄檔案說明

此處以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

發布服務

完成倉庫配置後,可以直接登入計算巢控制台,通過倉庫直接建立服務,並完成軟體雲化部署。