【云驻共创】华为端到端DevOps概览

举报
nukinsan 发表于 2022/08/21 14:53:19 2022/08/21
【摘要】 DevOps为软件开发创造了新的标准,从基础系统到加强反馈循环,再到创造不断试验和学习的团队文化。同时随着系统开发周期在DevOps模式下持续缩短,软件开发流程将在自动化和事件监控等领域取得更多突破,这也是DevOps为智能化贡献的独特价值。相信随着各行业数字化转型的不断深入,华为端到端DevOps将会应用到更多行业中去。

1、概述


华为软件开发平台(DevCloud)是面向开发者提供的一站式云端DevSecOps平台,即开即用,随时随地在云端交付软件全生命周期,覆盖需求下发、代码提交、代码检查、代码编译、验证、部署、发布,打通软件交付的完整路径,提供软件研发流程的端到端支持。


2、DevOps功能特性


华为DevOps软件开发平台各服务功能特性如下:


2.1、项目管理

提供多项目管理、敏捷迭代管理、里程碑管理、需求管理、缺陷跟踪、多维度统计报表等功能。

  • 迭代计划和时间线,有效管理项目计划。
  • 树表、任务墙等多种视图,方便查看项目工作。
  • 多种项目统计图表,随时掌握项目开展情况。
  • 批量文档托管,信息传递不失真。

2.2、代码托管

提供安全、可靠、高效的分布式代码托管服务。包括代码克隆/下载/提交/推送/比较/合并/分支等功能。

  • 专属云存储,全网TLS传输,角色权限管控等技术,网络安全团队专业认证,保证云上代码安全。
  • 异地容灾,实时备份,快速恢复,定期演练,保障核心资产万无一失。
  • 基于Git的分布式版本控制,提升跨地域跨团队协同开发效率。
  • 关联项目任务,保障项目高效交付。
  • 增强的安全防护能力,IP白名单与代码仓库访问日志审计。
  • 代码仓库提交信息统计, 基于时间轴的贡献者代码提交统计。

2.3、代码检查

提供可协作的一站式代码检查服务。

  • 一站式:覆盖主流编程语言、主流编码标准、SDLC集成等。
  • 灵活易用的检查方式:支持代码提交检查、定时执行检查,支持多分支检查。
  • 可协作:提供问题责任人自动归属、提供问题修改建议、可聚焦处理新问题等。

2.4、 云测

提供业内首推一站式自动化测试工厂解决方案,覆盖、测试管理、接口自动化测试。融入DevOps敏捷测试理念,打通测试计划、测试用例、测试执行和测试报告的全流程测试活动,提供缺陷上报、质量看板等方式多维度评估产品质量,帮助用户高效管理测试活动,保障产品高质量交付。

  • 测试管理:成熟的测试用例管理系统,可以开展用例设计、测试执行、缺陷提交、质量报告,提高测试效率;记录修改历史,避免漏测、误测,易追溯审计,规范测试流程。 融入全生命周期追溯、测试计划、团队多角色协作、敏捷测试、需求驱动测试等理念,覆盖测试需求管理、测试任务分配、测试任务执行、测试进度管理、测试覆盖率管理、测试结果管理、缺陷管理、质量报告、测试仪表盘,一站式管理功能,提供适合不同团队规模、流程的自定义能力。
  • 接口自动化测试:基于接口URL或者Swagger文档生成的接口脚本模板快速编排接口测试用例,集成流水线,支持微服务测试。测试用例免代码编写,技术门槛低,适合接口开发者、接口消费者、测试人员、业务人员等不同角色使用。一键导入Swagger接口定义自动生成脚本模板,基于脚本模板组装编排、管理接口自动化测试用例。支持HTTPHTTPS协议,可视化用例编辑界面,丰富的预置检查点、内置变量,支持自定义变量、参数传递、持续自动化测试。

2.5、流水线

