业务场景
基于ServiceStage可以方便快捷的将微服务部署到容器(如CCE)、虚拟机(如ECS),同时支持源码部署、jar/war包部署或docker镜像包部署。同时,ServiceStage支持 Java、PHP、Node.js、Go、Python多种编程语言应用的完全托管,包括部署、升级、回滚、启停和删除等。
本实践中使用了Java开发的后台组件和Node.js开发的前台组件。您可以通过容器部署的方式部署应用并将微服务实例注册到微服务引擎CSE中,weathermap应用需要创建以下组件:
前台组件:weathermapweb,基于Node.js语言开发的界面。
后台组件:weather、forecast、fusionweather,基于Java语言开发。
创建并部署后台应用组件
本实践需要创建3个应用组件,对应后台构建任务生成的3个软件包:weather、forecast、fusionweather。
这里以weather包为例介绍操作步骤,其余应用组件的具体步骤不再详述。
1、登录ServiceStage控制台,选择“应用管理 > 应用列表”。
2、单击创建应用时创建的应用名称(例如weathermap)“操作”栏的“新增组件”。
3、“配置方式”选择“自定义配置”,“选择组件类型”选择“微服务”,单击“下一步”。
4、“选择运行时”选择“Docker”,单击“下一步”。
5、“选择框架/服务网格”选择“选择“Java Chassis”, 组件信息栏中“组件名称”输入weather。
6、单击“创建并部署”,部署组件。
- “环境”:选择创建环境时创建的环境(例如test-env)。
- “部署版本”:输入1.0.0。
- “部署系统”:选择“云容器引擎”。
- “实例数量”:设置为1。
- 其他参数使用默认。
7、单击“下一步 组件配置”,进行组件配置。
- “镜像”:单击“选择镜像”,在“我的镜像”页签搜索“weather”,选择创建组织创建的组织名称下的weather镜像包及其版本号,单击“确定”。
- “微服务引擎”:默认选择创建环境时选择的微服务引擎。
说明• 卸载应用组件部署以后,微服务会注册到设置的微服务引擎。
• 所有应用组件需要注册到同一个微服务引擎,才能互相发现。
8、设置环境变量。
展开“高级设置 > 组件配置”,在“环境变量”栏,单击“添加环境变量”,添加以下环境变量。
类型 变量名 变量/变量引用 手动添加 MOCK_ENABLED • true:资源准备时创建的CCE集群中的ECS节点如果没有绑定弹性公网IP或者不能访问公网时,需设置该参数值为true。则应用所用到的天气数据为模拟数据。
• false:资源准备时创建的CCE集群中的ECS节点如果已绑定弹性公网IP且能访问公网时,需设置该参数值为false或者不设置该参数。则应用所用到的天气数据为实时数据。servicecomb_credentials_accessKey 资源准备时获取的AK。
说明:
• 仅当使用微服务引擎专业版时需要配置。
• 如果使用微服务引擎专享版,无需配置。servicecomb_credentials_secretKey 资源准备时获取的SK。
说明:
• 仅当使用微服务引擎专业版时需要配置。
• 如果使用微服务引擎专享版,无需配置。
9、单击“下一步 规格确认”,确认规格。
10、单击“部署”,部署组件。
11、参考以上步骤,依次创建并部署forecast和fusionweather组件,需要设置的参数如下表所示。
组件名称 选择镜像 环境变量 forecast forecast 变量名称:MOCK_ENABLED
变量/变量引用:
• true:资源准备时创建的CCE集群中的ECS节点如果没有绑定弹性公网IP或者不能访问公网时,需设置该参数值为true。则应用所用到的天气数据为模拟数据。
• false:资源准备时创建的CCE集群中的ECS节点如果已绑定弹性公网IP且能访问公网时,需设置该参数值为false或者不设置该参数。则应用所用到的天气数据为实时数据。变量名称:servicecomb_credentials_accessKey 变量/变量引用:资源准备时获取的AK。
变量名称:servicecomb_credentials_secretKey
变量/变量引用:资源准备时获取的SK。fusionweather fusionweather 变量名称:servicecomb_credentials_accessKey
变量/变量引用:资源准备时获取的AK。变量名称:servicecomb_credentials_secretKey
变量/变量引用:资源准备时获取的SK。
创建并部署前台应用组件
1、登录ServiceStage控制台,选择“应用管理 > 应用列表”。
2、单击创建应用时创建的应用名称(例如weathermap)“操作”栏的“新增组件”。
3、“配置方式”选择“自定义配置”,“选择组件类型”选择“微服务”,单击“下一步”。
4、“选择运行时”选择“Docker”,单击“下一步”。
5、“选择框架/服务网格”选择“选择“Mesher”, 组件信息栏中“组件名称”输入weathermapweb。
6、单击“创建并部署”,部署组件。
- “环境”:选择创建环境时创建的环境(例如test-env)。
- “部署版本”:输入1.0.0。
- “部署系统”:选择“云容器引擎”。
- “实例数量”:设置为1。
- 其他参数使用默认。
7、单击“下一步 组件配置”,进行组件配置。
- “镜像”:单击“选择镜像”,在“我的镜像”页签搜索“weathermapweb”,选择创建组织创建的组织名称下的weathermapweb镜像包及其版本号,单击“确定”。
- “微服务引擎”:默认选择创建环境时选择的微服务引擎。
说明• 卸载应用组件部署以后,微服务会注册到设置的微服务引擎。
• 所有应用组件需要注册到同一个微服务引擎,才能互相发现。
8、单击“下一步 规格确认”,确认规格。
9、单击“部署”,部署组件。
确认部署结果
1、登录ServiceStage控制台,选择“微服务引擎 CSE”。
2、步骤 2 选择创建环境时选择的微服务引擎,单击“查看控制台”。
3、选择“服务目录 > 微服务列表”,在“全部应用”下拉列表中选择创建应用时创建的应用名称(例如weathermap)。
如果存在如下已部署的微服务,且各微服务实例数不为0,则部署成功。
• forecast
• fusionweather
• weather
• weathermapweb
添加访问方式
1、登录ServiceStage控制台,选择“应用管理 > 应用列表”。
2、单击创建应用时创建的应用名称(例如weathermap),进入应用“概览”页。
3、在“环境视图”页签,“环境”选择创建环境时创建的环境(例如test-env),查看已经部署的应用组件。
4、单击weathermapweb应用组件名称,进入“概览”页面。
5、单击“访问方式”。
6、单击“TCP/UDP路由配置”区域的“添加服务”,设置以下参数:
- 服务名称:填写weathermapweb。
- 访问方式:选择“公网访问”。
- 访问类型:选择“弹性IP”。
- 服务亲和:选择默认设置。
- 协议:选择TCP。
- 容器端口:填写3000。
- 访问端口:选择“自动生成”。
7、单击“确定”,生成访问地址。
访问应用
1、登录登录ServiceStage控制台,选择“应用管理 > 应用列表”。
2、单击创建应用时创建的应用名称(例如weathermap),进入应用“概览”页。
3、在“环境视图”页签,“环境”选择创建环境时创建的环境(例如test-env),查看已经部署的应用组件。
4、选择weathermapweb应用组件,单击“外部访问地址”后的复制应用访问地址。
5、在浏览器中粘贴应用访问地址,出现以下页面表明应用部署成功。
注意首次访问应用时,weather系统就绪需要一段时间。如果如上图所示页面没有出现,请持续刷新页面。