更新时间:2024-11-13 GMT+08:00

软件包部署微服务

业务场景

基于ServiceStage可以方便快捷的将微服务部署到容器(如CCE)、虚拟机(如ECS),同时支持源码部署、jar/war包部署或docker镜像包部署。同时,ServiceStage支持Java、PHP、Node.js、Python等多种编程语言应用的完全托管,包括部署、升级、回滚、启停和删除等。

本实践中使用了Java开发的后台组件和Node.js开发的前台组件。

用户故事

在本实践中,您可以通过容器部署的方式部署应用并将微服务实例注册到ServiceComb引擎中,weathermap应用需要创建并部署以下组件:
  1. 前台组件:weathermapweb,基于Node.js语言开发的界面。
  2. 后台组件:weather、fusionweather、forecast、edge-service,基于Java语言开发。

微服务部署有以下几个操作过程:

  1. 创建并部署后台应用组件
  2. 设置edge-service组件访问方式
  3. 创建并部署前台组件
  4. 确认部署结果
  5. 添加访问方式
  6. 访问应用

创建并部署后台应用组件

需要分别创建并部署4个应用组件:weather、forecast、fusionweather、edge-service,对应后台构建任务生成的4个软件包。

  1. 登录ServiceStage控制台。
  2. 单击“应用管理”,进入应用列表。
  3. 单击创建应用时创建的应用名称(例如:weathermap)“操作”栏的“新增组件”。
  4. “基本信息”区域,参考下表设置必填组件基本信息,其余参数保持默认。

    参数

    说明

    组件名称

    输入对应的后台组件名称(例如:weather)。

    组件版本

    单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号。格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。

    所属环境

    选择创建环境时创建的环境(例如:env-test)。

    所属应用

    选择创建应用时创建的应用(例如:weathermap)。

  5. “组件包”区域,参考下表设置必填组件包参数,其余参数保持默认。

    参数

    说明

    技术栈

    选择Java。

    源码/软件包

    选择“Jar包”

    上传方式

    1. 选择“OBS对象存储”
    2. 单击“选择软件包”,参考表1选择对应组件已上传的软件包。

  6. “构建”区域,设置必填构建参数,其余参数保持默认。

    参数

    说明

    组织

    组织用于管理组件构建生成的镜像。

    选择创建组织时创建的组织名称。

    构建环境

    选择“使用当前环境构建”,使用组件所属的部署环境中的CCE集群进行镜像构建。

    当前环境CCE集群的master节点和node节点的CPU架构必须保持一致,否则会导致组件构建失败。

  7. 单击“下一步”
  8. “资源”区域,参考下表设置各组件“实例数”,其余参数设置保持默认。

    组件名称

    实例数

    weather

    2

    forecast

    1

    fusionweather

    1

    edge-service

    1

  9. 绑定ServiceComb引擎。

    • 组件部署以后,微服务会注册到设置的ServiceComb引擎。
    • 所有组件需要注册到同一个ServiceComb引擎,才能互相发现。
    1. 选择云服务配置 > 微服务引擎
    2. 单击“绑定微服务引擎”
    3. 选择当前环境下已纳管的ServiceComb引擎。
    4. 单击“确定”

  10. (可选)选择容器配置 > 环境变量 > 添加环境变量,参考下表分别为weather、forecast、fusionweather组件添加环境变量。

    类型

    变量名称

    变量/变量引用

    手动添加

    MOCK_ENABLED

    设置为false。

    • true:准备资源创建的CCE集群中的ECS节点如果没有绑定弹性公网IP或者不能访问公网时,需设置该参数值为true。则应用所用到的天气数据为模拟数据。
    • false:准备资源创建的CCE集群中的ECS节点如果已绑定弹性公网IP且能访问公网时,需设置该参数值为false或者不设置该参数。则应用所用到的天气数据为实时数据。

  11. 单击“创建并部署”