提供可视化、可编排的CI/CD持续交付软件生产线,帮助企业快速转型实现DevOps持续交付高效自动化,缩短应用TTMTime to Market)交付周期,提升研发效率。

  • 流水线自定义编排:可根据用户使用场景的需要,对构建、代码检查、子流水线、部署、流水线控制(延时执行、人工审核)、接口测试等多种类型的任务进行纳管和执行编排。
  • 流水线可视化增删改查:提供图形化界面基础的流水线创建、编辑、删除和执行状态查看功能。其中,查看功能支持跳转到对应的自动化任务界面查看其日志等详情信息。
  • 流水线权限管理:支持用户针对流水线任务设置指定帐号的权限控制,权限基于帐号所属角色-操作权限进行控制,包含基础的查看、编辑、执行、删除权限控制。
  • 流水线历史执行记录:支持查看流水线最近30次的历史执行记录。
  • 流水线消息通知:用户可根据需要设置事件类型的通知状态,包括是否发送服务动态和邮件通知。
  • 流水线部分任务执行:根据用户需求,可选择流水线中的某一个或多个任务单独执行。
  • 流水线执行参数配置:流水线支持自定义参数,在执行时由用户指定参数值,任务用指定值替换相应参数执行。
  • 流水线串/并行执行配置:根据用户需求,可配置同一阶段内的任务串行执行或并行执行。

2.6、编译构建

快速、安全、弹性可扩展的云上编译构建服务。

  • 开箱即用:提供标准化的云上环境,支持主流语言,多种构建框架。
  • 灵活可扩展:全容器化构建,支持自定义构建环境;构建步骤可灵活编排;弹性可扩展的云上资源;支持软件开发平台代码托管、GitHub、通用Git等代码源。
  • 快速:全局、租户的多级缓存;无缝对接开源镜像站,更快的获取依赖包。

2.7、部署

提供可视化、一键式部署服务,支持并行部署和流水线无缝集成。

  • 基于系统模板和自定义模板,实现主流应用一键式部署。
  • 支持多应用,多目标主机的并行部署。
  • 提供丰富的部署步骤,支持拖拉拽的方式灵活编排,满足不同的部署场景。
  • 支持云主机、物理机及容器等多种部署形态,也同时支持TomcatSpringBoot等多种技术栈的部署。

2.8、发布

提供软件发布管理的云服务,提供软件仓库、软件发布、发布包上传/下载、发布包元数据管理功能,通过安全可靠的软件仓库,实现软件包版本管理,提升发布质量和效率,实现产品的持续发布。

  • 支持文件重命名、批量删除、批量恢复、页面上传和下载、文件名搜索等文件操作。
  • 编译构建属性自动关联软件包,编译构建的产物自动归档到软件发布库。
  • 支持构建服务一键归档、部署服务从发布库一键获取软件包。

2.9、开源镜像站

开源镜像站(Mirrors)是由软件开发平台提供的开源组件、开源操作系统及开源DevOps工具镜像站,致力为用户提供全面、高速、可信的开源组件/OS/工具下载服务。

  • 内容更全:为用户提供包括mavennpmcentos70+开源组件镜像,覆盖7大主流开发语言,20+开源os40+开源工具。
  • 高速下载:通过国外代理站点高速同步海外镜像源,并为注册用户提供全站CDN加速。
  • 官方可信:与maven中央仓、centos等多家海外官方源站进行合作与认证,为用户提供可信的组件下载来源。

3、DevOps优势


3.1、一站式DevSecOps软件开发平台

提供端到端工具服务、覆盖整个生命周期,并与其它产品预集成,开箱即用,简化应用云上开发,云上部署,简化部署、发布,简化应用上云。


3.2、针对典型研发场景解决研发痛点

- 支持互联网开发、移动应用开发、微服务开发、嵌入式开发等主流研发场景;

- 针对需求变动频繁、开发测试环境复杂、多版本分支维护困难、无法有效监控进度和质量等研发痛点,提供一站式云端管理平台,管理软件开发全过程。


3.3、高可靠、高安全

多方位系统安全加固、核心研发数据加密传输和存储、双AZ容灾、SFS Tubor自动数据备份、基于角色的企业级安全管控,全面保障企业研发数据的安全。


