【云驻共创】华为端到端DevOps概览
1、概述
华为软件开发平台(DevCloud)是面向开发者提供的一站式云端DevSecOps平台,即开即用,随时随地在云端交付软件全生命周期,覆盖需求下发、代码提交、代码检查、代码编译、验证、部署、发布,打通软件交付的完整路径,提供软件研发流程的端到端支持。
2、DevOps功能特性
华为DevOps软件开发平台各服务功能特性如下:
2.1、项目管理
提供多项目管理、敏捷迭代管理、里程碑管理、需求管理、缺陷跟踪、多维度统计报表等功能。
- 迭代计划和时间线,有效管理项目计划。
- 树表、任务墙等多种视图,方便查看项目工作。
- 多种项目统计图表,随时掌握项目开展情况。
- 批量文档托管,信息传递不失真。
2.2、代码托管
提供安全、可靠、高效的分布式代码托管服务。包括代码克隆/下载/提交/推送/比较/合并/分支等功能。
- 专属云存储,全网TLS传输,角色权限管控等技术,网络安全团队专业认证,保证云上代码安全。
- 异地容灾,实时备份,快速恢复,定期演练,保障核心资产万无一失。
- 基于Git的分布式版本控制,提升跨地域跨团队协同开发效率。
- 关联项目任务,保障项目高效交付。
- 增强的安全防护能力,IP白名单与代码仓库访问日志审计。
- 代码仓库提交信息统计, 基于时间轴的贡献者代码提交统计。
2.3、代码检查
提供可协作的一站式代码检查服务。
- 一站式:覆盖主流编程语言、主流编码标准、SDLC集成等。
- 灵活易用的检查方式:支持代码提交检查、定时执行检查,支持多分支检查。
- 可协作:提供问题责任人自动归属、提供问题修改建议、可聚焦处理新问题等。
2.4、 云测
提供业内首推一站式自动化测试工厂解决方案,覆盖、测试管理、接口自动化测试。融入DevOps敏捷测试理念,打通测试计划、测试用例、测试执行和测试报告的全流程测试活动,提供缺陷上报、质量看板等方式多维度评估产品质量,帮助用户高效管理测试活动,保障产品高质量交付。
- 测试管理:成熟的测试用例管理系统,可以开展用例设计、测试执行、缺陷提交、质量报告,提高测试效率;记录修改历史,避免漏测、误测,易追溯审计,规范测试流程。 融入全生命周期追溯、测试计划、团队多角色协作、敏捷测试、需求驱动测试等理念,覆盖测试需求管理、测试任务分配、测试任务执行、测试进度管理、测试覆盖率管理、测试结果管理、缺陷管理、质量报告、测试仪表盘,一站式管理功能,提供适合不同团队规模、流程的自定义能力。
- 接口自动化测试:基于接口URL或者Swagger文档生成的接口脚本模板快速编排接口测试用例,集成流水线,支持微服务测试。测试用例免代码编写,技术门槛低,适合接口开发者、接口消费者、测试人员、业务人员等不同角色使用。一键导入Swagger接口定义自动生成脚本模板,基于脚本模板组装编排、管理接口自动化测试用例。支持HTTP和HTTPS协议,可视化用例编辑界面,丰富的预置检查点、内置变量,支持自定义变量、参数传递、持续自动化测试。
2.5、流水线
提供可视化、可编排的CI/CD持续交付软件生产线,帮助企业快速转型实现DevOps持续交付高效自动化,缩短应用TTM(Time to Market)交付周期,提升研发效率。
- 流水线自定义编排:可根据用户使用场景的需要,对构建、代码检查、子流水线、部署、流水线控制(延时执行、人工审核)、接口测试等多种类型的任务进行纳管和执行编排。
- 流水线可视化增删改查:提供图形化界面基础的流水线创建、编辑、删除和执行状态查看功能。其中,查看功能支持跳转到对应的自动化任务界面查看其日志等详情信息。
- 流水线权限管理:支持用户针对流水线任务设置指定帐号的权限控制,权限基于帐号所属角色-操作权限进行控制,包含基础的查看、编辑、执行、删除权限控制。
- 流水线历史执行记录:支持查看流水线最近30次的历史执行记录。
- 流水线消息通知:用户可根据需要设置事件类型的通知状态,包括是否发送服务动态和邮件通知。
- 流水线部分任务执行:根据用户需求,可选择流水线中的某一个或多个任务单独执行。
- 流水线执行参数配置:流水线支持自定义参数,在执行时由用户指定参数值,任务用指定值替换相应参数执行。
- 流水线串/并行执行配置:根据用户需求,可配置同一阶段内的任务串行执行或并行执行。
2.6、编译构建
快速、安全、弹性可扩展的云上编译构建服务。
- 开箱即用:提供标准化的云上环境,支持主流语言,多种构建框架。
- 灵活可扩展:全容器化构建,支持自定义构建环境;构建步骤可灵活编排;弹性可扩展的云上资源;支持软件开发平台代码托管、GitHub、通用Git等代码源。
- 快速:全局、租户的多级缓存;无缝对接开源镜像站,更快的获取依赖包。
2.7、部署
提供可视化、一键式部署服务,支持并行部署和流水线无缝集成。
- 基于系统模板和自定义模板,实现主流应用一键式部署。
- 支持多应用,多目标主机的并行部署。
- 提供丰富的部署步骤,支持拖拉拽的方式灵活编排,满足不同的部署场景。
- 支持云主机、物理机及容器等多种部署形态,也同时支持Tomcat、SpringBoot等多种技术栈的部署。
2.8、发布
提供软件发布管理的云服务,提供软件仓库、软件发布、发布包上传/下载、发布包元数据管理功能,通过安全可靠的软件仓库,实现软件包版本管理,提升发布质量和效率,实现产品的持续发布。
- 支持文件重命名、批量删除、批量恢复、页面上传和下载、文件名搜索等文件操作。
- 编译构建属性自动关联软件包,编译构建的产物自动归档到软件发布库。
- 支持构建服务一键归档、部署服务从发布库一键获取软件包。
2.9、开源镜像站
开源镜像站(Mirrors)是由软件开发平台提供的开源组件、开源操作系统及开源DevOps工具镜像站,致力为用户提供全面、高速、可信的开源组件/OS/工具下载服务。
- 内容更全:为用户提供包括maven、npm、centos等70+开源组件镜像,覆盖7大主流开发语言,20+开源os,40+开源工具。
- 高速下载:通过国外代理站点高速同步海外镜像源,并为注册用户提供全站CDN加速。
- 官方可信:与maven中央仓、centos等多家海外官方源站进行合作与认证,为用户提供可信的组件下载来源。
3、DevOps优势
3.1、一站式DevSecOps软件开发平台
提供端到端工具服务、覆盖整个生命周期,并与其它产品预集成,开箱即用,简化应用云上开发,云上部署,简化部署、发布,简化应用上云。
3.2、针对典型研发场景解决研发痛点
- 支持互联网开发、移动应用开发、微服务开发、嵌入式开发等主流研发场景;
- 针对需求变动频繁、开发测试环境复杂、多版本分支维护困难、无法有效监控进度和质量等研发痛点,提供一站式云端管理平台,管理软件开发全过程。
3.3、高可靠、高安全
多方位系统安全加固、核心研发数据加密传输和存储、双AZ容灾、SFS Tubor自动数据备份、基于角色的企业级安全管控,全面保障企业研发数据的安全。
3.4、效率更高
- 云端项目管理,融合敏捷开发理念,提供管理者看板和仪表盘,实现跨团队、跨地域高效协作;
- 云端代码检查 ,不断注入华为经验,自动化测试管理和APP测试功能,让软件缺陷减少20%;
- 提供可视化、可定制的持续交付流水线服务,一键式部署,让软件上线提速一倍。
4、操作实践
本操作主要介绍如何使用软件开发平台完成项目的开发、构建与部署,实现持续交付。
4.1、准备工作
购买软件开发平台及购买弹性云服务器,购买时的配置可参考下表。完成购买后,参考配置安全组规则添加端口22及8080的入方向规则。
配置分类 |
配置项 |
配置建议 |
基础配置 |
计费模式 |
选择“按需付费”。 |
区域 |
选择“华北-北京四”。 |
|
CPU架构 |
选择“x86”。 |
|
规格 |
选择“通用计算型”、2核4G或以上规格。 |
|
镜像 |
选择“公共镜像 > CentOS > CentOS 7.6 64bit(40GB)” 。 |
|
网络配置 |
网络 |
在列表中任选一个即可。 |
弹性公网IP |
选择“现在购买”。 |
|
规格 |
选择“静态BGP”。 |
|
计费方式 |
选择“按宽带计费”。 |
|
高级配置 |
云服务器名称 |
自定义(为避免帐号下购买过多个主机时不易查找的情况,建议修改系统默认主机名称,使用易于辨认的主机名)。 |
登录凭证 |
选择“密码”。 |
|
密码 |
自定义。 |
|
云备份 |
选择“暂不购买”。 |
4.2、新建项目
项目是使用软件开发平台各服务的基础,创建项目后才能完成后续操作。
- 登录软件开发平台,单击“新建项目”。
- 选择“Scrum”,输入项目名称“Demo”,单击“确定”。
4.3、 新建代码仓库
代码仓库用于项目代码的版本管理,本节使用软件开发平台内置的模板“Java Web Demo”创建代码仓库。
- 单击页面上方导航栏“代码> 代码托管”,进入代码托管服务。
- 单击页面右上角“普通新建”旁边的“∨”,选择“按模板新建”。
- 选择模板“Java Web Demo”,单击“下一步”。
输入代码仓库名称“Web-Demo”,单击“确定”。
4.4、检查代码
通过代码检查任务可以对代码进行静态检查,管控代码质量。
1、单击页面上方导航栏“代码> 代码检查”,进入代码检查服务。页面中显示自动创建的代码检查任务“web-demo-codecheck”。
2、单击“开始检查”启动任务,页面自动跳转至“概览”页。
4.5、构建并归档软件包
通过编译构建任务将软件的源代码编译成目标文件,并把配置文件和资源文件等打包并归档到软件发布库中。
1、单击页面上方导航栏“构建&发布> 编译构建”,进入编译构建服务。页面中显示自动创建的编译构建任务“Web-Demo-cloudbuild”。
2、单击“开始构建”启动任务,页面自动跳转至任务详情页。
3、单击页面上方导航栏“构建&发布> 发布”,进入软件发布库。
依次单击与任务构建任务同名的文件夹,与上一步中所记录的数字串同名的文件夹,能够找到生成的软件包。
4.6、部署构建包
通过部署任务将软件发布库中的软件包部署到虚拟机或者容器,并启动运行。
- 添加授信主机。
- 单击页面上方导航栏“设置> 通用设置”,在页面左侧导航中选择“主机组管理”。
- 单击“新建主机组”,输入主机组名称“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
- 点赞
- 收藏
- 关注作者
评论(0)