华为云用户手册

  • 配置流水线(以添加代码检查任务为例) 在流水线的“任务编排”页面,单击,新建阶段,如图3所示。 图3 新建阶段 单击,在“编辑阶段”页面,修改“阶段名称”为“代码检查”,并将“总是运行”设置为“否”(选择“是”,表示流水线执行时,该阶段下的任务默认选中必须执行且不可取消;选择“否”,表示流水线执行时,该阶段下的任务默认选中但可以取消。),然后单击“确定”。 在流水线的“代码检查”阶段,单击“新建任务”。 在“新建任务”页面的右侧区域,选择“代码检查”页签,单击“CodeArtsCheck代码检查”后的“添加”,将此插件添加到任务中,如图4所示。 图4 代码检查 在“任务配置”页面右侧区域“请选择需要调用的任务”处单击“点击创建”,如图5所示,进入“新建任务”页面,参照表2配置参数信息(此处以创建Repo源码源检查任务为例),配置完成后单击“新建任务”。 图5 创建代码检查任务 表2 参数说明 参数项 描述 归属项目 任务所属项目。默认填写,无需设置。 代码源 选择Repo,从代码托管拉取代码进行检查。 任务名称 代码检查任务名称,可自定义。 仓库 选择需要检查的代码仓库。 分支 填写需要检查的仓库分支名称。 检查语言 选择需要检查的代码语言。 返回5的“任务配置”页面,在“请选择需要调用的任务”下拉列表中选择已配置完成的代码检查任务,“仓库”下拉列表选择创建代码仓库中已创建的仓库,其他参数无需配置,保持默认即可。 单击“确定”,添加代码检查任务完成。 单击“任务编排”页面右上角“保存”,保存流水线的任务配置。
  • 步骤一:创建代码仓 开发人员进行代码开发前,需要先创建代码仓库用于托管代码。 在开发中心首页下方的“我的团队”区域,选择需要操作的团队卡片,进入该团队空间。 如果该团队关联多个服务,可在顶部切换团队关联的其他服务。也可在顶部切换其他团队。 在左侧导航栏选择“代码仓管理”。 单击页面右上角“创建仓库”,输入仓库名称及仓库描述,单击“确定”。 创建后仓库列表显示该仓库,状态为“创建中”,待状态变为“使用中”,可以单击该仓库所在行“操作”列的“详情”,进入仓库详情页面,使用该仓库。关于代码托管文档请参见代码托管(CodeArts Repo)。
  • 步骤二:下载代码 下载代码是AppStage集成代码托管CodeArts Repo服务的能力,基于Git的 代码托管服务 ,支持将仓库文件下载到本地进行文件的操作。该操作需要具备开发人员角色权限,权限申请方法请参见申请权限。 在开发中心左侧导航栏,选择“代码仓管理”。首次将仓库克隆/下载到本地的方式主要分为以下三种: 使用SSH协议克隆代码托管仓库到本地。 使用HTTPS协议克隆代码托管仓库到本地。 从浏览器下载代码包。
  • 创建版本 为服务创建版本,进而在版本管理活动中进行流水线和发布流程等有序开发和特定发布过程管理。 在开发中心首页下方的“我的团队”区域,选择需要操作的团队卡片,进入该团队空间。 如果该团队关联多个服务,可在顶部切换团队关联的其他服务。也可在顶部切换其他团队。 在左侧导航栏选择“版本管理”。 在“版本管理”页面,单击右上角“创建版本”。 在“创建版本”页面,设置版本的基本及配置信息,参数说明详见表1。 表1 创建版本参数说明 参数名称 参数说明 基本及配置信息 服务 无需配置,默认为当前服务名称。 版本号 必填项,根据界面输入框填写规划的版本号(系统将自动合成完整版本号)。示例:23.0.1.100 版本描述(可选) 非必填项,版本信息相关的简要描述。 软件类型 无需配置,默认为“服务软件”。 版本类型 必填项,可分为两种类型: 基线 补丁,在版本规划时需规划补丁版本缺陷,详见规划补丁版本缺陷。 发布类型 无需配置,默认为“标准发布”。 关联发布计划 仅服务关联了IPD类型的项目(IPD系统设备类项目、IPD独立软件类项目),且“版本类型”选择“基线”时,需配置此参数。 选择需要关联的发布计划,也可勾选“自动创建新发布计划”,自动创建的新发布计划名称默认为版本号。 关联迭代 仅服务关联了Scrum类型的项目,且“版本类型”选择“基线”时,需配置此参数。 选择需要关联的迭代,也可勾选“自动创建新迭代”,自动创建的新迭代名称默认为版本号。 产能 必填项,指版本开发团队每天能提供的开发人员的数量。单位:人/天。 选择计划时间 版本开始时间 必填项,版本开始的日期。 自动创建新发布计划或自动创建新迭代时,开始时间默认为设置的版本开始时间。 版本发布时间 必填项,版本发布的日期。 自动创建新发布计划或自动创建新迭代时,发布时间默认为设置的版本发布时间。 单击“提交”。 在版本列表中可查看到此新建版本。
  • 步骤二:创建团队 在开发中心进行服务开发前,需要组织管理员创建一个团队,将团队关联需要开发的服务。一个团队只能归属一个部门,可以关联一个或多个服务。 在开发中心首页下方的“我的团队”区域,单击右侧“创建团队”。 在“创建团队”页面,设置团队相关参数,参数配置请参见表1。 表1 创建团队参数说明 参数名称 参数说明 团队名称 必填项,团队的命名。 团队归属部门 必填项,选择系统中已提前创建的部门。 关联服务 必填项,选择系统中已提前创建并发布的服务。 团队 LOG O 必填项,单击系统默认图片上的“点击修改”,可选择本地图片自定义LOGO图片。 团队简介(可选) 非必填项,团队空间的功能描述或其他备注信息。 单击“创建”。 在“我的团队”区域可查看到创建的团队的卡片。
  • 步骤三:配置服务扩展信息 开发中心深度集成CodeArts服务的功能,需组织管理员或项目经理对当前服务关联CodeArts项目,后续的服务开发过程中才能正常使用CodeArts服务的代码托管、流水线、编译构建功能;同时在服务配置页面,可查看当前服务的基础信息(如所属产品、所属部门、服务状态等)。 在开发中心首页下方的“我的团队”区域,选择需要操作的团队卡片,进入该团队空间。 如果该团队关联多个服务,可在顶部切换团队关联的其他服务。也可在顶部切换其他团队。 在左侧导航栏选择“服务配置”。 在“服务配置”页面,单击“关联项目”。 在“关联项目”对话框中的“项目名称”下,输入项目名称(默认为当前服务名称,可自定义修改),根据实际业务需要在“项目类型”下拉框选择项目类型(Scrum、IPD-系统设备类、IPD-独立软件类),如图1所示,然后单击“确定”。 图1 关联项目 在“关联项目”对话框对将要关联的项目名称进行二次确认,单击“确定”。 关联项目成功后不可解除关联。 关联项目成功:在“服务配置”页面的“服务扩展信息”区域,可查看关联项目名称、关联项目类型。 关联项目失败:系统检测到您尚未进行凭证(AK/SK)授权时,将弹框提示关联失败,并提示您前往AppStage管理控制台进行凭证授权,完成凭证(AK/SK)授权后,返回“服务配置”页面,重新关联项目。
  • 步骤一:添加开发中心用户 开发中心的用户数根据购买规格有相应的用户数量限制,组织管理员通过用户的添加或删除来合理管理开发中心的使用人员。 在开发中心首页右上角选择“用户管理”。 在“用户管理”页面,单击右上角“添加用户”。 在“添加用户”页面上方输入框输入用户名或账号名进行搜索,在左侧区域框中勾选一个或多个用户,选中的用户显示在右侧“已选择”区域框。 单击“确定”,新添加的用户显示在用户列表中。 在用户列表中,可查看已添加的用户账号名、添加人及添加时间等信息。
  • 解决方案 一站式使用应用平台流程如图1所示。 图1 使用流程 表1 使用流程详解 序号 流程环节 说明 1 准备工作 将应用接入AppStage前需要购买AppStage的开发中心、运维中心,并完成相关配置。 2 应用开发 配置开发团队及服务扩展信息 添加开发中心用户 开发中心的用户数根据购买规格有相应的用户数量限制,组织管理员通过用户的添加或删除来合理管理开发中心的使用人员。 创建团队 在开发中心进行服务开发前,需要组织管理员先创建一个团队,将团队关联需要开发的服务。 服务配置 将团队关联服务后,还需将团队关联的服务关联CodeArts项目,后续的服务开发管理过程中才能正常使用CodeArts服务的代码托管、流水线、编译构建功能。 添加团队成员 在团队多用户协作开发过程中,不同角色成员执行各自权限和责任事项,因此需要在团队中添加协作开发的各角色成员(项目经理、开发人员、测试人员等),实现统一有序的成员信息管理。 创建及规划版本 创建版本 对团队所关联的服务划分版本,包括创建版本的基本配置信息以及选择版本开始和结束时间。 规划交付件 在版本开发启动初期对产品开发过程所需的交付件进行规划,以辅助开发过程规范有序且可追溯。 开发版本 创建代码仓 使用代码托管内置的仓库模板创建代码管理的仓库。 下载代码 基于Git的代码托管服务,支持将仓库文件下载到本地进行文件的操作。 安装插件 开发人员可下载所需的开发工具,如WiseStudio 插件、Nuwa 插件、Wushan 插件后进行安装。 开发代码 开发代码的详细指导请参见《开发指南》。 提交代码到代码仓 开发在本地完成业务代码后,需要提交代码文件至代码仓库。 代码安全检视 进行安全编码TOP问题的信息统计和检查结果录入。 管理交付件 管理版本开发过程不同阶段所需或交付的必要文档,保证版本开发过程阶段性成果沉淀以及过程可追溯。 构建版本 根据需要的场景,如开发测试环境应用部署、生产环境应用部署等,对这些自动化任务进行自定义编排,一次配置后就可以一键自动化触发调度执行。 测试版本 对于版本测试过程发现的缺陷进行记录、跟踪、分析和解决,包括管理版本缺陷、管理测试结论以及管理关键风险等。 编辑总体测试结论、系统预置的测试类型结论,新增和管理自定义测试类型的测试结论,以及新增和管理版本关键风险问题。 发布版本 待版本开发及编译构建完成,且发布准入检查项均通过后,可由开发人员、测试人员或项目经理提交标准发布申请,待项目经理审批通过后,将软件发布到对应的部署平台。 3 应用部署 配置服务环境 使用AppStage运维中心前需要先准备环境并为服务关联区域、账号和企业项目。 申请资源 应用部署需要使用虚拟机、CCE、数据库等相关资源,您可以申请资源,或者在华为云购买资源后,将资源接入AppStage。 更新环境 开发完成的应用软件包,通过流水线发布,可以发布至运维中心的部署服务中,使用部署服务完成应用部署。 4 应用运维 数据接入 虚拟机日志接入 支持通过部署filebeat完成虚拟机日志采集。日志接入后,可以对日志进行检索,查看已接入日志,具体操作请参见日志检索。 容器日志接入 支持将容器日志接入AppStage运维中心。 日志接入后,可以对日志进行检索,查看已接入日志,具体操作请参见日志检索。 主机监控接入 支持定义服务的监控模板,然后通过为主机绑定监控模板,采集主机监控数据。 CES 指标接入 支持将 云监控服务 CES采集的监控指标数据接入至AppStage运维中心,如需将CES生成的告警接入AppStage运维中心,可参考CES告警接入操作。 运维监控 指标开发 对已产生或接入的数据进行指标开发 监控报表开发 对已创建的指标或视图数据进行业务报表开发。配置后可以查看业务报表监控,具体操作请参见查看业务报表。 告警配置 支持对虚拟机监控数据或业务数据配置告警,及时掌握虚拟机状态,容器接入并安装监控插件后会自动生成告警。告警配置后可以查看告警,并及时处理告警问题,具体操作请参见查看告警。
  • 背景信息 应用平台以“应用”为中心,基于云原生技术,打造了覆盖应用开发、托管、运维全生命周期支持的应用平台,面向企业IT应用、移动应用等提供一站式、集成式的云原生应用服务能力,支持开箱即用,全流程规范可视,高效异地协作,是沉淀行业通用能力,结合华为优秀实践,为产业上云及行业SaaS构建的竞争力底座。 开发应用主要使用AppStage的开发中心,其深度集成CodeArts的功能,购买AppStage后需开通CodeArts后才能使用开发中心,请在AppStage购买页面根据页面提示,前往开通CodeArts地址进行开通。
  • 验证接口能否正常调用 验证接口能否正常调用,本实践中以验证Cloud Map间的相互通信及OrgID的登录流程为例。 配置host。 打开C:\Windows\System32\drivers\etc\hosts,添加本地 域名 ,本实践中添加内容如下:100.85.157.106 org-app.huawei.com。 浏览器访问域名:http://org-app.huawei.com。 登录OrgID。 账号:139*****485 密码:zzp139*****485 访问后端接口:http://org-app.huawei.com:8080/order/1。
  • 操作步骤 在华为云控制台,完成如表1所示的资源购买。 表1 资源列表 资源名称 说明 参考文档 CCE集群 购买1个CCE集群。 根据业务需要选择规模,本实践中选择集群规模为50节点。 购买集群 E CS 服务器 购买1个ECS服务器,容灾场景下购买2个ECS服务器。 根据业务需要选择规格,本实践中选择规格为:通用计算增强型/2vCPUs/4GiB/c6.large.2 购买ECS 启用环境并录入账号信息,具体请参见环境配置及账号录入。 完成资源接入,具体请参见资源接入。 在微服务容器化部署前,需要在微服务平台为环境绑定CCE集群,用于在环境下部署和运行微服务。具体请参见环境配置。
  • 配置流水线(添加代码检查任务) 在流水线的“任务编排”页面,单击或者。 单击,在“编辑阶段”页面,修改“阶段名称”为“代码检查”,并将“总是运行”设置为“否”(选择“是”,表示流水线执行时,该阶段下的任务默认选中必须执行且不可取消;选择“否”,表示流水线执行时,该阶段下的任务默认选中但可以取消。),然后单击“确定”。 在流水线的“代码检查”阶段,单击“新建任务”。 在“新建任务”页面的右侧区域,选择“代码检查”页签,搜索“CodeArtsCheck代码检查”并将鼠标移至该插件卡片,单击“添加”,将此插件添加到任务中。 在“任务配置”页面右侧区域“请选择需要调用的任务”处单击“点击创建”。 在“新建任务”页面,参照表2配置参数信息(此处以创建Repo源码源检查任务为例)。 表2 参数说明 参数项 描述 归属项目 任务所属项目。默认填写,无需设置。 代码源 选择Repo,从代码托管拉取代码进行检查。 任务名称 代码检查任务名称,可自定义。 仓库 选择需要检查的代码仓库。 分支 填写需要检查的仓库分支名称。 检查语言 选择需要检查的代码语言。 单击“新建任务”,进入“代码检查详情”页面,单击“开始检查”,即可执行代码检查任务。执行完代码检查任务后,还可以根据需要查看检查结果。 返回5的“任务配置”页面,在“请选择需要调用的任务”下拉列表中选择7配置完成的代码检查任务,“仓库”下拉列表选择创建代码仓库中已创建的仓库,其他参数无需配置,保持默认即可。 单击“确定”,添加代码检查任务完成。 单击“任务编排”页面右上角“保存”,保存流水线的任务配置。
  • 配置流水线(添加业务包构建任务) 在流水线的“任务编排”页面,单击或者。 单击,在“编辑阶段”页面,修改“阶段名称”为“构建阶段”,并将“总是运行”设置为“是”(选择“是”,表示流水线执行时,该阶段下的任务默认选中必须执行且不可取消;选择“否”,表示流水线执行时,该阶段下的任务默认选中但可以取消。),然后单击“确定”。 在流水线的“构建阶段”,单击“新建任务”。 在“新建任务”页面的右侧区域,选择“构建”页签,搜索“Build构建”并将鼠标移至该插件卡片,单击“添加”,将此插件添加到任务中。 在“任务配置”页面右侧区域“请选择需要调用的任务”处单击“点击创建”,如图2所示。 图2 Build构建任务配置 在“新建构建任务”页面的“基本信息”页面,自定义任务名称(以“adadss-build”为例),归属项目默认为当前服务,源码源选择“Repo”,选择对应的代码仓库(以创建好的“adadss”仓库为例)以及分支“master”,单击“下一步”。 在“构建模板”页面,选择“空白构建模板”模板,然后单击“下一步”,进入“构建步骤”的“图形化”页签,该页面的“构建环境配置”和“代码下线配置”无需配置,保持默认配置即可。 配置构建步骤“Maven构建”。 返回“构建步骤”页签,单击“点击添加构建步骤”,在右侧“添加步骤”页面搜索“Maven构建”,鼠标移至插件卡片并单击“添加”。 执行maven构建命令将业务代码打包,不同项目有所不同。 参考示例:mvn -Dassembly clean compile package -Dmaven.test.skip=true -U -T4 若某些jar包依赖不到,可将仓库地址添加在setting配置的公有依赖仓库。 配置镜像构建。 登录华为云 容器镜像服务 控制台,在左侧导航栏选择“我的镜像”,单击右上角“页面上传”,在“页面上传”对话框,创建组织(必须使用华为云账号),单击“选择镜像文件”,选择已经准备好的基础镜像tar包,单击“开始上传”,待任务进度显示“上传完成”,表示镜像文件上传成功。 基础镜像tar包仅需上传一次,后续可直接从镜像文件列表中选取。 在镜像仓库找到9.a上传的基础镜像,参照图3复制镜像地址。 图3 复制镜像地址 将9.b复制的镜像地址粘贴到Dockerfile文件中第一行FROM命令后,如图4所示。 图4 将镜像地址粘贴到Dockerfile文件中 返回华为云容器 镜像服务 控制台镜像列表中单击镜像tar包名称,进入镜像详情页面,选择“Pull/Push指南”页签,单击“操作步骤”中的“生成登录指令”。 在“登录指令”对话框中的“临时登录指令”框的指令末尾处单击,复制临时登录指令,如图5所示。 图5 复制临时登录指令 返回“构建步骤”页面,单击“添加步骤”,在右侧“添加步骤”页面搜索“执行Docker命令”,鼠标移至该插件卡片并单击“添加”。 单击“执行Docker命令”步骤,在右侧“命令”参数下单击“添加”添加docker命令,在“命令”下拉框中选择“login”,参数框中输入“-u cn-north-7@K5X8GVN5B4H4B8KB9SDO -p 1dd00acee886bd05886cded19f5af1cb1e96326e4354fc0f3f493f12a3586518 swr.cn-north-7.myhuaweicloud.com”,登录环境以便Dockerfile文件中可正常获取基础镜像。 在“操作”列单击“+”继续添加docker命令,“命令”下拉框中选择“build”,参数框中输入“-t helloworldservice:23.11.02.1 -f ./deploy_docker/Dockerfile .”,指定代码仓中的Dockerfile文件,构建镜像。 工作目录一般为根目录。 在“操作”列单击“+”继续添加docker命令,“命令”下拉框中选择“save”,参数框中输入“-o helloworldservice.23.11.02.1.tar helloworldservice:23.11.02.1”,将镜像包保存为tar包。至此,添加docker命令完成,如图6所示。 图6 执行docker命令 返回“构建步骤”页面,单击“添加步骤”,在右侧“添加步骤”页面搜索“Maven构建”,鼠标移至插件卡片并单击“添加”。执行zip命令,将tar包与业务代码中的package.json文件直接压缩成一个zip包。 参考命令:zip helloworldservice_23.11.02.1.zip helloworldservice.23.11.02.1.tar package.json 继续单击“添加步骤”,添加“上传文件到OBS”插件,在“上传文件到OBS”页面,参照表3配置相关参数。 表3 “上传文件到OBS”(业务包)步骤配置的参数说明 参数名称 参数说明 步骤显示名称 构建步骤的名称,默认为“上传文件到OBS”,保持默认或自定义修改均可。 授权用户 在下拉列表选择: 当前用户:上传到当前租户的OBS桶。 其他用户:可以通过选择 IAM 账号的方式上传到指定租户的OBS桶。 IAM账号 “授权用户”选择“其他用户”时需配置此参数,配置步骤如下: 单击“管理IAM账号”,进入“服务扩展点管理”页面。 单击“新建服务扩展点”,选择“IAM账户”,弹出“新建服务扩展点”对话框,填写以下参数,补充租户下用户的AK、SK即可: 连接名称:服务扩展点的名称。例如“obs权限”。 Access Key Id:访问密钥ID(AK),获取访问密钥AK/SK。 Secret Access Key:秘密访问密钥(SK),获取访问密钥AK/SK。 信息填写完成,单击“确定”。 构建产物路径 路径为10的zip包的相对路径或输入*模糊匹配(如“./DemoServiceB/*.zip”) 桶名 用户自定义构建结果上传到的目标OBS桶名。 OBS存储目录 用户自定义构建结果在OBS上的存储目录 OBS存储文件名 非必填项,构建结果在OBS上的存储文件名(不包含目录),留空时可上传多个文件,取构建产物文件名为OBS存储文件名;不为空时只能上传单个文件,如 application.jar。 是否上传文件夹 非必填项,可选择是否开启上传文件夹。 OBS头域 非必填项,上传文件时加入一个或多个自定义的响应头,当用户下载此对象或查询此对象元数据时,加入的自定义响应头会在返回消息的头域中出现。如:“键”填写成“x-frame-options”,“值”填写成“false”,即可禁止OBS中存放的网页被第三方网页嵌入。 单击右上角“新建”,配置构建任务完成。 返回5的“任务配置”页面,在“请选择需要调用的任务”下拉列表中选择12配置完成的构建任务,“仓库”下拉列表选择创建代码仓库中已创建的仓库,其他参数无需配置,保持默认即可。 单击“确定”,添加业务包构建任务完成。 单击“任务编排”页面右上角“保存”,保存流水线的任务配置。
  • IaC目录规划 IaC脚本开发规范请参考应用平台IaC部署代码开发,本实践中,IaC包结构规划如下: 表1 IaC Spec包结构说明 位置 描述 iacspec IaC压缩包 └── global/ 全局默认的IaC描述,包含完整文件结构。 │ └── meta.yaml 变更策略描述 └── specs/ 环境特定的IaC描述,结构与global相同,但仅包含与global有差异的文件。 │ └── cn_green_cbu_default/ 研发联调环境,命名采用站点级Cloud Map的名称,可以在环境管理界面查看可选的站点级Cloud Map名称列表。 │ └── DemoOrgidLogin/ 微服务DemoOrgidLogin。 │ └── config/ DemoOrgidLogin的配置目录。 │ └── aiops_sidecar_param.json 接入AIOps服务的配置文件。 │ └── config_records.yaml DemoOrgidLogin的业务配置项。 │ └── config_schema.yaml 声明DemoOrgidLogin的业务配置项属性,敏感业务配置项需要声明,非敏感配置项可以不声明。 │ └── envs.yaml 用于配置和管理DemoOrgidLogin的环境变量。 │ └── hosts.yaml 配置主机域名映射。 │ └── resources.yaml DemoOrgidLogin的资源列表。 │ └── values.yaml 定义DemoOrgidLogin的资源列表中使用的变量。 │ └── DemoServiceAService/ 微服务DemoServiceAService │ └── config/ ServiceA的配置目录。 │ └── aiops_sidecar_param.json 接入AIOps服务的配置文件。 │ └── config_records.yaml ServiceA的业务配置项。 │ └── config_schema.yaml 声明ServiceA的业务配置项属性,敏感业务配置项需要声明,非敏感配置项可以不声明。 │ └── envs.yaml 用于配置和管理ServiceA的环境变量。 │ └── hosts.yaml 配置主机域名映射。 │ └── resources.yaml ServiceA的资源列表。 │ └── values.yaml 定义ServiceA的资源列表中使用的变量。 │ └── DemoServiceBService/ 微服务DemoServiceBService。 │ └── config/ ServiceB的配置目录。 │ └── aiops_sidecar_param.json 接入AIOps服务的配置文件。 │ └── config_records.yaml ServiceB的业务配置项。 │ └── config_schema.yaml 声明ServiceB的业务配置项属性,敏感业务配置项需要声明,非敏感配置项可以不声明。 │ └── envs.yaml 用于配置和管理ServiceB的环境变量。 │ └── hosts.yaml 配置主机域名映射。 │ └── resources.yaml ServiceB的资源列表。 │ └── values.yaml 定义ServiceB的资源列表中使用的变量。 └── package.json 包描述文件。
  • 概述 支持将应用部署到AppStage,对于Spring Cloud框架开发的服务,需要在代码中添加相应的依赖和配置。本章以开发SpringCloudDemo为例,演示如何开发业务代码及IaC部署脚本。您可以下载Demo源码,结合本章内容进行理解。 SpringCloudDemo包含DemoOrgidLogin、DemoServiceAService与DemoServiceBService三个微服务,其中DemoOrgidLogin是集成OrgID登录功能的微服务,DemoServiceAService为用户管理微服务、DemoServiceBService为订单管理微服务,其包含了完整的源代码以及构建好的容器镜像。 我们采用Cloud Map来实现微服务注册发现及微服务之间的调用,使用STS进行微服务身份认证及敏感信息管理,WiseDBA提供数据库管理功能,SLB管理路由转发负载均衡。接下来将介绍如何集成STS、Cloud Map、WiseDBA、SLB以及OrgId的登录功能。 父主题: 代码开发
  • 使用SSH协议在TortoiseGit客户端克隆代码 本节内容指导如何使用TortoiseGit客户端克隆代码托管服务的仓库到本地环境中。 下载并安装TortoiseGit客户端。 获取仓库地址。 在仓库主页中,单击“克隆/下载”按钮,获取SSH地址,通过这个地址,可以在本地计算机连接代码托管仓库。 您可在代码托管服务仓库列表中“仓库地址”下获取SSH地址。 进入您的本地仓库目录下,右键选择“Git克隆”菜单选项,如下图所示。 在弹出的窗口中将上述复制的SSH地址粘贴到URL输入框中,勾选“加载Putty密钥”并选择私钥文件,最后单击“确定”,如下图所示。 单击“确定”之后即开始克隆仓库,如果您是第一次克隆TortoiseGit客户端会询问您是否信任远程仓库,单击“是”即可。 克隆用时受仓库大小影响,克隆的动作如下图所示。
  • 使用SSH协议在Git Bash客户端克隆代码 本节内容指导如何使用Git Bash客户端克隆代码托管服务的仓库到本地环境中。 下载并安装Git Bash客户端。 设置SSH密钥。 获取仓库地址。 在仓库主页中,单击“克隆/下载”按钮,获取SSH地址,通过这个地址,可以在本地计算机连接代码托管仓库。 如果您未配置SSH密钥,您可单击上图中“SSH密钥管理”链接进行配置,详情请参考SSH密钥。 您可在代码托管服务仓库列表中“仓库地址”下获取SSH地址。 打开Git Bash客户端。 在本地计算机上新建一个文件夹用于存放代码仓库,在空白处单击鼠标右键,打开Git Bash客户端。 克隆仓库时会自动初始化,无需执行init命令。 输入如下命令,克隆代码托管仓库。 git clone 仓库地址 命令中“仓库地址”即3中获取的SSH地址。 如果您是第一次克隆仓库,会询问您是否信任远程仓库,输入“yes”即可。 执行成功后,您会看到多出一个与您在代码托管服务新建的仓库同名的文件夹,并且其中有一个隐藏的.git文件夹,则说明克隆仓库成功。 此时您位于仓库上层目录,执行如下命令,进入仓库目录。 cd 仓库名称 进入仓库目录,可以看到此时Git默认为您定位到master分支。 客户端在git clone代码仓库时失败的原因排查: 确保您的网络可以访问代码托管服务。 请在git客户端使用如下测试命令验证网络连通性(其中“**********.com”为代码仓库地址)。 ssh -vT git@**********.com 如果返回内容含有“Could not resolve hostname **********.com: Name or service not known”,则您的网络被限制,无法访问代码托管服务,请求助您本地所属网络管理员。 请检查建立的SSH密钥配对关系,必要时重新生成密钥并到代码托管控制台进行配置。 只有开启IP白名单的机器才可以在Git客户端克隆。
  • 创建微服务信息 在“应用基础信息管理”页面的左侧导航,选择“微服务管理”。 在“微服务管理”页面右上角,单击“创建微服务”。 在“创建微服务”页面的“所属服务”下拉列表中选择微服务所属服务,设置微服务中文名(本案例为DemoOrgidLogin、DemoServiceAService、DemoServiceBService)、微服务英文名(本案例的英文名同中文名),其中微服务所属服务和微服务英文名设置后不可修改。 微服务DemoOrgidLogin是集成OrgID登录功能的微服务;DemoServiceAService、DemoServiceBService是业务微服务,其中DemoServiceAService用于管理用户、DemoServiceBService用于管理订单。 微服务中文名支持汉字、数字、字母,3~64个字符。 微服务英文名必须以字母开头,支持大小写字母、数字,3~64个字符,创建后不可修改。 微服务英文名是微服务在系统内的唯一标识,录入后不可修改,系统在部分场景下会使用微服务英文名代替微服务中文名进行展示。 单击“创建”。在微服务列表中可查看到此新建的微服务“状态”为“草稿”。 在新创建的微服务所在行“操作”列单击“发布”,在弹框中单击“确认”。 在微服务列表中可查看到此新建微服务“状态”为“已发布”,录入微服务信息完成。
  • 创建服务信息 在“应用基础信息管理”页面的左侧导航,选择“服务管理”。 在“服务管理”页面右上角,单击“创建服务”。 在“创建服务”页面的“所属产品”下拉列表中选择服务所属产品,设置服务中文名和服务英文名(本案例均为“jamesService22A”),其中服务所属产品和服务英文名设置后不可修改。 服务中文名支持汉字、数字、字母,3~64个字符。 服务英文名必须以字母开头,支持大小写字母、数字,3~64个字符,创建后不可修改。 服务英文名是服务在系统内的唯一标识,录入后不可修改,系统在部分场景下会使用服务英文名代替服务中文名进行展示。 单击“创建”。在服务列表中可查看到此新建的服务“状态”为“草稿”。 在新创建的服务所在行“操作”列单击“发布”,在弹框中单击“确认”。 在服务列表中可查看到此新建服务“状态”为“已发布”,录入服务信息完成。
  • 准备工作 在执行操作前,需要提前完成如下准备工作,以满足操作的环境要求。 已购买AppStage的开发中心、运维中心 已关联组织 已配置AppStage各中心服务授权 已添加组织的部门/成员信息 已获取组织管理员、项目经理、开发人员、测试人员、服务运维岗位、基础运维岗位或运维管理员权限,权限申请操作请参见申请权限。 AppStage租户需要在华为云上购买一个OBS桶并配置桶名(用于存放编译构建的产物),具体操作方法请参见创建桶。 父主题: 基于Spring Cloud框架进行应用上云
  • 步骤二:创建指标 在“指标仓库”页面,单击已创建的逻辑主体。 单击逻辑主体页面的“新建指标”,选择“新建单个指标”。 配置指标参数,参数说明如表2所示,配置完成后,单击“创建”。 表2 配置指标参数说明 参数名称 参数说明 类型 选择需要创建指标的类型。 ABSTRACT:抽象指标。 BASIC:基础指标。 DERIVED:派生指标。 COMPOSITE:组合指标。 DERIVED_COMPOSITE:派生组合指标。 英文名称 自定义英文名称,支持输入字母、数据和下划线。 中文名称 自定义中文名称。 指标等级 选择指标等级。 GOLD:黄金指标,一般为请求量、时延、成功率。 HEALTH:健康指标。 NORMAL:普通指标。 描述 输入描述信息。 开放名称 在输入框输入并单击下方选项,来设置开放名称,可设置多个。也可以单击“复制名称”复制输入的指标英文名称作为开放名称。 在多指标group by场景,查询的返回结果中,使用开放名称作为指标的属性值;报表开发过程中使用该属性来提取查询结果。 指标类型 选择指标类型。 RequestCount:请求量。 DelayTime:时延。 SuccessRate:成功率。 FailureRate:失败率。 Speed:速度指标。 Bandwidth:带宽指标。 逻辑主体 选择指标来源的逻辑主体。 标签列表 选择标签,可多选,为指标关联标签。 指标责任人 输入指标责任人。 开放状态 设置指标开放状态。 抽象指标 单击“添加抽象指标”,选择已创建的抽象指标,可以为指标添加抽象指标。 是否多聚合字段 选择是否为多聚合字段指标。 是多聚合字段,需要选择聚合字段列表并设置表达式。 聚合类型 选择指标的统计方式。 聚合字段 指标的度量对象。 过滤器 单击“新增过滤器”,可以依据业务限定条件,给指标设置过滤规则,支持AND、OR多层嵌套过滤条件,节点类型为NODE。默认为AND,可单击AND后在下拉列表重新选择。然后设置字段、类型及取值,如果设置多个取值时,使用回车设置。 举例:有5个过滤条件ABCDE,过滤条件汇总后为(A AND B)OR (C AND D AND E),ABCDE即为NODE节点。
  • FileBeat采集端汇聚 采集端汇聚是在采集端清洗的基础上实现的,针对资源受限而日志总量大,单节点流量可控,需要优先保证统计分析数据正常上报的场景,前置汇聚可以很明显的缓解统计分析告警延迟的问题,同样可以更进一步节省整体资源占用。 采集端汇聚需要额外占用内存和磁盘存储空间,用来存储汇聚后的维度和度量数据,磁盘存储占用默认限制在100MB,内存占用最大为100000个不同的维度值大小。 在做日志接入创建日志空间时可以开启汇聚完成日志数据汇聚,如图1所示。 图1 数据汇聚 开启汇聚:选择是否开启日志汇集,如果日志量较大且不需要关注原始日志时可以进行日志汇聚。 开启后需要配置汇集相关参数。 汇聚粒度:开启汇聚后,需要设置汇集粒度。支持分钟级和秒级数据汇聚。选择分钟级,每一分钟会生成一个统计点,选择秒级,每一秒会生成一个统计点。 汇聚时间戳:仅支持时间戳格式字段timestamp,获取当前计算的日志的时间。 时间戳格式:选择时间戳格式。支持秒、毫秒、纳秒级时间戳,获取当前计算的日志的时间格式。 汇聚维度:结合业务场景需要,选择日志是以哪些日志字段进行日志汇聚,支持多选。 汇聚度量:设置对日志字段以COUNT、SUM、MAX、MIN进行度量。 原始字段是日志中的字段,用来获取原始值;度量字段是用户自定义字段名,计算后,度量的值会赋值给该字段。
  • 数据清洗说明 在做日志接入创建日志空间时可以配置算子清洗策略完成日志数据清洗,如图2所示,算子清洗功能及使用样例请参见算子清洗功能介绍。 图2 算子清洗 清洗规则:选择“算子清洗”。 日志样例:使用典型日志,用来做清洗验证。 解析脚本:配置解析脚本,将日志样例清洗为字段显示。解析脚本中不支持使用中划线,支持使用下划线。 清洗字段:配置解析脚本后单击“配置解析脚本”,自动生成清洗自动,查看字段是否符合预期。
  • 解决方案 本章节介绍如何通过AppStage运维中心完成对业务实时数据的接入、处理、开发与应用。 图1 数据开发与应用流程 数据接入 AppStage运维中心支持接入虚拟机日志和容器日志,您可以根据日志类型选择日志接入方式。 虚拟机日志接入:通过日志配置下发任务部署filebeat,并根据日志采集配置设置,通过filebeat采集虚拟机上的业务日志。 容器日志接入:安装daemonset插件,通过daemonset实现容器日志接入。 (可选)如果需要将原始日志转化为JSON格式,可以在日志接入时选择算子清洗方式对日志数据做清洗,数据清洗如数据清洗说明所示。 数据导流 接入的日志数据存在于对应的Topic中,需要创建导流任务,将数据存储在对应的数据库中才能进行日志检索、日志数据的管理和后续开发。 (可选)数据汇聚:当日志量较大且不需要关注原始日志时可以对实时日志进行日志汇聚。 数据开发 可以使用存入数据库中的数据进行报表开发、实时监控或者异常告警等应用,可以直接写SQL,但是不同数据源写SQL的方式有差异,且有一定难度,AppStage支持使用运维数仓的方式,会自动根据不同数据源生成对应的SQL。 创建逻辑主体:使用运维数仓时首先需要创建逻辑主体。 创建指标:逻辑主体创建成功后,需要创建数据指标。 (可选)创建视图:为需要计算的指标创建查询视图,也可以在查询视图的基础上创建持久化视图或长期存储视图。 数据应用 使用报表对业务进行实时监控:使用运维数仓中的指标或视图创建业务报表,实时监控业务数据。 通过日志检索进行问题定位:日志接入并创建导流任务后,可以对已接入的日志进行检索,定位业务异常问题。 数据异常告警:支持通过异常检测上报告警和配置虚拟机异常告警,根据业务需要进行配置。
  • 背景信息 随着业务数量增多,业务的数据开发需求也逐渐增多, 数据开发人员不能快速支撑业务的开发需求,了解业务的人员设计和开发业务的数据资产可以使数据发挥最大价值,因此需要业务人员来主导业务的 数据治理 开发工作。 数据治理的核心就是管理好业务的数据资产,随着业务特性和业务复杂度快速增长,面临的不再是无数据的时代,面临的问题是如何在数据世界中获取到准确且有价值的信息,例如同一个指标在不同的应用场景,哪个才是准确的?这么多数据我的业务监控是否都覆盖了?以及是否有无价值和未合理使用的数据等,因此如何有效管理数据资产成了当前重点关注的问题。
  • 步骤五:安装日志采集插件 在“日志接入”页面,选择左侧导航栏的“集群插件管理”。 在集群列表中单击待安装插件的集群所在行“操作”列的“安装插件”。 在“插件安装”页面配置安装参数,具体内容如下所示,配置完成后,单击“确定”。 输入日志挂载路径:挂载到容器指定挂载点中的容器所在宿主机的文件目录,通常为宿主机上日志文件的hostpath目录。需要设置为单独的文件路径,不能设置为类似于/root、/home等包含有其他文件的目录,并且一个集群只能设置一个挂载路径。 需要对日志挂载路径执行chmod o+rx命令,确保日志采集容器的启动用户拥有该路径的访问权限。 选择主机:选择待安装插件的主机,默认全部勾选进行安装,可以去掉勾选不需要安装插件的主机,且当主机状态为“Active”时才可以正常安装插件。 选择日志配置组:选择日志配置组,安装插件并下发配置。
  • 步骤二:创建日志空间 在“日志接入”页面,选择左侧导航栏的“日志空间”。 单击“申请实时日志空间”。 根据界面提示填写日志空间参数。 配置实时日志空间信息,参数说明如表2所示,配置完成后,单击“下一步”。 表2 实时日志空间信息参数说明 参数名称 参数说明 空间名称 自定义日志空间名称,建议包含日志类型语义。 空间描述 输入日志空间描述,非必填项。 日志类型 选择需接入的日志类型,该日志空间中接入的日志数据“logType”字段会根据选择的日志类型生成。不同日志类型所对应的“logType”字段如下: 访问日志:ACCESS_LOG 接口日志:INTERFACE_LOG 错误日志:ERROR_LOG 异常日志:EXCEPTION_LOG 安全日志:SAFE_LOG 资源日志:RESOURCE_LOG 运行日志:RUN_LOG 话单日志:CDR_LOG 指标日志:METRICS_LOG GC日志:GC_LOG HCW日志:HCW_LOG 日志大小 预计一天的日志量,默认为1GB。 开启日志检索 如果需要使用日志检索功能,可以打开该开关,并创建导流任务,创建导流任务后可以在“日志检索”页面查看日志。 检索空间类型 选择ClickHouse。 原索引名称(ClickHouse) 可选择现有的ClickHouse,如果不填会自动生成。 TTL 日志索引的生命周期,即可以检索的日志时间范围,当前默认支持7天。 配置实时日志字段信息,参数说明如表3所示,配置完成后,单击“下一步”。 表3 实时日志字段信息参数说明 参数名称 参数说明 自定义字段 必须接入的日志字段已默认勾选,可以勾选其他需要接入的日志字段,包括通用字段、容器字段和虚机字段。 新增自定义环境变量 如需添加自定义环境变量,请选择环境变量名,然后单击“添加”。虚机暂无可选自定义环境变量。 清洗规则 选择日志清洗规则。 请优先使用算子清洗模式采样,通过配置解析脚本将原始日志清洗为业务需要的日志字段,算子清洗功能及使用样例请参见算子清洗功能介绍。原始日志采样清洗只适用于单纯采样,不需要清洗的场景。 日志样例 输入日志样例。 解析脚本 配置解析脚本,将日志样例清洗为字段显示,具体算子功能及使用样例请参见算子清洗功能介绍。 说明: 配置解析脚本时字段命名不支持使用中划线“-”,支持使用下划线“_”。 清洗字段 配置解析脚本后单击“配置解析脚本”,自动生成清洗字段,查看字段是否符合预期。 开启汇聚 选择是否开启日志汇集,如果日志量较大且不需要关注原始日志时可以进行日志汇集。 开启后会自动创建用于存储汇聚数据的Topic,同时需要配置汇集相关参数。 汇聚粒度 开启汇聚后,需要设置汇集粒度。支持分钟级和秒级数据汇聚。选择分钟级,每一分钟会生成一个统计点,选择秒级,每一秒会生成一个统计点。 汇聚时间戳 仅支持时间戳格式字段timestamp,获取当前计算的日志的时间。 时间戳格式 选择时间戳格式。支持秒、毫秒、纳秒级时间戳,获取当前计算的日志的时间格式。 汇聚维度 结合业务场景需要,选择日志是以哪些日志字段进行日志汇聚,支持多选。 汇聚度量 设置对日志字段以COUNT、SUM、MAX、MIN进行度量。 原始字段是日志中的字段,用来获取原始值;度量字段是用户自定义字段名,计算后,度量的值会赋值给该字段。 输出原始日志 选择是否需要输出原始日志。如果打开输出原始日志,原始日志也会上报。 日志字段确认,确认日志字段配置是否达到预期,已达到预期,单击“下一步”。 其中字段来源COMMON表示通用字段、CONTAINER表示容器字段、VM表示虚机字段。 申请日志空间共享,如果需要其他服务共用这个空间进行日志下发和日志检索,可以添加共享服务。配置完成后,单击“保存”。
  • 步骤三:创建日志采集配置 在“日志接入”页面,选择左侧导航栏的“日志采集配置”。 单击“创建日志采集配置”。 配置日志采集参数,配置完成后,单击“确定”。 新创建的采集配置默认为草稿状态,展示在“草稿”页签下,当配置被微服务使用后,状态会更新为“已下发”,并展示到“已下发”页签下。 表4 日志采集配置参数说明 参数名称 参数说明 日志项目 选择已创建的日志项目,相同服务的不同日志使用同一个日志项目 日志空间 选择已创建的日志空间。选择日志空间时日志提取规则会展示日志空间定义的日志格式,采集的日志须满足对应格式。 配置名称 自定义日志采集配置名称。 配置类型 选择日志采集配置类型,建议选择“FILEBEAT”。 日志类型 输入采集日志类型。 日志路径 宿主机上的日志文件的绝对路径(业务容器通过hostpath挂载到宿主机上的路径)。 可使用通配符进行匹配。 说明: 注意避免同一台主机上下发的多个采集任务重复采集相同的日志文件,会导致filebeat进程异常。 日志TPS TPS表示单实例每秒日志条数,请准确填写,用于推荐资源自动计算。 日志模式 选择日志采集模式,是单行模式还是多行模式。 是否支持软连接 当填写的日志路径为链接路径时,需要开启支持软连接。 首行正则表达式 日志模式选择多行模式时,需要输入首行正则表达式。 日志提取规则 根据填写的配置参数会自动生成提取规则。
  • 步骤四:创建日志配置组 在“日志接入”页面,选择左侧导航栏的“日志配置组”。 单击“创建日志配置组”。 设置日志配置组参数,参数说明如表5所示,配置完成后,单击“确定”。 表5 日志配置组参数说明 参数名称 参数说明 日志配置组名称 自定义日志配置组名称。 安装方式 选择安装方式,推荐使用“DAEMONSET”。 命名空间 当安装方式为“DAEMONSET”时,需要配置服务日志命名空间。 命名空间为hostpath的下一级目录名称,该目录下48小时内有日志文件更新,才会拉取日志采集配置,必须为英文名。 日志项目 选择已创建的日志项目。 配置类型 选择配置类型,即创建日志采集配置时选择的配置类型,根据配置类型会过滤采集配置列表中的数据。 采集配置列表 选择需要下发的配置。
  • 步骤四:创建任务 在“日志接入”页面,选择左侧导航栏的“任务管理”。 单击页面右上角的“新建任务”。 配置任务参数,如图1所示,参数说明如表5所示,配置完成后,单击“确定”。 图1 新建配置 表5 任务参数说明 参数名称 参数说明 日志项目 选择已创建的日志项目。 任务名称 自定义任务名称。 任务类型 选择任务类型。 配置类型 选择日志采集配置类型。 配置列表 选择需要下发的配置。 用户名称 选择已规划并拥有日志读取权限的业务账号。 选择主机 选择需要下发配置的主机。 已选主机 显示已选主机。 在任务列表中查看已创建的任务,单击任务所在行“操作”列的“执行”,如图2所示。 图2 执行任务 执行完成后,状态为成功即表示日志配置内容已下发成功,即会按照配置将日志接入AppStage。
共100000条