云服务器内容精选

  • 功能列表 流水线服务主要功能特性如下: 特性 描述 流水线自定义编排 可根据用户使用场景的需要,对构建、代码检查、子流水线、仓库管理、部署、流水线控制(延时执行、人工审核)、接口测试等多种类型的任务进行纳管和执行编排。 流水线可视化增删改查 提供图形化界面的流水线创建、编辑、删除和执行状态查看功能。其中,查看功能支持跳转到对应的任务界面查看其日志等详情信息。 流水线权限管理 支持在项目中配置各角色默认的流水线权限;支持在流水线任务中配置各角色和人员的查看、编辑、执行和删除权限。 流水线历史执行记录 支持查看流水线最近31天的历史执行记录。 流水线消息通知 用户可根据需要设置事件发生时是否发送服务动态和邮件通知。 流水线部分任务执行 根据用户需求,可选择流水线中的某一个或多个任务单独执行。 流水线执行参数配置 流水线支持自定义参数,在执行时由用户指定参数值,任务用指定值替换相应参数执行。 流水线串/并行执行配置 根据用户需求,可配置同一阶段内的任务串行执行或并行执行。 策略主要功能特性如下: 特性 描述 策略支持分层管理 在租户级和项目级都有策略,实现租户的全局管控和项目的局部管控。 支持业务自定义规则 工具提供了一些系统默认规则,除此之外,还提供了自定义规则能力,可以根据实际需求从插件市场中选择插件生成规则。 策略应用到流水线 策略可以在编排流水线时,应用到准出条件中。 复制策略 通过复制快速新建策略,支持租户级和项目级策略资源的复制,同时,在项目下可以将租户级策略复制为项目级策略。 策略继承功能 项目级策略可以继承当前项目所在的租户的策略。 扩展插件主要功能特性如下: 特性 描述 系统插件 插件平台内置多款经典系统插件,满足DevOps日常需求。
  • 约束与限制 介绍流水线服务的使用限制,如下表所示。 表1 流水线使用限制 指标类别 指标项 限制值 流水线服务 单租户下最大流水线条数 5000 单条流水线 最大Stage阶段数量 16 最大Job任务数量 256 单阶段最大Job任务数量 100 最大Step步骤数量 512 单Job最大Step步骤数量 16 最大自定义参数个数 20 最大源码仓库数 1 审核任务最大审核人数 10 延时任务最大延时次数 3 最大同时执行并发数 体验版:1 基础版:5 专业版:10 企业版:20 历史执行记录最大保留天数 90 最大配置定时任务个数 10 最大支持监听分支条件数 32 最大支持监听路径条件数 32 表2 发布管理限免版本使用限制 指标类别 指标项 限制值 开发者联调 单项目下最大环境数量 50 单个环境最大策略数量 5 单个策略最大任务数量 10 单个环境最大自定义环境变量个数 50 单个环境最大自定义环境变量可查看历史版本数 20 表3 策略使用限制 指标类别 指标项 限制值 策略管理 单租户下最大自定义规则条数 2000 单租户下所有项目中项目级规则集最大总和 1000 单租户下最大自定义规则集条数 100 单项目下最大自定义规则集条数 100 单规则集中最大自定义规则条数 100 表4 微服务使用限制 指标类别 指标项 限制值 微服务 单租户下最大微服务数量 500 单项目下最大微服务数量 50 表5 变更使用限制 指标类别 指标项 限制值 变更 单个微服务下最大进行中的变更数量(即处于开发中、待发布、发布中的变更总数) 50 单个变更关联最大关联工作项数量 10 发布流水线最大运行变更数量 10
  • 什么是微服务? 微服务是一种软件治理架构,一个大型的复杂软件项目,可以由一个或多个微服务组成,系统中各个微服务之间是松耦合的,各微服务并行独立开发、构建、验证及部署上线。微服务具备以下优点: 边界清晰:每一个微服务只关注一个特定的业务功能,开发和维护单个微服务都相对简单。 支持独立部署:单个微服务独立部署更新,不会对整个业务运行造成影响,保证业务7*24小时在线。 技术多样化:微服务可以使用不同的技术栈来实现,不同服务之间通过restful API通信,每个服务可以使用不同的技术框架和不同的存储库来实现。
  • 什么是发布管理? 发布管理(CodeArts Release)是CodeArts提供的版本配套、软件发布管理以及自动化部署上线的E2E解决方案,支撑产品的版本级持续交付。构筑版本配套、版本质量溯源等能力,保证版本配套质量。建设自动部署、智能变更等能力,保证版本变更质量。打造发布协同审批、发布决策等策略合规能力,保证发布流程标准化。 发布管理服务包括以下特性: 提供面向解决方案版本基线管理能力,支持微服务、模块级、产品级多维度版本编排,支持多云版本配套。 云原生微服务发布管理能力,支持微服务灰度编排发布能力,支持蓝绿、金丝雀等灰度发布策略,基于UCS实现跨云编排。 打造面向开发者测试的联调环境能力,基于动态路由和ServiceMesh技术实现非侵入式的环境隔离能力。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的云安全挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、虚拟主机和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 入门实践 当您完成创建项目、代码仓库等准备工作后,可以根据业务需求使用流水线提供的一系列常用实践。 表1 常用最佳实践 实践 描述 通过微服务变更流水线修复项目BUG并快速发布 CodeArts Pipeline为企业提供了一种微服务模型,将企业大军团的作战方式转变为小团队精英作战方式,支持每个微服务独立进行开发、验证、部署及上线发布,缩短需求发布周期。同时支持企业按照业务功能组织团队,优化管理模型,使运作更精细化,有效提升团队运作效率。 该解决方案介绍如何通过微服务变更流水线模拟修复项目下的一个BUG并快速发布。 基于K8S原生Service的场景完成微服务蓝绿发布 灰度发布是在生产环境中创建与当前线上服务完全一致的工作负载(灰度负载),仅对其中的包版本(业务代码和配置)进行更新,但是新创建的工作负载不承接任何现网流量,对线上用户没有任何影响。此时,就可以在没有风险的情况下,在生产环境放心地进行测试了。在灰度环境验证无问题之后,就可以逐渐将线上用户的真实访问引流到灰度负载,直至完全引流之后,新创建的灰度负载承接所有现网流量,原先的线上负载不承接任何流量,此时就可以安全地删除旧负载,保留新负载,完成一次发布。 该解决方案介绍在不需要占用集群额外资源安装插件的情况下,基于K8S原生Service的场景完成微服务灰度蓝绿发布。 配置准出条件并对代码检查结果进行校验 CodeArts Pipeline提供统一的准出条件管理能力,使用规则和策略将插件和流水线联系起来,并最终实现阶段准出的校验。用户根据实际需要将策略资源应用到流水线作为准出条件,帮助高效管理项目,保障产品高质量交付。 该解决方案基于“Check代码检查”策略,通过添加代码检查任务所在阶段的准出条件,对代码检查任务的检查结果进行自动化校验,只有检查结果满足准出条件,才可以进入下一个阶段。
  • 步骤3:新建变更 重新进入微服务“概览”页面。 切换到“变更”页签,进入微服务变更列表页面。 单击“新建变更”,进入“新建变更 ”页面,配置以下信息。 表3 新建变更 参数项 说明 变更标题 变更的名称,输入“bugfix”。 代码仓 变更关联的源码仓库,自动和微服务保持一致。 代码分支 变更新需求的开发分支,变更通过流水线发布成功后,会将代码分支自动合并至微服务的默认分支。选择“从默认分支拉取新分支”并输入分支名称“buxfix”。 关联工作项 变更关联的工作项,选择准备工作中已创建的工作项“BUGFIX”。 单击“确定”,完成变更的创建。 变更创建完成后,进入代码开发阶段,系统自动基于微服务默认分支创建出本次变更的特性分支,开发人员可以基于该特性分支进行代码开发活动。可根据需要,模拟向新拉取的分支提交代码更新。
  • 步骤2:新建变更流水线 在微服务列表页面,单击微服务名称,进入微服务“概览”页面。 切换到“流水线”页签,进入微服务流水线列表页面。 单击“新建流水线”,进入“新建流水线 ”页面,配置以下信息。 表2 新建变更流水线 参数项 说明 所属项目 变更流水线所在的项目,不可更改。 名称 变更流水线的名称,使用自动生成的即可。 代码源 变更流水线关联的源码类型,自动和微服务保持一致。 代码仓 变更流水线关联的源码仓库,自动和微服务保持一致。 默认分支 默认使用的分支,自动和微服务保持一致。 Repo https授权 打开“基于变更触发”后需配置“Repo HTTPS授权”,配置授权扩展点以提升代码仓操作权限。选择准备工作中已创建的授权扩展点“https-endpoint”。 别名 输入别名,会生成该仓库对应的相关系统参数,这里不设置。 基于变更触发 打开“基于变更触发”,将当前流水线设置为微服务变更流水线。 描述 变更流水线的描述,选填。 微服务变更流水线仅支持基于变更触发运行,且单个微服务下只能存在一条微服务变更流水线。 单击“下一步”,选择“新手上路”模板,自动生成代码检查、构建、部署等阶段,可根据需要对流水线进行编排,这里使用默认配置即可。 单击“保存”,完成微服务变更流水线的创建。
  • 步骤4:执行变更流水线 代码更新完成后,即可通过变更流水线执行变更。 在微服务变更列表页面,单击变更名称,进入“变更详情”页面。 单击右上角“提交发布”,弹出“提交发布”确认框,提示是否确认将变更提交至变更流水线。 图1 提交发布 单击“确定”,完成变更提交,页面跳转至对应变更流水线发布列表页面。 单击右上角“执行”,弹出“执行配置”侧滑框,选择刚提交的变更,并根据需要配置运行参数、选择执行阶段和任务等。 单击“执行”,启动变更流程。 微服务变更流水线在运行过程中,会自动增加“合并集成分支”和“合并主干”阶段,并将本次变更关联的特性分支合并到该集成分支上。 代码检查、构建、部署任务执行成功后,系统自动进入“合并主干”阶段,并弹出“手动确认”对话框。 图2 执行流水线 单击“继续执行”,“合并主干”阶段执行完成后,系统将自动完成以下事项。 将本次发布的变更状态更新为“已发布”。 将本次发布的变更关联的工作项状态更新为“已关闭”。 将本次发布使用的集成分支代码内容合并到微服务默认分支,实现代码自动合并。 至此,即完成了一次基本的微服务变更发布流程。
  • 步骤2:新建策略并添加规则 策略实行分层管理,可分为租户级策略和项目级策略。其中,租户级策略可以应用到当前租户下所有项目的流水线,项目级策略可以应用到当前项目下所有流水线。本节以租户级策略为例进行介绍。 单击左侧导航“策略”,进入策略管理页面。 租户级策略中默认存在一条“系统策略”,用户可查看和使用该策略,但不能进行编辑和删除。 单击“新建策略”,进入“新建策略”页面,策略名称输入“策略01”,勾选步骤1中新建好的规则“规则01”。 图2 新建策略 单击“确定”,完成策略创建。
  • 使用场景 大部分上下文可在流水线任意任务和步骤中使用。 在任务的执行条件中引用上下文,来指定某个任务的执行条件。 示例:如下使用表示任务在指定代码源的运行分支为“master”时才运行。 ${{ sources.my_repo.target_branch == 'master' }} 在任务的输入框中引用上下文获取信息。 示例1:如下使用表示获取流水线运行的所有信息。 ${{ pipeline }} 示例2:如下使用表示获取流水线运行的触发方式。 ${{ pipeline.trigger_type }}
  • pipeline context pipeline context包含流水线运行相关的信息。 名称 类型 说明 pipeline object 流水线运行相关的所有信息,此对象包含的属性包括:project_id、pipeline_id、run_number、timestamp、trigger_type和run_id。 pipeline.project_id string 当前流水线所属项目ID,同现有系统预定义参数PROJECT_ID。 pipeline.pipeline_id string 当前流水线ID,同现有系统预定义参数PIPELINE_ID。 pipeline.run_number string 流水线执行编号,同现有系统预定义参数PIPELINE_NUMBER。 pipeline.timestamp string 流水线执行时间戳,同现有系统预定义参数TIMESTAMP。如:20211222124301。 pipeline.trigger_type string 流水线触发类型,同现有系统预定义参数PIPELINE_TRIGGER_TYPE。 pipeline.run_id string 流水线执行ID,同现有系统预定义参数PIPELINE_RUN_ID。 内容示例 如下示例为一次手动运行的流水线包含的pipeline context信息。 { "project_id": "6428c2e2b4b64affa14ec80896695c49", "pipeline_id": "f9981060660249a3856f46c2c402f244", "run_number": "168", "timestamp": "20231016000004", "trigger_type": "Manual", "run_id": "c2f507f93510459190b543e47f6c9bec" } 使用示例 如需在某个任务的输入中获取本次流水线运行的触发方式,可使用如下语法来获取。 ${{ pipeline.trigger_type }}
  • env context env context包含流水线运行的自定义参数相关的信息。 名称 类型 说明 name string 自定义参数名称。 value string 自定义参数值。 内容示例 如下示例为流水线一次运行包含的env context信息,包含了两个自定义参数。 { "var_1": "val1", "var_2": "val2" } 使用示例 如需要在某个任务的输入中获取本次流水线运行的自定义参数“var_1”的值,可使用如下语法来获取。 ${{ env.var_1 }}
  • 模板类型 流水线模板包括两种类型:系统模板和自定义模板。 模板列表操作说明如下: 操作项 说明 生成流水线。单击后进入“新建流水线”页面,可快速生成对应模板的流水线。 收藏模板。单击可收藏模板,收藏后图标变为,再单击可以取消收藏。 单击后选择“编辑”,进入“任务编排”页面,可根据需要编辑模板。 单击后选择“复制”,进入“任务编排”页面,可根据需要复制模板。 单击后选择“删除”,可根据提示删除模板。 系统模板只能用来复制或生成流水线,不能编辑和删除。
  • 新建/配置模板 进入流水线模板列表。 单击模板列表“新建流水线模板”,进入“任务编排”页面。 根据需要配置模板基本信息、模板阶段/任务、模板参数等。 基本信息:可以编辑模板的名称(必填)、语言(可选择Java、Python、Node.js、Go、.Net、C++、PHP等语言,默认选择“无”)、描述(非必填)。 流水线源:无需配置。 准入设置:模板编排暂不支持配置阶段准入。 任务编排:流水线模板目前可以添加流水线阶段及部分插件,将构建、代码检查、部署、接口测试等任务配置在模板中后,通过模板创建流水线的时候会同步创建相应类型的任务。 参数设置:切换至“参数设置”页签,可根据需要为模板添加参数,流水线模板参数包括自定义参数和系统预定义参数两种,其中,自定义参数类型包括:字符串类型、枚举类型、自增长类型,配置方法请参见配置流水线参数。 配置完所有信息,单击“保存”即可。