检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
的工程实践。MAS-CAST混沌工程服务提供丰富的故障模式库,通过混沌实验编排攻击目标、攻击策略进行故障注入,支持添加背景流量和资源监控,同时在故障注入能力的基础上,通过体系化的流程和规范来创建故障演练,从而验证和提升系统可靠性和技术团队应急响应能力。 使用流程 混沌工程的基本流程如下图所示。
与其他服务的关系 虚拟私有云 虚拟私有云(Virtual Private Cloud,简称VPC)是用户在云上申请的隔离的、私密的虚拟网络环境。用户可以自由配置VPC内的IP地址段、子网、安全组等子服务。 MAS运行于虚拟私有云,由虚拟私有云协助管理IP和带宽。虚拟私有云还具备安全
monitorId。 单击“监控列表”,在本项目监控器所在行单击“编辑”,在“编辑监控”页面单击“连接池配置”,在“数据中心”页签下的“数据源名称”就是props.databaseName。 单击“基本信息”,在“连接信息”页签单击“ETCD链接地址”右边的“查看详情”,在弹窗中查看ETCD的相关配置。
SpringBoot项目接入MAS-Mongo-SDK MAS-Mongo-SDK使用Maven获取相关,根据实际情况设置Maven远程仓库地址等相关配置。 在pom.xml文件中引入以下依赖,下面mas.version版本为最新版本,依赖组件版本参考如何选择组件版本。 <properties>
已在数据中心准备好被监控的数据库实例并创建好监控数据库和连接数据库。 监控数据库,在两个数据中心中均已真实存在且命名相同。请使用独立的监控数据库,不要与业务连接数据库共用。 连接数据库,在两个数据中心中均已真实存在且命名相同。 创建MongoDB监控 登录MAS控制台,在“多活管理”页面单击实例(实例所属命名空间类型为同城多活),进入实例控制台。
应用场景 本次商城应用改造是基于github上50k+star的mall后台管理系统及对应前端项目进行改造来对接SDK。 后端项目地址:https://github.com/macrozheng/mall 前端项目地址:https://github.com/macrozheng/mall-admin-web
探针接入ECS 本章节指导您将探针接入ECS。 操作步骤 登录MAS控制台。 单击“混沌工程>探针管理”,进入“探针管理”页面。 在“我的应用”栏下选择所需安装的应用,该应用已纳管ECS资源。 选择“弹性云服务器 ECS”页签。 单击操作列“安装探针”。 待探针状态显示运行中,则安装完成。
至少有一条数据源链接模式需为“RDS”。 添加数据源 登录MAS控制台,进入“数据源”页面。 在左上角命名空间下拉框选择所需命名空间。 单击右上角的“添加数据源”。 在“添加数据源”页面,填写配置信息,然后单击“确定”。 图1 添加数据源 表1 数据源配置参数 参数 配置说明 所属分区
获取SDK接入配置。 登录MAS控制台,在“多活管理”页面单击多活实例,进入多活实例控制台。 在“监控列表”页面,单击MySQL监控器左侧操作栏“更多”>“SDK接入配置”,复制配置参数。 图1 复制配置参数 此处获取的yaml配置不会携带数据库用户名密码信息,在使用时,需要补充完全(与创建
自定义输入混沌实验名称。 添加攻击目标。 在“攻击目标”页签,单击“添加攻击目标”。 表1 参数说明 参数名称 说明 应用 选择需要攻击的应用。 类型 选择故障注入的故障模式类型。 在弹窗下拉框中选择需要攻击的应用。 选择资源类型并勾选需要攻击的服务资源。 单击“确定”。 设置攻击步骤。 在“攻击步骤”页签,单击“添加故障模式”。
控制节点安装UniAgent。 在“混沌工程>探针管理”界面,为控制节点主机安装UniAgent,具体安装步骤参考接入主机。 纳管自建K8S集群。 单击“混沌工程>应用管理”,单击3所创建的“应用”,单击“添加资源”。 资源类型选择“跨云跨IDC”下的“自建K8S”,单击“添加控制节点”选择在步骤1中纳管的集群控制节点。
utMS 否 Integer 服务器选择超时(以毫秒为单位)。 localThresholdMS 否 Integer 当与副本集中的多个MongoDB实例进行通信时,驱动程序只会将请求发送到响应时间小于或等于响应时间最快的服务器加上本地阈值的服务器,以毫秒为单位。 heartbeatFrequencyMS
配置yaml文件 登录MAS服务控制台,在“多活管理”页面单击实例,进入实例详情控制台。 在页面顶端导航栏选择“监控列表”,单击MySQL监控所在行的“更多>SDK接入配置”,获取SDK接入配置。 此处获取的yaml配置不会携带MySQL用户名密码信息,在使用时,需要补充完全(与创建My
被监控Elasticsearch部署的区域。 azs 被监控Elasticsearch部署的可用区。 连接地址 Elasticsearch的访问地址和端口。 添加连接地址 添加Elasticsearch的连接地址。 用户名 被监控的Elasticsearch的用户名。 注意: 建议监控用户名与业务用
Mysql配置示例 结合配置项说明,在配置文件或配置信息添加故障注入相关配置。 配置文件示例config_mysql_chaos.yaml props: version: v1 appId: xxx monitorId: xxxx databaseName: xxxx
数据中心配置信息 参数 配置说明 云选择 被监控的数据库部署的环境。 局点 被监控数据库所在区域。 IPv4地址 数据库的访问地址和端口。 添加读库地址 单击添加读库数据库地址。 填写数据库配置,完成后单击“下一步:高级配置”。 图3 新增监控-数据库配置 表4 数据库配置信息 参数
编辑阶段信息,完成后单击“确定”。 删除阶段。单击已有阶段后的“”>“删除”,在弹窗中单击“确定”。 在“工作流编排>执行流程”页面,对工作流的作业进行编排。 添加作业。单击阶段下的“添加作业”,在添加作业弹窗中输入作业信息,完成后单击“确定”。 表3 作业配置信息 参数 配置说明
云服务故障 表1 云服务 故障类型 故障模式 设置参数 弹性云服务器 ECS 启动弹性云服务器 关闭弹性云服务器 重启弹性云服务器 - 裸金属服务器 BMS 启动裸金属服务器 关闭裸金属服务器 重启裸金属服务器 - 云硬盘 EVS 删除云硬盘 - 云硬盘快照 EVS_SNAPSHOT
Redis配置示例 结合配置项说明,在配置文件或配置信息添加故障注入相关配置。 配置文件示例config_Redis_chaos.yaml props: version: v1 appId: xxx monitorId: xxxx cloud: xxxx region:
props配置项中的值都是取自于本服务在MAS服务注册时展示的值。 props配置项中的值与在MAS服务中的来源请参考props、etcd配置项在MAS服务中如何查询。 表2 etcd配置项 名称 说明 默认值 备注 etcd.address ETCD地址 空 MAS服务总览页单击ETCD连接地址后的查看详情获取。