验证微服务应用
软件工厂提供的集成验证平台和 RealEvo 集成开发环境中的 RealEvo-Simulator 虚拟机均预装了翼辉云原生运行时环境。用户无需进行环境搭建和部署等操作,即可快速进行微服务应用验证。本文将介绍如何配置验证环境、在 ECSM 添加节点、部署服务,并利用 vMessenger 进行 VSOA 通讯测试。
前提条件
- 已参考 搭建开发环境 完成 vMessenger、ECSM 和 RealEvo-IDE 工具安装与环境配置。
- 已参考 开发微服务应用 完成微服务开发,并将其打包上传至本地计算机的 ECSM 平台。
- 已下载 RealEvo-Simulator 虚拟机。
操作步骤
步骤 1:配置验证环境
您可以按需选择虚拟机环境或集成验证平台进行微服务应用的验证,下面将分别介绍如何配置 虚拟机环境 和 集成验证平台环境。
配置虚拟机环境
解压下载的 RealEvo-Simulator 虚拟机压缩文件,双击 RealEvo-Simulator.exe 打开虚拟机程序,启动后的界面如下图所示。下面以配置 x86-64 架构的虚拟机为例进行介绍。
在 RealEvo-Simulator 主界面下方,单击 Open,选择“vm/x64/x64.vm”文件,打开 x64 虚拟机操作界面。单击下方的 Setting,进入虚拟机配置界面。
在虚拟机配置界面中,单击 Virtual Network Adapter 右侧的 Create,进入虚拟网卡创建界面。
在虚拟网卡创建界面的 IP Address 处,设置虚拟网卡的 IP 地址与 SylixOS 系统默认网卡 IP 地址在同一网段(当前 SylixOS 系统默认网卡 IP 地址为 192.168.23.123),然后单击 OK,返回 x64 虚拟机操作界面。
在 x64 虚拟机操作界面,单击下方的 Start 启动虚拟机,启动后运行效果如下图所示。 虚拟机运行期间,不可关闭 SylixOS Terminal 窗口,以免关闭虚拟机。此时可以将此虚拟机作为计算节点添加至 ECSM,进行微服务部署与验证。
配置集成验证平台环境
下面介绍如何配置集成验证平台的网络环境。
通过串口连接集成验证平台后,执行
ipconfig
命令,查看该验证平台的设备名称及其默认 IP 地址。执行
vi /etc/ifparam.ini
命令,按需修改验证平台的网络配置。ifparam.ini 文件的配置示例如下:[emac0] --设备名称 enable=1 --使能网口 ipaddr=10.12.100.4 –-接口IP地址 netmask=255.255.0.0 –-子网掩码 gateway=10.12.0.1 --网关 default=1 --当前接口是否是默认接口
配置完成后,按 ECS 键,并输入 :wq 保存退出。然后重启集成验证平台,此时可以使用修改后的 IP 地址将此验证平台添加至 ECSM 进行微服务部署与验证。
步骤 2:添加节点至 ECSM
双击电脑桌面的 ECSM 快捷图标,在 ECSM 顶部菜单栏中,单击帮助 > 打开环境变量,在本地资源管理器中打开环境变量文件夹 ecsm-app。
在 ecsm-app 文件夹中,打开
config.yaml
文件,参考如下方式添加环境变量 ECSM_REGISTRY_HOST 设置镜像仓库地址,以免容器启动时无法拉取镜像。您也可以参考 环境变量列表 添加其他环境变量,注意冒号后必须加一个空格。ECSM_REGISTRY_HOST: ${当前计算机 IP 地址}
返回 ECSM 主界面,左侧导航栏中,单击节点管理,在节点管理页面,单击左上角的注册,打开注册节点窗口。
在注册节点窗口,参考表 1 设置节点名称、IP 地址和密码等信息。
表 1 注册节点参数说明 参数 描述 示例 名称 节点的名称,支持自定义,名称不能重复 example 地址 节点(即 步骤 1:配置验证环境 时设置的虚拟机或集成验证平台)的 IP 地址,相同 IP 地址的节点不可重复注册 - 密码 节点上 ECSD 的连接密码。如果未设置密码,可随意输入字符串进行注册 - 使用加密 选择使用 TLS 加密,ECSM 会为该节点生成一个安全证书,以保障节点的通信安全。目前暂不支持 TLS 加密,可不设置此选项 - 单击提交,完成节点注册。平台会为节点自动分配固定的端口号。新注册的节点会显示在节点列表中。
步骤 3:部署 SylixOS App 微服务
在左侧导航栏中,单击部署管理 > 容器部署,在容器部署页面,单击左上角的新建,进入新建容器部署页面的基本信息界面。
在基本信息界面,参考表 2 设置相关参数,此处将镜像拉取策略设置为“总是拉取(Always)”,服务自动更新策略设置为“总是使用新镜像更新(Always)”,并单击下一步,进入选择节点界面。
表 2 基本信息参数说明 参数 描述 示例 服务名称 服务的名称,可以自定义,名称不能重复 thermal_server 使用镜像 选择部署容器需要的镜像,包括 Linux 镜像和 SylixOS 镜像。两种镜像对应的节点和资源配置参数不同,Linux 镜像只能部署在 Linux 计算机节点上,SylixOS 镜像只能部署在 SylixOS 计算机节点上 - 镜像拉取策略 预先设置镜像的拉取策略,各策略说明如下: - 总是拉取(Always):总是从 ECSM 镜像仓库拉取镜像
- 若不存在则拉取(If Not Present):如果待部署节点本地有此镜像,则使用本地镜像;如果待部署节点本地没有此镜像,则从 ECSM 镜像仓库拉取
- 从不拉取(Never):只使用待部署节点的本地镜像,从不向 ECSM 仓库拉取镜像
总是拉取(Always) 服务自动更新策略 预先设置服务的自动更新策略,各策略说明如下: - 不自动更新(Never):从不自动更新镜像
- 新镜像版本较大时更新(Larger):当与此镜像名称相同的新镜像被上传或 Push 到 ECSM 镜像仓库时,ECSM 将根据 Semantic Versioning 语义化版本规范对比两个镜像的版本大小,如果新镜像的版本较大,则自动更新服务,并将服务镜像替换为高版本的镜像
- 总是使用新镜像更新 (Always):当与此镜像名称相同的新镜像被上传或 Push 到 ECSM 镜像仓库时,将自动使用新镜像更新服务
总是使用新镜像更新 (Always) 部署后运行服务 设置部署完服务后是否自动运行服务 - 在选择节点界面,单击静态选择,在选择节点下拉框选择要部署到的节点,并单击下一步,进入资源配置界面。
在资源配置页面,参考 Linux 镜像资源配置 或 SylixOS 镜像资源配置 完成参数设置,此处需要打开 VSOA 配置开关,并配置服务密码和端口号,最后单击部署,开始服务部署。
部署完成后,进入容器部署详情页,可以查看此次容器部署的详细信息,并对整个服务或单个容器实例进行启动、停止、暂停、继续和销毁等操作。
单击顶部导航栏中的容器部署,返回容器部署主界面,新部署的服务会显示在服务列表中。此时,可以通过 vMessenger 工具验证 VSOA 通讯是否正常。
步骤 4:验证 VSOA 通讯
双击电脑桌面的 vMessenger 快捷图标,打开 vMessenger 主界面。确认当前 工作空间,按需新建、切换、修改或删除工作空间。
在左侧导航栏中,单击发布 / 订阅,在发布 / 订阅界面,单击新建集合,在新建集合对话框中,设置集合名称,并单击保存,完成集合新建。
在发布 / 订阅界面,右键单击要创建请求的集合,或鼠标悬停至要创建请求的集合并单击,选择新请求,打开新建请求对话框。
在新建请求对话框中,设置请求名称,并单击保存,打开请求详情窗口。
在请求详情窗口,设置请求 URL 为服务链接地址“10.12.XX.XX:5001/v1/thermal”,并设置客户端参数 passwd 为“123456”,单击连接,开始接收 VSOA 消息。
连接成功后,响应数据窗口将提示连接成功信息,并打印接收到的消息和其接收时间。至此,VSOA 通讯验证成功。
步骤 5:更新 SylixOS App 微服务
ECSM 支持服务自动更新策略。当微服务代码有更新时,您可以使用 RealEvo-IDE 重新编译、打包并上传镜像包至 ECSM,触发容器自动更新,从而快速实现功能验证。
- 在 RealEvo-IDE 中打开 开发微服务应用 时创建的 SylixOS App 工程代码文件
thermal_server.c
,修改上报温度数值 "thermal_data" 为 36。static void *publish_thermal_thread (void *arg) { vsoa_url_t url; vsoa_payload_t payload; char param[100]; url.url = "/v1/thermal"; url.url_len = strlen(url.url); payload.data = NULL; payload.data_len = 0; payload.param = param; while (1) { sleep(1); if (!vsoa_server_is_subscribed(server, &url)) { continue; } payload.param_len = sprintf(param, "{\"thermal_data\": 36}"); vsoa_server_publish(server, &url, &payload); } return (NULL); }
- 选中
thermal_server
工程,单击菜单栏中的 🔨 进行编译,或单击右键选择 Build Project 编译工程。 - 参考 打包 SylixOS App 微服务镜像,打包新的容器镜像
thermal_server.tar
。 - 打包成功后,单击确定,进入容器推送设置界面。
- 在容器推送设置界面,按需设置远端仓库 URL 和登录用户名、密码等信息,单击 OK 进行上传。
- 因为 部署 SylixOS App 微服务 时设置的服务自动更新策略为“总是使用新镜像更新 (Always)”,故镜像上传成功后,服务会自动更新。如下图所示,服务状态为“部署中”。
- 在 vMessenger 请求窗口中,单击连接,重新连接 VSOA 请求,可以看到接收到的消息已经为更新后的内容。