华为云用户手册

  • 创建命名空间 登录云容器实例管理控制台,左侧导航栏中选择“命名空间”。 在对应类型的命名空间下单击“创建”。 填写命名空间名称。 设置VPC。 选择使用已有VPC或新建VPC,新建VPC需要填写VPC网段,建议使用网段:10.0.0.0/8~24,172.16.0.0/12~24,192.168.0.0/16~24。 设置子网网段。 您需要关注子网的可用IP数,确保有足够数量的可用IP,如果没有可用IP,则会导致负载创建失败。 单击“创建”。
  • 运行容器 使用容器引擎可以直接运行Wordpress和MySQL,且可以使用--link参数将两个容器连接,在不改动代码的情况下让Wordpress的容器访问MySQL的容器。 执行下面的命令运行MySQL。 docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=******** -e MYSQL_DATABASE=wordpress -d mysql:5.7 参数解释如下: --name指定容器的名称为some-mysql。 -e指定容器的环境变量。如这里指定环境变量MYSQL_ROOT_PASSWORD的值为********,请替换为您设置的密码。指定环境变量MYSQL_DATABASE,镜像启动时要创建的数据库名称为wordpress。 -d表示在后台运行。 执行下面的命令运行Wordpress。 docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -e WORDPRESS_DB_PASSWORD=******** -e WORDPRESS_DB_USER=root -d wordpress 参数解释如下: --name指定容器的名称为some-wordpress 。 --link指定some-wordpress容器链接some-mysql容器,并将some-mysql命名为mysql。这里--link只是提供了一种方便,不使用--link的话,可以指定some-wordpress的环境变量WORDPRESS_DB_HOST访问mysql的IP与端口。 -p指定端口映射,如这里将容器的80端口映射到主机的8080端口。 -e指定容器的环境变量,如这里指定环境变量WORDPRESS_DB_PASSWORD的值为********,请替换为您设置的密码。Wordpress的环境变量WORDPRESS_DB_PASSWORD必须与MySQL的环境变量MYSQL_ROOT_PASSWORD值相同,这是因为Wordpress需要密码访问MySQL数据库。WORDPRESS_DB_USER为访问数据的用户名,使用用户root去连接MySQL。 -d表示在后台运行。 Wordpress运行之后,就可以在本机通过http://127.0.0.1:8080访问Wordpress博客了,如下所示。
  • 概述 在云容器实例中,您可以使用多种方法创建负载,包括使用云容器实例的Console控制台界面、调用API部署应用,那这些方式的使用有什么不同的地方呢?这些方法又与直接运行Docker run命令运行容器有什么区别呢? 本文将通过运行一个Wordpress + MySQL的博客为例,比较这几种方法之间的异同,以利于您挑选合适的使用方法。 WordPress是使用PHP语言开发的博客平台。用户可以在支持PHP和MySQL数据库的服务上架设属于自己的网站,也可以把WordPress当作一个内容管理系统来使用。更多WordPress信息可以通过官方网站了解:https://wordpress.org/。 WordPress需配合MySQL一起使用,WordPress运行内容管理程序,MySQL作为数据库存储数据。在容器中运行通常会将WordPress和MySQL分别运行两个容器中,如下图所示。 父主题: 负载创建
  • 新老规格对应关系 2种RabbitMQ实例规格对比,新老规格的对应关系如所示。 表3 RabbitMQ实例新老规格对应关系 老规格 对应的新规格 规格类型 TPS参考值 规格类型 TPS参考值 4核 | 8GB * 3 3000 rabbitmq.4u8g.cluster * 3 6000 8核 | 16GB * 3 6000 rabbitmq.8u16g.cluster * 3 12000 16核 | 32GB * 3 24000 rabbitmq.16u32g.cluster * 3 48000 新老规格区别如下: 新规格性能更好,同等价格下性价比更优。 老规格使用的非独享资源,在高负载情况下容易出现资源抢占情况。新规格使用的独占资源,性能更优、稳定性更好。 新规格支持灵活的水平/垂直动态扩容,能更好的应对复杂的业务变化情况。 新规格支持更大规格的,最大可以支持rabbitmq.32u64g.cluster。 新规格除了原有的磁盘类型,还支持通用型SSD、极速型SSD等多种磁盘类型,客户选择更加灵活。
  • RabbitMQ实例的存储空间估算参考 在集群模式中,RabbitMQ需要对消息持久化写入到磁盘中,因此,您在创建RabbitMQ实例选择存储空间时,建议根据业务消息体积预估以及镜像队列副本数量选择合适的存储空间。镜像队列副本数最大为集群的代理数。 例如:业务消息体积预估100GB,则磁盘容量最少应为100GB*镜像队列副本数+预留磁盘大小100GB。 如果是单机实例,则是计算业务消息体积+预留磁盘大小即可。 当前RabbitMQ实例支持修改集群实例的代理个数,您可以根据业务情况,随时更改集群代理个数。单机实例暂不支持变更规格。
  • RabbitMQ实例规格 RabbitMQ实例兼容开源RabbitMQ 3.8.35和自研RabbitMQ AMQP-0-9-1,实例类型包括单机和集群,实例规格请参考表1和表2。 表1 RabbitMQ集群实例规格(3.8.35版本) 型号 代理数 存储空间范围(GB) TPS参考值 单个代理最大消费者数 单个代理建议队列数 单个代理最大连接数 rabbitmq.2u4g.cluster 3 300~90000 3000 4000 100 1000 5 500~150000 5000 4000 100 1000 7 700~210000 7000 4000 100 1000 rabbitmq.4u8g.cluster 3 300~90000 6000 8000 200 2000 5 500~150000 10000 8000 200 2000 7 700~210000 14000 8000 200 2000 rabbitmq.8u16g.cluster 3 300~90000 12000 16000 400 4000 5 500~150000 20000 16000 400 4000 7 700~210000 28000 16000 400 4000 rabbitmq.12u24g.cluster 3 300~90000 24000 24000 600 6000 5 500~150000 40000 24000 600 6000 7 700~210000 56000 24000 600 6000 rabbitmq.16u32g.cluster 3 300~90000 48000 32000 800 8000 5 500~150000 80000 32000 800 8000 7 700~210000 112000 32000 800 8000 rabbitmq.24u48g.cluster 3 300~90000 60000 40000 1000 10000 5 500~150000 100000 40000 1000 10000 7 700~210000 140000 40000 1000 10000 rabbitmq.32u64g.cluster 3 300~90000 72000 40000 1000 10000 5 500~150000 120000 40000 1000 10000 7 700~210000 168000 40000 1000 10000 为了保证稳定性,服务端限制了单条消息的最大长度为50MB,请勿发送大于此长度的消息。 上表中TPS(即生产+消费的TPS)是指以2K大小的消息为例的每秒处理消息条数,测试场景为不开启持久化的非镜像队列,实时生产实时消费,队列无积压。此数据仅供参考,生产使用需要以实际压测性能为准。 服务端的性能主要跟以下因素相关:队列数、消息堆积、连接数、channel、消费者数、镜像队列、优先级队列、消息持久化和exchange类型等,在选择实例规格时,请根据业务模型压测结果选择。 一条连接最多可以开启2047个channel。 单机版实例可用于测试场景,不建议用于生产业务,暂不提供单机版实例的产品规格。 表2 RabbitMQ集群实例规格(AMQP-0-9-1专业版) 型号 存储空间范围(GB) TPS参考值 实例最大队列数 实例最大连接数 amqp.p2.large.6 200~60000 3000 1000 500 amqp.p2.large.10 200~60000 5000 1000 500 amqp.p2.large.14 200~60000 7000 2000 1000 amqp.p2.large.20 200~60000 10000 2000 1000 amqp.p2.large.28 200~60000 14000 2000 1000 amqp.p2.large.40 200~60000 20000 3000 1500 amqp.p2.large.56 400~120000 28000 4000 2000 amqp.p2.large.80 400~120000 40000 6000 3000 amqp.p2.large.112 400~120000 56000 8000 4000 amqp.p2.large.144 600~180000 72000 10000 5000 amqp.p2.large.200 600~180000 100000 12000 6000 amqp.p2.large.240 800~240000 120000 16000 8000 amqp.p2.large.280 1200~360000 140000 16000 8000 为了保证稳定性,服务端限制了单条消息的最大长度为4MB,请勿发送大于此长度的消息。 上表中TPS,是指以4K大小的消息为例的每秒处理消息条数,测试场景为实时生产实时消费,队列无积压。此数据仅供参考,生产使用需要以实际压测性能为准。 服务端的性能主要跟以下因素相关:队列数、消息堆积、连接数、channel、消费者数和Exchange类型等,在选择实例规格时,请根据业务模型压测结果选择。 一条连接最多可以开启2000个channel。 单机版实例可用于测试场景,不建议用于生产业务,暂不提供单机版实例的产品规格。
  • 身份认证 无论用户通过控制台还是API访问DMS for RabbitMQ,都会要求访问请求方出示身份凭证,并进行身份合法性校验,同时提供登录保护和登录验证策略加固身份认证安全。DMS for RabbitMQ基于 统一身份认证 服务(Identity and Access Management,简称 IAM ),支持三种身份认证方式:用户名密码、访问密钥、临时访问密钥。同时还提供登录保护及登录验证策略。
  • 修订记录 发布日期 修改说明 2024-10-10 第十九次发布,包含以下内容: RDS for PostgreSQL内核版本说明更新版本发布记录。 2024-06-18 第十八次发布,包含以下内容: RDS for MySQL内核版本说明更新RDS for MySQL 8.0.28版本说明。 2024-05-23 第十七次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 8.0.32版本更新说明。 2024-04-11 第十六次发布,包含以下内容: RDS for PostgreSQL内核版本说明补充RDS for PostgreSQL 16版本更新说明。 2023-12-01 第十五次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 5.7的版本更新说明。 2023-10-30 第十四次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 8.0、RDS for MySQL 5.7、RDS for MySQL 5.6的版本更新说明。 2023-09-28 第十三次发布,包含以下内容: 新增RDS for PostgreSQL内核。 2023-09-21 第十二次发布,包含以下内容: 新增RDS for MariaDB内核。 2023-06-28 第十一次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 5.7的版本更新说明。 2022-09-09 第十次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 8.0、RDS for MySQL 5.7、RDS for MySQL 5.6的版本更新说明。 2022-06-01 第九次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 8.0、RDS for MySQL 5.7、RDS for MySQL 5.6的版本更新说明。 2022-01-26 第八次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 5.7的版本更新说明。 2021-11-26 第七次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 5.7的版本更新说明。 2021-08-07 第六次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 8.0、RDS for MySQL 5.7、RDS for MySQL 5.6的版本更新说明。 2021-06-10 第五次发布,包含以下内容: 优化主动终止空闲事务中的“idle_transaction_timeout”参数。 2021-04-13 第四次发布,包含以下内容: RDS for MySQL内核版本说明补充RDS for MySQL 8.0、RDS for MySQL 5.7、RDS for MySQL 5.6的版本更新说明。 MDL锁视图补充performance_schema描述。 2021-01-21 第三次发布,包含以下内容: 补充内核版本说明。 2020-11-20 第二次发布,包含以下内容: RDS for MySQL 8.0、RDS for MySQL 5.7、RDS for MySQL 5.6补充内核版本更新说明。 2020-10-09 第一次发布。
  • 解决方法 自定义组件(widget)上传新的版本后,需要在“页面设置”中,对插件进行升级更新。升级后,js文件才能生效。 登录经典版应用设计器。 在应用设计器菜单栏下方,单击“页面设置”,再选择“插件”页签。 找到需要更新的组件(例如userLogin),单击组件所在行右侧的,进入组件详情页。 图1 页面设置下的组件列表 单击“更新”,进入组件更新页面。 图2 选择更新按钮 单击“上传”,上传本地的组件zip包,再单击“更新”。 图3 更新组件 在“插件”页签,单击,获取锁。 单击刚上传组件(userLogin)后的,升级组件。 升级成功后,单击,保存升级。 单击,发布组件。 图4 升级并发布组件
  • 通过可视化建表的方式管理数据 在AstroZero中,通过可视化建表的方式完成数据模型的构建。 登录经典版应用设计器。 将鼠标放在某个文件夹上,单击,选择“对象”。 选择“创建新对象”,输入基本信息后单击“添加”,创建对象。 在对象详情页面“自定义字段”页签,单击“新建”,可给对象创建自定义字段。 在对象详情页单击“布局”页签,进入该对象的布局。 单击“对象名 Records”后的,在预览页面可增删查数据。
  • 通过批量导入导出方式管理数据 AstroZero提供了相关数据表的导入导出能力,开发者也可以根据自己的业务需求定制化导入导出逻辑,批量导入导出数据。数据导出后可在其他环境或账号导入,实现数据的迁移和备份,如迁移旧的元数据和数据去新的环境,保持对象的一致和兼容。从而实现在不同的账号间或环境间的数据迁移,避免重复开发和不兼容的开发。 元数据导入/导出操作,请参见导入导出应用中对象的元数据。 数据导入/导出操作,请参见导入导出应用中对象的数据。
  • 解决方法 在用户或业务用户详情页面中,查看用户所拥有的权限。 如果是System Administrator Profile,默认是30分钟,无法修改。 如果是其他权限,请执行2。 通过所分配Profile权限的“访问凭证时长”来控制session有效期。访问凭证与刷新凭证必须同时为默认或者自定义。 用户(即平台用户,AstroZero的开发者账号,用来管理应用和业务用户) 一般情况下,只有具备“System Administrator Profile”权限的管理员用户,才可修改平台用户权限的“访问凭证时长”。平台用户只能查看,不能修改自己权限的“访问凭证时长”参数值。 图1 Profile权限编辑页面 业务用户:根据业务用户详情页“权限集”下,第一个Profile权限的“访问凭证时长”,来控制session有效期。如果“权限集”下未配置Profile权限,则使用“Portal User Profile”权限的“访问凭证时长”。 图2 业务用户详情页
  • 方式一:通过编辑事件实现 在标准页面的事件编排中,在具体的动作上“自定义JS代码”中编写相关代码,以实现页面组件与后台接口(服务编排或脚本)之间的交互。 下面以通过编辑事件,定义JS代码,来实现页面组件与后台接口(服务编排或脚本)之间的交互为例,进行介绍。 登录经典版应用设计器。 在设计页面左侧,选择组件页签,右侧区域选择“事件”,单击具体事件后面的“+”,即可进入添加动作页面。 从左侧“动作”区,设置“内置动作”或“自定义动作”,自定义动作需自定义JS代码逻辑,可单击代码区域右侧的,最大化自定义JS代码页面。 图1 页面自定义JS代码 在左侧模板代码中,单击服务编排或脚本左侧的,复制代码到右侧代码编辑区域,即可出现系统预置的经典接口。 图2 预置接口代码
  • 步骤4:执行变更流水线 代码更新完成后,即可通过变更流水线执行变更。 在微服务变更列表页面,单击变更名称,进入“变更详情”页面。 单击右上角“提交发布”,弹出“提交发布”确认框,提示是否确认将变更提交至变更流水线。 图1 提交发布 单击“确定”,完成变更提交,页面跳转至对应变更流水线发布列表页面。 单击右上角“执行”,弹出“执行配置”侧滑框,选择刚提交的变更,其他配置保持默认。 图2 执行配置 单击“执行”,启动变更流程。 微服务变更流水线在运行过程中,会自动增加“合并集成分支”和“合并主干”阶段,并将本次变更关联的特性分支合并到该集成分支上。 代码检查、构建任务执行成功后,系统自动进入“合并主干”阶段,并弹出“手动确认”对话框。 图3 执行流水线 单击“继续执行”,“合并主干”阶段执行完成后,系统将自动完成以下事项。 将本次发布的变更状态更新为“已发布”。 将本次发布的变更关联的工作项状态更新为“已关闭”。 将本次发布使用的集成分支代码内容合并到微服务默认分支,实现代码自动合并。 至此,即完成了一次基本的微服务变更发布流程。
  • 步骤3:新建微服务变更 重新进入微服务“概览”页面。 切换到“变更”页签,进入微服务变更列表页面。 单击“新建变更”,进入“新建变更 ”页面,配置以下信息。 表4 新建变更 参数项 说明 变更标题 变更的名称,输入“fix-a-bug”。 代码仓 变更关联的源码仓库,自动和微服务保持一致。 代码分支 变更新需求的开发分支,变更通过流水线发布成功后,会将代码分支自动合并至微服务的默认分支。选择“从默认分支拉取新分支”并输入分支名称“bugfix”。 关联工作项 变更关联的工作项,选择准备工作中已创建的工作项“BUGFIX”。 单击“确定”,完成变更的创建。 变更创建完成后,进入代码开发阶段,系统基于微服务默认分支自动创建出本次变更的特性分支,开发人员可以基于该特性分支进行代码开发,问题修复后,模拟向该分支提交代码。
  • 操作流程 本文介绍如何通过微服务变更流水线模拟修复项目下的一个BUG并快速发布,基本操作流程如下: 步骤1:新建流水线微服务 步骤2:新建变更流水线 步骤3:新建微服务变更 步骤4:执行变更流水线 表1 操作流程说明 流程 说明 新建流水线微服务 在项目下新建一个微服务,用于管理某个特定的业务功能。 新建变更流水线 在微服务下新建一条变更流水线,用于发布微服务下的变更。 新建微服务变更 在微服务下新建一个变更,承载项目下修复BUG的开发活动。 执行变更流水线 执行流水线,发布变更代码。
  • 方案概述 CodeArts Pipeline为企业提供了一种微服务模型,将企业大军团的作战方式转变为小团队精英作战方式,支持每个微服务独立进行开发、验证、部署及上线发布,缩短需求发布周期。同时支持企业按照业务功能组织团队,优化管理模型,使运作更精细化,有效提升团队运作效率。 在微服务中,用户可以创建流水线资源,并将其设置为变更流水线,用于与微服务下变更资源进行联动,通过变更流水线发布一个或多个变更来实现项目的快速交付。
  • 步骤2:新建变更流水线 在微服务列表页面,单击微服务名称,进入微服务“概览”页面。 切换到“流水线”页签,进入微服务流水线列表页面。 单击“新建流水线”,进入“新建流水线 ”页面,配置以下信息。 表3 新建变更流水线 参数项 说明 所属项目 变更流水线所在的项目,不可更改。 名称 变更流水线的名称,使用自动生成的即可。 代码源 变更流水线关联的源码类型,自动和微服务保持一致。 代码仓 变更流水线关联的源码仓库,自动和微服务保持一致。 默认分支 默认使用的分支,自动和微服务保持一致。 Repo https授权 打开“基于变更触发”后需配置“Repo HTTPS授权”,配置授权扩展点以提升代码仓操作权限。选择准备工作中已创建的授权扩展点“HttpsEndpoint01”。 别名 输入别名,会生成该仓库对应的相关系统参数,这里不设置。 基于变更触发 打开“基于变更触发”,将当前流水线设置为微服务变更流水线。 描述 对变更流水线的介绍说明,选填。 微服务变更流水线仅支持基于变更触发运行,且单个微服务下只能存在一条微服务变更流水线。 单击“下一步”,选择“Maven构建”模板,自动生成阶段和任务,使用默认配置即可。 单击“保存”,完成微服务变更流水线的创建。
  • 操作流程 本文以版本号参数为例,介绍如何将流水线参数传递给编译构建任务和部署应用,基本操作流程如下: 步骤1:新建编译构建任务 步骤2:新建部署应用 步骤3:新建并执行流水线 步骤4:查看编译构建和部署结果 表1 操作流程说明 流程 说明 新编译构建任务 新建编译构建任务,新增版本号参数,并在构建步骤引用该参数。 新建部署应用 新建部署任务,新增软件包参数,并在部署步骤引用该参数。 新建并执行流水线 新建流水线,新增版本号参数,并在流水线上添加编译构建任务及部署应用。 在编译构建任务的版本号参数引用流水线版本号参数。 在部署应用软件包参数引用流水线版本号参数。 查看编译构建和部署结果 分别查看编译构建结果和部署结果。 编译构建包版本号为流水线传递的动态参数。 部署任务成功获取软件包。
  • 操作流程 本文基于流水线准出条件-Check代码检查规则策略,通过添加代码检查任务所在阶段的准出条件,对代码检查任务的检查结果进行自动化校验,只有检查结果满足准出条件,才可以进入下一个阶段。 图1 操作流程示意图 基本操作流程如下: 步骤1:新建规则并配置阈值 步骤2:新建策略并添加规则 步骤3:配置流水线 步骤4:执行流水线验证准出条件 表1 操作流程说明 流程 说明 新建规则并配置阈值 新建一个代码检查类型规则,基于代码检查插件的输出结果,设置比较关系和阈值条件,供策略使用,作为准出条件的判断依据。 新建策略并添加规则 新建一个策略,并添加如上代码检查类型规则。 配置流水线 在流水线阶段准出条件添加如上策略,根据设置的规则条件,来控制流水线执行。 执行流水线验证准出条件 执行流水线,验证准出条件拦截结果。 代码检查插件满足规则条件,通过准出条件校验,流水线继续执行。 代码检查插件如果不满足规则条件,没有通过准出条件校验,流水线终止执行。
  • 准备工作 新建项目(选择“Scrum”模板,命名为“Project01”)。 新建代码仓库(选择“Java Maven Demo”模板,命名为“Repo01”)。 新建代码仓库时会自动创建与代码仓库同名的代码检查任务,将代码检查任务名称修改为“CheckTask01”,操作方法请参考创建代码检查任务。 基于“Repo01”仓库新建构建任务(选择“Maven”模板,命名为“BuildTask01”)。 基于已创建的代码仓库新建流水线(选择空模板,命名为“Pipeline01”)。
  • 步骤2:新建策略并添加规则 策略实行分层管理,可分为租户级策略和项目级策略。其中,租户级策略可以应用到当前租户下所有项目的流水线,项目级策略可以应用到当前项目下所有流水线。本节以租户级策略为例进行介绍。 单击左侧导航栏“策略”,进入策略管理页面。 租户级策略中默认存在一条“系统策略”,用户可查看和使用该策略,但不能进行编辑和删除。 单击“新建策略”,进入“新建策略”页面,输入策略名称,勾选步骤1中新建好的规则。 图3 新建策略 单击“确定”,完成策略创建。
  • 方案概述 传统软件质量保障以人工验收测试为主,效率低。当前软件能力难以支持业务需要,大量测试验收需要人工手动进行,自动化覆盖率低,且需要人工筛查识别满足验收条件的版本进行后续发布等处理流程,整体测试效率低下。 CodeArts Pipeline提供统一的准出条件管理能力,通过配置规则和策略,实现阶段准出校验,并最终控制流水线的执行。用户根据实际需要将策略资源应用到流水线作为准出条件,帮助高效管理项目,保障产品高质量交付。 通过流水线准出条件-Check代码检查规则策略自动化看护,拦截70%+问题,提高测试效率的同时,提高软件质量。
  • 步骤2:配置发布管理策略 在环境列表页面,单击刚创建的环境名称,进入“环境信息”页面。 单击“发布策略”页签,切换到“发布策略”页面。 单击“自定义策略”旁的,弹出“新建策略”对话框,选择系统提供的“灰度升级模板”。 单击“确定”,然后逐步完成插件配置。 图1 配置发布策略 灰度起负载 表3 灰度起负载参数说明 参数项 说明 部署方式 选择“镜像创建”,将创建与线上配置完全一致的工作负载,仅更新镜像包版本(业务代码及配置)。 命名空间 选择待升级的服务所在的命名空间。 服务 待升级的服务,选择准备工作中已创建的服务。 自定义灰度版本号 开关关闭,系统将自动随机生成灰度版本号;开关开启,用户可以按需配置灰度版本号。这里选择开启开关。 灰度版本号 灰度版本号将作为新旧负载的引流标识,输入“${TIMESTAMP}”,引用系统时间戳环境变量作为灰度版本号,例如:20230401095436。 基于所选Service关联的Deployment替换新镜像,创建新负载(灰度负载)。 新负载内所有配置,如CPU、内存、副本数等,与旧负载(线上负载)完全一致。 新负载不承接任何流量,可供开发人员进行测试,且对旧负载(线上负载)没有任何影响。 新负载名称为“旧负载名称-灰度版本号”。 灰度引流 选择“Service蓝绿引流”,基于Service将所有流量切换至新负载,完成引流后,旧负载不承接任何流量。 灰度下线 默认删除线上的旧负载,无需配置。 人工卡点 为了降低引流过程中的风险,并给运维、测试人员预留充足的测试时间,可以在灰度引流、灰度下线等较高危操作前,添加人工卡点进行验证。 图2 配置人工卡点 表4 人工卡点参数说明 参数项 说明 超时处理 卡点超时后处理方式,选择“卡点失败,发布流终止执行”,即超时未处理则终止执行。 卡点时长 卡点处理时长,可选择最长时间12小时。 卡点说明 自定义描述,如:引流前对灰度负载执行手工验证。 单击“保存并应用”,即可将该策略设置为“使用中”策略,至此完成策略配置。
  • 操作流程 本文介绍在不需要占用集群额外资源安装插件的情况下,基于Kubernetes原生Service的场景完成微服务蓝绿发布,基本操作流程如下: 步骤1:新建发布管理环境 步骤2:配置发布管理策略 步骤3:通过云原生发布插件进行发布 表1 操作流程说明 流程 说明 新建发布管理环境 新建一个用于灰度发布的测试环境,并配置好资源集群等信息。 配置发布管理环境 为发布环境配置发布策略,编排配置发布流程及插件。 通过云原生发布插件进行发布 通过流水线云原生发布插件,发布环境。
  • 准备工作 新建项目(选择“Scrum”模板,命名为“Project01”)。 新建空仓库空模板流水线(命名为“Pipeline01”)。 具有创建部署应用的权限,可参考部署服务编辑权限管理添加权限。 开通购买CCE服务,并在CCE集群中创建服务相关Service和Deployment:创建Service和Deployment。 Service和Deployment资源相关参考:服务(Service)、Deployments。 Service需要配置为关联至Deployment而非Pod,并且有且仅有一个Deployment与之关联。
  • 方案概述 应用场景 在进行服务发布的时候,通常会碰到这样的问题: 直接在生产环境发布后再进行测试,可能会带来较大风险,对线上用户造成影响。 测试环境虽然和生产环境高度一致,然而实际情况下,由于资源配置、网络环境等,测试环境和生产环境之间总会存在差异,因此难以在测试环境覆盖验证所有场景。 通过灰度发布可以实现在不引发风险的同时,在生产环境进行发布及验证。 方案优势 灰度发布是在生产环境中创建与当前线上服务完全一致的工作负载(灰度负载),仅对其中的包版本(业务代码和配置)进行更新,但是新创建的工作负载不承接任何现网流量,对线上用户没有任何影响,就可以在没有风险的情况下,在生产环境进行测试了。在灰度环境验证无问题之后,就可以逐渐将线上用户的真实访问引流到灰度负载,直至完全引流后,新创建的灰度负载承接所有现网流量,原先的线上负载不承接任何流量,此时就可以安全地删除旧负载,保留新负载,完成一次发布。 按照引流方式的不同,当前常用的灰度发布方式包括:快速完成100%流量切换的蓝绿发布和按流量比例或线上请求内容引流的金丝雀发布。通常情况,蓝绿发布已经足以降低发布风险,蓝绿发布有如下优势: 不需要集群安装额外的插件。 无风险的进行生产环境灰度验证。 快速进行流量切换(从旧负载切换新负载,或从新负载切回旧负载)。 在验证阶段发现问题后,可以快速将线上服务恢复(回滚)至发布前的状态。
  • 预置流水线简介 示例项目中预置以下5个流水线任务,可根据需要查看并使用。 表1 预置流水线任务 预置流水线任务 任务说明 phoenix-workflow 基本的流水线任务。 phoenix-workflow-test 测试环境对应的流水线任务。 phoenix-workflow-work Worker功能对应的流水线任务。 phoenix-workflow-result Result功能对应的流水线任务。 phoenix-workflow-vote Vote功能对应的流水线任务。
  • 配置准出条件 为了控制代码的质量,代码必须经过扫描,并且错误数量控制在合理范围内,才允许发布。通过添加质量门禁可以有效的自动化控制流程。 在流水线任务“phoenix-workflow”详情页,单击“编辑”。 在阶段“代码检查”中,单击“准出条件”。 在“准出条件”窗口中,单击“标准策略准出条件”插件后的“添加”。 选择“系统策略”,单击“确定”。 单击“保存并执行”,启动流水线任务。 如果代码检查问题数未达到准出条件,流水线任务将执行失败。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
共100000条