3.4、效率更高

- 云端项目管理,融合敏捷开发理念,提供管理者看板和仪表盘,实现跨团队、跨地域高效协作;

- 云端代码检查 ,不断注入华为经验,自动化测试管理和APP测试功能,让软件缺陷减少20%

- 提供可视化、可定制的持续交付流水线服务,一键式部署,让软件上线提速一倍。


4、操作实践


本操作主要介绍如何使用软件开发平台完成项目的开发、构建与部署,实现持续交付。

4.1、准备工作

购买软件开发平台购买弹性云服务器,购买时的配置可参考下表。完成购买后,参考配置安全组规则添加端口228080的入方向规则。

配置分类

配置项

配置建议

基础配置

计费模式

选择“按需付费”

区域

选择“华北-北京四”

CPU架构

选择“x86”

规格

选择“通用计算型”24G或以上规格。

镜像

选择公共镜像 > CentOS > CentOS 7.6 64bit(40GB) 

网络配置

网络

在列表中任选一个即可。

弹性公网IP

选择“现在购买”

规格

选择“静态BGP”

计费方式

选择“按宽带计费”

高级配置

云服务器名称

自定义(为避免帐号下购买过多个主机时不易查找的情况,建议修改系统默认主机名称,使用易于辨认的主机名)。

登录凭证

选择“密码”

密码

自定义。

云备份

选择“暂不购买”

4.2、新建项目

项目是使用软件开发平台各服务的基础,创建项目后才能完成后续操作。

  1. 登录软件开发平台,单击新建项目
  2. 选择“Scrum”,输入项目名称“Demo”,单击确定

4.3、 新建代码仓库

代码仓库用于项目代码的版本管理,本节使用软件开发平台内置的模板“Java Web Demo”创建代码仓库。

  1. 单击页面上方导航栏代码代码托管,进入代码托管服务。
  2. 单击页面右上角普通新建旁边的,选择按模板新建
  3. 选择模板“Java Web Demo”,单击下一步

        输入代码仓库名称“Web-Demo”,单击确定

4.4、检查代码

通过代码检查任务可以对代码进行静态检查,管控代码质量。

    1、单击页面上方导航栏代码代码检查,进入代码检查服务。页面中显示自动创建的代码检查任务“web-demo-codecheck”

    2、单击开始检查启动任务,页面自动跳转至概览页。

4.5、构建并归档软件包

通过编译构建任务将软件的源代码编译成目标文件,并把配置文件和资源文件等打包并归档到软件发布库中。

    1、单击页面上方导航栏构建&发布编译构建,进入编译构建服务。页面中显示自动创建的编译构建任务“Web-Demo-cloudbuild”

    2、单击开始构建启动任务,页面自动跳转至任务详情页。


    3、单击页面上方导航栏构建&发布发布,进入软件发布库。

     依次单击与任务构建任务同名的文件夹,与上一步中所记录的数字串同名的文件夹,能够找到生成的软件包。

4.6、部署构建包

通过部署任务将软件发布库中的软件包部署到虚拟机或者容器,并启动运行。

  1. 添加授信主机。
  2. 单击页面上方导航栏设置通用设置,在页面左侧导航中选择主机组管理
  3. 单击新建主机组,输入主机组名称“host-group”、选择操作系统(Linux),单击保存

    3、单击添加主机,输入在准备工作中购买的弹性云服务器信息,单击添加

         等待15秒左右,页面显示验证成功。

    4、配置并执行部署任务。

         单击页面上方导航栏构建&发布部署,进入部署服务。页面中显示自动创建的部署任务“web-demo-deploy”

    5、单击 ,编辑部署步骤。

         停止SpringBoot服务:首次执行时,由于目标主机上还未有服务,执行该步骤会失败,因此不勾选启用选项。

    6、安装JDK:修改jdk版本为“openjdk-1.8.0”

    7、选择部署来源:参考下表进行配置。

配置项

选择源类型

构建任务

请选择构建任务

Web-Demo-cloudbuild

下载到主机的部署目录

