随着万物互联以及智能时代的到来,软件的形态发生巨大的变化,新技术、新场景下应用软件的开发对编程语言提出了新的诉求和挑战。华为自研的面向鸿蒙系统的编程语言“仓颉”一经推出,便在业界引起广泛关注,为开发者提供了性能更优、开发效率更高的工具。
在鸿蒙系统的开发过程中,DevOps实践被广泛应用,以支持其快速迭代和生态系统的发展。通过DevOps的实践,如持续集成、持续交付和持续部署,可以进一步提高鸿蒙系统的开发效率和产品质量,使其更好地适应快速变化的市场需求和技术环境。
谐云为支持华为自研的新一代编程语言-仓颉,将仓颉纳入DevOps效能平台支持的开发语言,首创支持鸿蒙的代码开发和编译构建,提供仓颉项目的自动化构建部署与制品管理能力,为用户带来更加卓越的使用体验。
本文将简要介绍谐云DevOps支持仓颉项目自动构建部署的流程实现。
一、鸿蒙仓颉
仓颉编程语言,是华为为鸿蒙量身打造的全场景智能应用编程语言,是鸿蒙生态基础设施建设的重要一环。仓颉不仅融入了鸿蒙生态,更旨在支持鸿蒙系统下的全场景应用开发,从云计算、大数据处理到人工智能模型开发,再到嵌入式开发,仓颉的应用场景广泛而深远。
作为鸿蒙生态的一部分,仓颉编程语言推动了智能化时代的发展,为开发者提供高效编程支持,是鸿蒙系统的最强辅助。它以其原生智能化、天生全场景、高性能、强安全等核心特性,为开发者带来了前所未有的编程体验。支持函数式、命令式和面向对象等多范式编程,让开发者可以根据开发偏好或应用场景,灵活选用不同的编程范式。
针对国产芯片(如华为昇腾、鲲鹏等),仓颉编程语言进行了深度优化,充分发挥了国产硬件的性能优势。这意味着,在使用仓颉进行开发时,开发者可以更加高效地利用国产芯片资源,推动国产化软硬件生态系统的快速发展。
二、仓颉项目自动构建部署流程
仓颉项目的自动化构建部署流程包含代码克隆、代码构建、制品上传、服务部署这几个主体流程,所有主流程都有对应的插件实现相关功能,在流水线中配置相关插件并运行即可达到自动化的制品构建与部署。其中代码克隆、制品构建、服务部署相比其他语言完全一致。
代码克隆
自动化流程的第一个步骤是将仓颉项目从代码仓库克隆下来,需要使用代码克隆插件,是整个自动化流程的第一步。
代码构建
仓颉项目可以是作为其他仓颉项目的依赖的公共依赖项目,也可以是能够构建对应可执行文件的应用项目,由于仓颉的公共依赖项目是不需要构建就支持依赖使用,所以不需要额外处理;应用项目则是可以生成对应的可执行二进制文件。
这里有两个关键点,一个是作为公共依赖的仓颉项目要是可下载的,最好是将这些项目配置成公开项目;二是要制作一个能够完成仓颉项目构建的镜像,然后将这个新构建的镜像添加到构建环境的Agent配置里,配置如下:
在流水线插件市场的代码构建插件语言字段增加CangJie0.53这个语言选项,并在构建命令里配置cjpm build进行项目构建,代码构建的具体插件配置如下图所示:
制品上传
制品上传插件就是将构建的制品保存到平台的制品仓库操作,基于这个插件,可是实现构建制品的固化,在平台也可以对制品进行生命周期管理。
在执行cjpm build完成项目构建后,会默认在当前项目的release/bin/目录下生成对应的可执 行二进制文件,这个就是项目的目标文件。可以使用通用制品上传插件将这个二进制制品上传到Nexus仓库进行管理。
当这个仓颉项目是要使用容器部署服务时,需要先使用镜像构建插件将构建出来的制品打包进镜像,然后将镜像推送到远程镜像仓库。
服务部署
服务部署插件分为主机部署插件和容器部署插件,这个操作流程是为了应用的自动化更新部署,从而实现服务快速更新迭代,服务部署一般按照部署平台分为主机部署和容器部署。
基于代码构建的二进制制品上传到远程主机上,然后触发远程启动脚本实现服务启动,从而最终实现自动化更新仓颉服务。
对于需要部署到Kubernetes上的仓颉应用,需要使用镜像构建插件构建出来的制品,更新到应用负载中的镜像里。
选择DevOps是适配鸿蒙的必要工具。谐云HC-DevOps是企业级的研发效能平台,打通从需求到设计、开发、构建、测试、发布再到部署全流程协同的研发工具支撑,满足企业研发管理与软件质效提升的需求,助力企业团队快速实践敏捷开发与 DevOps,抓好软件交付投产质量,提升软件交付质量与速度。
谐云DevOps实现了自动化构建、自动化测试、代码质量扫描、自动化部署等一体的自服务式持续交付流水线,降低开发人员的工作负担,减少许多不必要的重复劳动,并实现对持续交付流水线的全过程进行数据价值挖掘,持续提升代码质量和研发效率。
目前,谐云在落地DevOps过程改进及评级等方面具有丰富的行业经验,支撑兰州银行、浙商银行通过DevOps3级评估,并为某电力科研机构、证券机构、征信机构、城商行等客户打造了优秀案例。同时,谐云DevOps产品早在2021年就入选浙江省首版次软件产品目录,获软件质效技术创新优秀案例,并通过信通院先进级认证。
随着仓颉语言逐渐完善,国产化的稳步推进,越来越多对安全、自主可控有更高追求的企业项目将会切换到仓颉生态圈。谐云DevOps平台将积极参与鸿蒙仓颉生态圈建设,提供对仓颉项目自动化构建部署流程的支持,期待在协同联动中融合发展,共建共赢。