制品创建和部署

从代码到制品

上传代码

新建一个项目命名为 base-project,新建一个应用命名为 go-web(具体请参见 项目和应用创建)。

此处以一个简单的 Go 语言 Hello World 服务为例。

在本地新建 go-web 文件夹,并在该文件夹中创建 main.go 文件,写入如下信息:

  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "net/http"
  6. )
  7. func handler(w http.ResponseWriter, r *http.Request) {
  8. fmt.Fprintf(w, "Hello World!")
  9. }
  10. func main() {
  11. http.HandleFunc("/", handler)
  12. log.Fatal(http.ListenAndServe(":8080", nil))
  13. }

初始化 Go 的包管理:

  1. go mod init github.com/erda/go-web

初始化 Git 仓库:

  1. git init
  2. git add .
  3. git commit -m "initialize"

将 Erda 平台的代码仓库地址添加至本地并推送。

您可以进入 DevOps 平台 > 项目 > base-project > 应用中心 > 应用 > go-web > 仓库地址,查看该代码仓库的地址、账号和口令。

制品创建和部署 - 图1

  1. git remote add erda <your-url>
  2. git push -u erda --all
  3. git push -u erda --tags

创建流水线

pipeline.yml 文件是描述从代码编译构建到应用部署的流水线配置文件,更多信息请参见 pipeline.yml

在本地的 go-web 文件夹中创建 pipeline.yml 文件,写入以下内容:

  1. version: "1.1"
  2. stages:
  3. - stage:
  4. - git-checkout:
  5. alias: git-checkout
  6. - stage:
  7. - golang:
  8. alias: go-demo
  9. params:
  10. command: go build -o go-web main.go
  11. context: ${git-checkout}
  12. service: web-server
  13. - stage:
  14. - release:
  15. alias: release
  16. params:
  17. dice_yml: ${git-checkout}/dice.yml
  18. image:
  19. go-demo: ${go-demo:OUTPUT:image}
  20. - stage:
  21. - dice:
  22. alias: dice
  23. params:
  24. release_id: ${release:OUTPUT:releaseID}

dice.yml 文件用于描述应用所需的资源大小、副本数量等,更多信息请参见 dice.yml

在本地的 go-web 文件夹中创建 dice.yml 文件,写入以下内容:

  1. version: "2.0"
  2. services:
  3. go-demo:
  4. ports:
  5. - port: 8080
  6. expose: true
  7. resources:
  8. cpu: 0.2
  9. mem: 512
  10. deployments:
  11. replicas: 1

提交文件:

  1. git add .
  2. git commit -m "add pipeline.yml and dice.yml"
  3. git push erda

执行流水线

进入应用的流水线页面,Master 分支下的默认流水线即由 pipeline.yml 文件解析而成。

制品创建和部署 - 图2

点击右上角 新建流水线,平台将为该流水线创建一条流水线实例。随后点击执行按钮,执行该流水线实例。

制品创建和部署 - 图3

流水线执行过程中,可实时查看流水线各步骤的执行状态,点击日志图标可查看对应节点执行状况的日志信息。

流水线执行成功后,点击 Release Action 上的链接,可进入制品详情页查看制品信息。

制品创建和部署 - 图4

交付制品

按上述步骤创建的制品为临时制品。关于制品的分类及更多信息,请参见 制品

临时制品不适用于交付,仅适用于开发工程师临时部署自测。开发工程师完成自测后,需将制品交付至测试工程师进行测试,以发布非临时制品。下文将为您介绍如何创建非临时制品。

交付测试

在本地的 go-web 文件夹中,创建 Release 分支,此处以 release/1.0 分支为例:

  1. git checkout -b release/1.0

修改代码,例如将 main.go 文件中的 “Hello World!” 改为 “Hello Erda!” ,随后提交文件:

  1. git add .
  2. git commit -m "release 1.0"
  3. git push --set-upstream erda release/1.0

此时的流水线页面将显示 release/1.0 分支。执行该分支下的流水线,执行成功后得到的制品即为非临时制品。

制品创建和部署 - 图5

正式发布

测试通过后需发布正式制品。

点击 Release Action 上的链接跳转至制品详情页,点击 转正式 将其转为正式制品。

制品创建和部署 - 图6

您也可以进入 DevOps 平台 > 项目 > base-project > 应用中心 > 制品,将目标制品转为正式版。

制品创建和部署 - 图7

正式制品一经创建将无法修改,包括删除、编辑或转正。

部署

完成制品创建后,您可以进入 应用中心 > 环境部署 > 部署,选择对应的环境以实施部署。

资源配额

在执行部署操作前,请先确认该项目目标环境下的资源配额是否满足部署要求。

请进入 DevOps 平台 > 项目 > 项目设置 > 项目配额 查看配额。更多资源管理相关内容,请参见 资源配额

制品创建和部署 - 图8

部署 Addon

自定义类型的 Addon 需在部署前准备完成。

进入 DevOps 平台 > 项目 > 应用中心 > 环境部署 > Addons,点击 添加服务,选择 三方服务Custom

制品创建和部署 - 图9

按需配置信息。

制品创建和部署 - 图10

部署配置

进入 DevOps 平台 > 项目 > 应用中心 > 环境部署 > 配置,按需修改配置。

制品创建和部署 - 图11

tip 提示

若完成部署后再次修改配置,则新配置需重启服务或重新部署方可生效。

Erda 提供多种配置方式,具体请参见 配置

实施部署

资源及配置准备就绪后,您可以进入 DevOps 平台 > 项目 > 应用中心 > 环境部署 > 部署 实施部署操作。

选择对应的环境后,选择需部署的制品并创建部署。

tip 提示

创建部署时,平台将对制品在当前环境的部署行为进行前置校验,请按照提示操作。

制品创建和部署 - 图12

点击 开始部署,平台将根据制品中的分组编排依次执行部署操作。

制品创建和部署 - 图13

部署过程中,您可以点击该部署记录查看当前部署的进度,等待部署完成即可。

制品创建和部署 - 图14

关于部署更多信息,请参见 部署管理