设置edge-service组件访问方式

  1. 单击左上角,返回“应用管理”页面。
  2. 单击创建应用时创建的应用名称(例如:weathermap),进入“应用概览”页。
  3. “组件列表”,单击edge-service所在行“外部访问地址”列的“设置”,进入“访问方式”页面。
  4. 单击“TCP/UDP路由配置”区域的“添加服务”,参考下表设置参数。

    参数

    说明

    服务名称

    保持默认。

    访问方式

    选择“公网访问”。

    访问类型

    选择“弹性IP”

    服务亲和

    保持默认。

    协议

    选择TCP。

    容器端口

    填写3010。

    访问端口

    选择“自动生成”

    图1 设置edge-service组件访问方式

  5. 单击“确定”,生成访问地址。

创建并部署前台组件

  1. 单击左上角,返回“应用管理”页面。
  2. 单击创建应用时创建的应用名称(例如:weathermap)“操作”栏的“新增组件”。
  3. “基本信息”区域,参考下表设置必填组件基本信息,其余参数保持默认。

    参数

    说明

    组件名称

    输入前台组件的名称:weathermapweb。

    组件版本

    单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号。格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。

    所属环境

    选择创建环境时创建的环境(例如:env-test)。

    所属应用

    选择创建应用时创建的应用(例如:weathermap)。

  4. “组件包”区域,参考下表设置必填组件包参数,其余参数保持默认。

    参数

    说明

    技术栈

    组件技术栈类型选择Node.js。

    源码/软件包

    选择“Zip包”

    上传方式

    1. 选择“OBS对象存储”
    2. 单击“选择软件包”,参考表1选择weathermapweb组件已上传的软件包。
    图2 设置前台组件包参数

  5. “构建”区域,参考下表设置必填构建参数,其余参数保持默。

    参数

    说明

    组织

    组织用于管理组件构建生成的镜像。

    选择创建组织时创建的组织名称。

    构建环境

    选择“使用当前环境构建”,使用组件所属的部署环境中的CCE集群进行镜像构建。

    当前环境CCE集群的master节点和node节点的CPU架构必须保持一致,否则会导致组件构建失败。

  6. 单击“下一步”,添加环境变量。

    1. 选择容器配置 > 环境变量
    2. 单击“添加环境变量”,参考下表添加环境变量。

      类型

      变量名称

      变量/变量引用

      手动添加

      SERVICE_ADDR

      设置edge-service组件访问方式中生成的访问地址。

  7. 单击“创建并部署”

确认部署结果

  1. 单击左上角,返回“应用管理”页面。
  2. 选择微服务引擎 > 微服务目录
  3. 在微服务引擎下拉列表选择部署了微服务应用的ServiceComb引擎。
  4. “微服务列表”页签的“全部应用”下拉列表中选择创建应用时创建的应用名称(例如:weathermap)。

    如果各微服务实例数如下表所示,则部署成功。

    组件名称

    实例数

    weather

    2

    forecast

    1

    fusionweather

    1

    edge-service

    1

添加访问方式

  1. 单击“应用管理”
  2. 单击创建应用时创建的应用名称(例如:weathermap),进入“应用概览”页。
  3. “组件列表”,单击weathermapweb所在行“外部访问地址”列的“设置”,进入“访问方式”页面。
  4. 单击“TCP/UDP路由配置”区域的“添加服务”,参考下表设置参数。

    参数

    说明

    服务名称

    保持默认。

    访问方式

    选择“公网访问”。

    访问类型

    选择“弹性IP”

    服务亲和

    保持默认。

    协议

    选择TCP。

    容器端口

    填写3000。

    访问端口

    选择“自动生成”

    图3 添加访问方式

  5. 单击“确定”,生成访问地址。

    图4 访问地址

访问应用

  1. 单击左上角,返回“应用管理”页面。
  2. 单击创建应用时创建的应用名称(例如:weathermap),进入“应用概览”页。
  3. “组件列表”,单击weathermapweb所在行“外部访问地址”列的外部访问地址。

    出现以下页面表明天气预报微服务应用部署成功。

    图5 应用部署成功
    • 该数据为实时数据。
    • 首次访问应用时,weather系统就绪需要一段时间。如果如上图所示页面没有出现,请持续刷新页面。