浅析云端软件编译构建

背景

软件编译构建是指把软件源码编译成目标文件,并将目标文件和必要的文档制作成软件包的过程,一般包含:从代码仓库拉取源码、从软件仓库拉取依赖包、编译成目标文件、软件打包、上传软件包等步骤。随着互联网技术和应用的高速发展,传统软件编译构建越来越不能满足互联网应用的需要,一种新的软件构建模式应运而生,那就是基于云端的软件编译构建。

本文从传统本地编译构建的问题与云端构建的优势两个角度来阐述软件编译构建的未来发展趋势,同时分享下华为在云端软件编译构建领域的体系架构与关键技术关注点。

传统本地编译构建的问题

○ 环境搭建耗时费力,且易因环境差异引入问题

研发人员耗费大量精力到环境的搭建配置及调测,不能聚焦业务开发。不仅造成开发人员精力的浪费,也由于时间消耗带来等待成本。同时,很难保证本地构建环境的完全同步,引发问题;

○ 本地硬件配置不高,编译构建速度慢

众所周知,编译构建硬件资源消耗大,但中小型企业和创业者受资金投入限制,硬件配置普遍不高,造成编译构建速度慢,影响开发效率;

○ 突发项目资源消耗大,结束后闲置

企业经常有突发性项目,对编译构建资源的需求突发性增加,让企业陷入两难境地,既不想影响突发项目进度,又不愿投入大量资金购买后期闲置设备;

○ 多语言不能并行构建

随着互联网的迅猛发展,多语言混合编程成为常态,本地构建环境受硬件限制,难于在同一环境上支持多种构建语言和应用类型并发构建。

传统本地编译构建的问题

云端编译构建,在云上集中编译构建资源,通过统一平台和调度,为软件企业或者个人按需分配资源,提供软件编译构建服务。其具有本地构建无可比拟的优势,必将成为软件编译构建的主流方式。

○ 把开发人员从繁琐的环境搭建解脱出来

开发人员不再关注构建环境软硬件、安装配置及维护,代码提交后,指定需要的构建类型,系统即可自动分配相应资源完成构建出包。开发人员可完全聚焦于业务实现,降低开发成本;

○ 构建成本低

软件企业不再需要有自己独立的构建环境,只需按照实际占用的构建资源及时长,支付相应费用。避免企业一次性的大量资金投入,对个人创业者更是具有极大的吸引力;

○ 构建环境统一

所有构建都基于相同的环境和配置,企业和用户再也不用担心因为环境差异带来的头痛问题。而且云端构建环境,由专业人士统一维护和升级,可快速跟踪和更新为业界主流构建标准和高效工具,快速提升构建质量和效率;

○ 资源共享和按需分配

云端构建可在构建资源上预装多种构建环境,收到构建请求时,再根据需要动态分配环境和构建任务,任务完成后即刻释放资源,真正做到按需分配和资源共享;

○ 混合语言并行构建

云端构建具有海量的构建资源,通过统一的调度算法,可指定构建任务到不同的构建资源上并行执行,很好地满足互联网开发混合语言并行构建的需要;

○ 构建速度快

云端构建不仅可大幅提高硬件配置来提升构建速度,还可利用海量的构建资源,采用分布式构建等技术手段,实现本地构建无法企及的构建速度,大幅提升构建效率,减少人员等待时间。

传统本地编译构建的问题

云端编译构建服务一般由构建任务执行层、构建任务调度层、构建任务管理层和Web访问和操作层组成。

构建任务执行层负责构建任务的真正执行;

构建任务调度层负责构建任务和资源的分配和调度;

构建任务管理层负责构建任务的常规管理及构建结果的收集展示;

Web访问和操作层负责为web访问和操作提供支持。

云端编译构建关键技术点

为了发挥自身优势,云端软件编译构建又采用了许多有别于传统构建的技术手段。

○ 任务和资源高效调度

任务和资源高效调度,是云端编译构建需要具备的基础能力,不仅需要准确匹配构建任务要求和资源,同时其效率和任务的并发度,也是影响构建效率的关键因素。在设计和搭建云端编译构建服务时,需要重点考虑;

○ 构建环境安全

云端构建的最大好处就是多用户对构建环境的重用,但在构建时,必然要将用户源码下载到构建环境。对不同企业或者用户来说,就存在安全隐患,如何保证源码(包括编译临时文件)在不同用户和企业间隔离,也是云端构建需要解决的重点问题;

○ 构建类型动态扩展

由于互联网业务种类繁多,需要支持的构建语言和类型也日新月异,所以云端构建需要具备构建类型动态扩展能力,比如通过插件快速加入新构建类型的的能力;

○ 资源弹性伸缩

云上承载的构建任务量总是在动态变化,为了避免长期占用宝贵的计算资源,云端构建需要具有资源弹性伸缩能力。构建需求量大时,能够自动申请基础资源并快速可靠创建构建环境;构建需求量减小时,自动释放构建资源给基础云,实现资源的最大化重用;

○ 分布式构建

为了最大程度地利用云端构建的海量资源来提升构建速度和构建并发能力,需要让构建任务在不同的构建资源中并行执行。如何最大程度地利用资源进行分布式构建,是云端构建的关键技术和核心能力;

○ 本地镜像仓库

为了提高构建速度,云端构建一般会提供本地镜像仓库,避免构建时再通过网络从中心仓库拉取依赖包。当然,为了保持仓库间软件包的同步,需要镜像仓库与远程中心仓库自动定期同步;

○ 构建环境容器化

云端构建最好能将构建环境容器化,减少环境依赖,以便快速复制构建环境,并在同一节点执行多个构建任务,提升系统并行构建能力。

华为软件开发云云端软件编译构建

软件云端软件编译构建是华为软件开发云提供的基础服务,目前已支持Web、移动终端、IoT三大应用构建;支持Maven、Ant、Gradle、Grails、cMake、CodeSourcery等主流构建标准。具备构建资源动态伸缩、构建任务零等待等优势,并通过多语言并行构建助力软件企业和个人大幅提升编译构建效率。

`

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容