文/华为小e
DevOps 变革了开发与 IT 运维之间的工作流程和传统衡量标准,这种强调信息相关者无缝衔接的工作能力,确保了软件交付的高效,使产品推向市场更加快速。不仅如此,企业应用 DevOps 之后还可以提高产品质量,以及组织有效性。当然,要想实现这一切需要有可靠且深厚的技术平台支持。对此,华云软件开发云给出了答案。
DevOps 的优势很明显,但如果仔细观察,就会发现真正在企业落地的并不多。虽然云计算、容器、微服务等技术在逐渐成熟,但企业在业务交付时仍会面临挑战。
市场需求变化极快,需要将创意迅速转变为产品,避免错过机遇窗口,使得交付压力大;同时需要按需发布,交付频率高,同时保证市场可接受的质量;
2、跨地域多团队协作多,效率亟待提升
产品交付团队经常分布在不同的地域,而且通常联合合作方进行产品的特性交付,不同团队的产品支撑工具平台不一致,难以满足快速高质量交付的要求;
3、工具平台的建立并持续演进,难以满足安全与可靠及性价比的要求
企业发现基于开源工具或者商业工具建立工具平台,需要专人维护,成本很高,可靠性保障难度大,与外部客户进行协同,开放工具平台又面临安全风险。
DevOps 概念从诞生至今已有8年时间,其不仅需要打通开发运维之间的部门墙,还要更多考虑到应用和服务的完整生命周期,实现自动化、跨团队的线上协作。DevOps 的核心实践理念包括:文化 (Culture)、自动化 (Automation)、精益 (Lean)、度量 (Measurement) 、共享 (Share),统称为 CALMS。然而,DevOps 落地离不开标准化、自动化工具的支撑,以便能够实现不同软件交付团队之间的全连接。
无论是纵向集成还是横向集成,DevOps 都需要通过工具链与持续集成、交付、反馈与优化进行端到端整合。华为基于二十几年的研发实践,并融合 DevOps 等理念方法,打造了软件开发云服务,希望为企业提供一站式的云上开发工具平台。据了解,华为软件开发云提供了项目管理、配置管理、代码检查、编译构建、测试、部署、发布等端到端地覆盖软件生命周期的相关服务。
从技术层面来看,企业可以在软件开发云上利用 “配置管理-代码检查-编译-构建-部署-测试-发布”等服务,为产品版本集成发布可视化地创建流水线,本流水线包含多个阶段 (stage);在每个阶段创建多个不同类型的任务 (task),例如,代码检查任务、编译构建任务等。
在代码提交后,利用云上各服务的集群并发及加速能力,流水线的相关任务可以实现最大程度地并发,在小时级别自动化实现版本级集成发布,得到版本质量报告,并快速反馈给开发人员,以便进行快速修复,在开发人员修复版本后并再次进行流水线的集成发布。在紧急状态下,还能实现版本的快速可靠回退。这样一来,版本每周或每日构建成为可能,项目管理服务提供了敏捷式、社交化的项目管理方式,可与配置管理关联,使得开发团队有效协同,通过看板等各种图表实时掌握项目进度和质量。
在实际使用过程中,以某个孵化器为例,在孵企业主要研发智慧城市解决方案相关的产品,多个公司经常会协同开发一款产品。每个公司使用不同的研发工具,没有一个统一的研发工具平台。为了解决瀑布模式难以快速迭代、跨地域多团队协同、手工编译构建周期长、不同团队的工具平台不统一等问题,选择了华为软件开发云进行项目联合开发。在熟悉了 DevOps 研发模式、软件开发云服务特性(例如流水线等)后,产品版本的集成发布由原先的 1 天缩短为 30 分钟,整个项目的交付周期缩短到 3 个月。
总的来说,软件开发云是华为企业云解决方案的重要组成部分,充分利用了华为企业云 I 层与 P 层的能力,提供了非常高的可靠性与安全性。未来,软件开发云势必将结合华为的业务方法论、工具以及实践发展趋势,推动服务演进。对于各个企业来说,可以利用软件开发云的互联网连接能力,安全可靠地进行协同开发,即开即用,实现 DevOps 研发模式的落地应用。
(更多华为资讯请关注华为开发者社区,华为自己的对外开放门户:http://developer.huawei.com/ict/cn/ ,不要问我叫啥,别人都叫我雷锋)