近日,国际系列技术峰会DevOpsDays大会在深圳开启。本活动是由中国DevOpsDays社区首次在深圳主办的中国第一次大会,上百位各行业开发者及DevOps的实践者们参会,华为云DevCloud多位产品专家受邀参加本次大会,分享了软件DevOps云化的发展,以及在云平台上的华为云DevCloud的DevOps实践。
践行DevOps理念,采用全云化的研发工具成为趋势
DevOps是Development+Operation的组合,旨在促进软件开发、运维和质量保障等部门间的沟通和协作,让软件交付具有5-10倍的TTM和效率优势。据调研数据显示,云在企业的发展成熟度及采用率越来越高,DevOps已经成为被广泛接受的软件交付新模式。
华为云DevCloud CTO讲述了华为的DevOps之路,华为向Cloud Native云原生转型,DevOps是工程基础。Cloud Native是一种新的系统实践范式,让软件能更好地基于云环境、适应云环境、受益云环境。华为公司也于2017年向Cloud Native转型,所有和云相关的产品都要采用Cloud Native的模式来构建,支撑公司全面云化战略。主要从3个方面来落地实践:架构、工具、组织,包括充分利用云基础设施与平台服务,具备微服务架构、弹性伸缩、分布式、高可用、多租户、自动化运维等关键特征的架构实践;建立与系统架构匹配的全功能团队、发展全栈工程师并高度协作的组织实践;采用DevOps、自动化工具,实现微服务持续交付的工程实践。通过架构、工程、组织面向云环境的协同实践,实现Cloud Native系统对外体现的快速、可靠、规模、灵活、高效的价值收益。
虽然很多企业已经在DevOps实践的道路上走了很远,但是对工具选用和能力建设方面仍可能存在迷茫和纠结。选择合适的工具来适应企业自身交付的服务或产品,可以更好地提升质量,提高效率。在云化服务交付增多的今天,采用全云化的研发工具成为趋势。
华为云DevCloud高级产品经理介绍了通过工具、过程、能力图谱来正确评估企业DevOps实践水平的方法,讲述了通过工具沙盘正确理解全云化研发工具的构成、能力优势以及面临的问题,提出了工具云化水平与服务产品形态的选取关系,并推荐了华为云化服务产品团队在落实全云化DevOps研发流程和工具过程中的前进历程和优秀实践。
华为云DevCloud的DevOps实践
在前端,华为云DevCloud高级产品经理讲到《基于微前端架构的DevOps实践》,主要分享DevCloud在大型网站性能优化的Devops实践。华为云DevCloud有10+前端portal服务,在微前端架构下,如何持续保持网站响应性能,在日常业务交付中仍能保证网站性能不被劣化。DevCloud前端团队首先基于网站前端架构以及业务特点整理出了完整的优化checklist,并根据产品性能体验建立了一整套的可视化监控体系,从实时的主动监控,到例行的被动验收,做到每日、每周的性能指标看护,从而驱动开发团队将性能优化工作做到每一次的版本开发过程中。告别过去的各种专项、各种行动,利用可视化与每日站会等Devops优秀实践将性能提升与优秀实践融入到日常工作中。
华为产品团队和代码规模跨度极大,由于产品规模太大,业务特性达数千个,模块也往往达到数十上百个,不同部门使用的环境和组网也会存在极大差异。
华为云DevCloud高级产品经理讲到,在这种复杂的环境下,华为构建了分层分级持续交付流水线,分为个人级、项目级、子系统级、产品级(版本级)、解决方案级等数级流水线,通过流水线编排工作流、触发下一级流水线的执行来保障产品团队和组件之间的协同交付。
在这个过程中,配套L1-L4分级测试模型,在不同层级流水线执行不同的自动化测试策略,并设置每个阶段任务对应的质量门禁来判断是否允许流水线继续执行。通过多级流水线的层层防护,使得缺陷发现前移,有效保障了产品质量。
对应于微服务化的产品形态,配套提供了微服务持续交付流水线模板。区别于传统产品持续交付流水线,微服务流水线在角色权限上匹配全功能团队全栈工程师的角色权限模型,SDE可以从代码提交并端到端执行流水线直至微服务发布上线。同时,构建出镜像,并实施容器化部署、灰度发布策略、失败自动回滚策略,微服务可按天、按小时甚至分钟级灰度发布上线。
在DevOps模式中,反馈非常重要,测试其实也是一种反馈,就像代码评审、代码检查、构建、部署等,通过反馈让我们及时发现代码和系统的问题,反馈周期越短,我们就能越早发现问题,成本越低。华为云DevCloud高级项目经理分享了DevOps下的测试方法和实践,包括新商业新模式下测试活动的冲击、测试债务的现状和挑战、测试金字塔和持续测试,以及云服务测试的具体实践。
DevCloud云测和移动应用测试,主要实现四部分功能:
1)实现云端高效协同测试,开展用例设计、测试执行、缺陷提交,提高测试效率。
2)双向追溯:通过需求-用例-缺陷双向追溯,确保所有需求都被正确测试,杜绝漏测、误测。
3)自动化测试:提供Android和iOS兼容性测试、接口测试,集成流水线支持持续自动化测试。
4)可视化:多维度产品质量看板,全方位评估产品质量,保障产品高效验收。
DevOps平台的构建思考和探索
DevOps工具平台的构建非常复杂,理念和方法论是工具平台的灵魂、主线,工具承载先进理念和方法论,固化流程、经验和最佳实践。华为云DevCloud是华为云的组成部分, 是华为30余年研发实践和前沿理念的结晶,为开发者提供一站式全流程安全可信的DevOps工具服务,同时,也是帮助企业修炼内功的一大利器,可以有效支撑企业DevOps落地,实现项目的高效、高质量迭代。未来,华为云DevCloud也将携手各企业各开发者/运维者,精诚合作互通,及时响应反馈,更好的为广大开发者提供稳定可靠的DevOps工具,助力软件企业专注业务创新。