男神鹏:微服务开发规范与CI接入流程

工业云微服务统一接入流程(方便后续标准化和接入交付平台):

  1. 接入镜像构建
  2. 录入微服务信息:暂时忽略

镜像构建

 

工业云后台所有微服务的软件源码统一通过 QCI 进行构建;构建所依赖的脚本和 Dockerfile 统一托管在 git 项目tools中,因此微服务项目的组织形式须符合以下两种形式:

  1. 多微服务项目【推荐方式】,例如 iam,asm,或者参考文档项目工程规范
  2. 独立微服务项目,例如 instance-center

所有微服务项目都通过 QCI 模板的方式来创建 QCI 构建任务,请注意以下两点:

  1. 每个项目尽量在每个迭代创建一个构建任务,不要随意创建,后续统一清理现有;
  2. 代码库认证请选择“SSH + Token”方式,相关凭据选贼GIT_SSH即可,自行创建会导致 QCI 构建状态无法同步到工蜂。

具体接入步骤请参考以下内容:

多微服务项目接入 QCI

 

下面我们以项目 iam 为例,独立微服务项目如何接入 QCI:

  1. 选择构建模板QCI构建模板_后台微服务项目,并新建任务
  2. 输入任务名称,建议名称为“项目名-迭代名”;关联需要的代码库:
  3. 选择名为“GIT_SSH”认证,如果没有的话,请看第4步;
  4. 新建认证(可选):
    4.1 选中需要的代码库,如果没有的话,请先登记代码库

    4.2 新增认证,认证方式选择SSH + Token,凭据选择GIT_SSH
  5. 查看基于模板生成的构建任务-iam-来自模板
  6. 任务构建时,如何设置环境变量MODULES
    • 构建多个微服务,可以填写多个微服名,并用英文分号分割
    • 构建单个微服务,填写单个微服务名
    • 构建所有微服务,填为空即可

独立微服务项目接入 QCI

 

下面我们以项目 instance-center 为例,独立微服务项目如何接入 QCI:

  1. 选择构建模板QCI构建模板_后台微服务项目,并新建任务
  2. 输入任务名称,建议名称为“项目名-迭代名”;关联需要的代码库:
  3. 选择名为“GIT_SSH”认证,如果没有的话,请看第4步;
  4. 新建认证(可选):
    4.1 选中需要的代码库,如果没有的话,请先登记代码库

    4.2 新增认证,认证方式选择SSH + Token,凭据选择GIT_SSH
  5. 修改环境变量MODULES接入项目的名称即可,例如项目instance-center,我们可以查看基于模板生成的构建任务-instance-center-来自模板instance-center-crontask来自模板

 

注意:如果发现构建失败,请检查:
是否使用 vendor 模式进行构建,但是没有上传 vendor目录?
如何确定是否使用 vendor 模式:检查项目的 makefile 中 -mod=vendor
如果发现容器运行异常,请检查容器的工作目录,新的 dockerfile 模板已经改为/data
接入模板后,会知道镜像名称的改变,请注意查看下

 

备注:服务构建完后,会同时推送到以下两个镜像仓库中:
  1. # 非云梯腾讯云仓库,边缘机房可以使用该账号
  2. ccr.ccs.tencentyun.com/cloudindustry
  3. username100008089439
  4. passwordLRSxVZwaZ#kj
  5. # 云梯自动化测试环境仓库,日常开发请勿使用
  6. ccr.ccs.tencentyun.com/autotest-cloudindustry
  7. username100011201700
  8. passwordtest@D0cker

查看构建产物

 

目前,QCI 的构建产物为:

  1. 服务镜像列表:message.txt
  2. 服务环境模板:env.yaml

构建环境变量说明

 
  1. MODULES:请查看接入步骤说明
  2. MICRO_*:这两个参数用于构建时指定微服务运行的环境变量,如果是 Docker Swarm 环境下,请将这两个值置为空;
  3. 构建版本号,请自行根据迭代版本进行修改运行配置,如下所示:
posted @ 2020-12-17 10:51  男神鹏●詹姆斯  阅读(253)  评论(0编辑  收藏  举报