${download_path}


    8、选择参数设置页签,参考下表配置任务参数。

    9、单击保存并执行

         等待1分钟左右,页面提示部署成功。


    10、查看部署结果。

打开一个新的浏览器页面,输入访问地址“http://IP:8080/test”,其中“IP”准备工作中购买的弹性云服务器的IP

若出现以下访问结果,表示部署成功。

4.7、配置流水线

通过流水线可以将代码检查、编译构建、部署等任务串联起来,当代码发生改变时,自动触发流水线执行,实现持续交付。

单击页面上方导航栏构建&发布流水线,进入流水线服务。页面中显示自动创建的流水线“Web-Demo-pipeline”

    1、单击 ,在下拉列表中选择编辑

    2、编辑流水线任务。

        本文暂不涉及接口测试,因此需要将接口测试任务从流水线中移除。

        单击接口测试任务对应 ,在下拉列表中单击删除任务

    3、单击部署任务

    4、选择执行计划页签,将代码提交时触发对应开关打开。

    5、单击保存,退出编辑。

         在部署步骤停止SpringBoot服务中勾选启用

         进入代码仓库,找到文件“src/main/java/com/huawei/devcloud/controller/TestController.java”

单击 ,将“hello world”修改为“hello world change”,单击确定

    6、返回流水线页面,可看到流水线正在运行中。

等待2分钟左右,当页面显示 时,重新访问页面“http://IP:8080/test”,访问结果将变为下图显示内容。

5、应用场景


5.1、互联网开发运营

  • 研发挑战

互联网企业在面对市场高速变化、产品盈利窗口窄时,经常由于研发工具难以满足项目实际需求,导致难以及时交付高质量的产品给客户;此外,企业的研发能力也难以度量,无法依据数据化判断新项目的接单能力。

  • 推荐搭配

项目管理、代码托管、代码检查、编译构建、部署、云测。

  • 解决方案

5.2、传统行业互联网+转型

  • 研发挑战

传统企业在进行互联网+转型的过程中,由于对互联网行业了解不足,以及本身传统管理模式中存在的弊端,导致转变方向不明确,核心竞争产品研发效率低下,技术手段落后,转型难以推行。

  • 推荐搭配

项目管理、代码托管、编译构建、部署、云测、发布。

  • 解决方案

传统行业互联网+转型场景

5.3、高校/培训机构

  • 研发挑战

受应试教育影响,学生对课堂理论知识接受能力强,而运用知识解决实际问题偏弱;多数学生在个人能力发展过程中忽略了对动手能力、职业素养、团队协作意识等方面的培养;精心制定的教学计划与内容难以跟随IT行业快速变化的技术理论与前沿趋势;学科竞赛、实验项目推进、综合实训缺少统一规范化的流程与平台。

  • 推荐搭配

项目管理、代码托管、代码检查、编译构建、云测、部署、发布。

  • 解决方案

高校/培训机构场景

5.4、软件及解决方案运营商

  • 研发挑战

软件及解决方案运营企业在研发过程中,存在开发人员办公地点不同,研发工具、环境不统一,导致沟通交流困难;客户需求变化快,导致项目极易返工,需要快速应对需求变化;此外,自动化的持续集成也尤为重要。

  • 推荐搭配

项目管理、代码托管、代码检查、编译构建、部署、云测、发布。

  • 解决方案

软件及解决方案运营商场景

6、小结


DevOps为软件开发创造了新的标准,从基础系统到加强反馈循环,再到创造不断试验和学习的团队文化。同时随着系统开发周期在DevOps模式下持续缩短,软件开发流程将在自动化和事件监控等领域取得更多突破。当开发人员能够大规模开发更安全、更有韧性的软件系统时,开放和协作的潜力将得到进一步释放。这也是DevOps为智能化贡献的独特价值。相信随着各行业数字化转型的不断深入,华为端到端DevOps将会应用到更多行业中去。


本文参与华为云社区【内容共创】活动第19期。
https://bbs.huaweicloud.com/blogs/370132

任务25华为端到端DevOps概览

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。