减负!云端编译构建,这样让你的开发省时省力……

传统本地编译构建的问题

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

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

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

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

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

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

○ 多语言不能并行构建

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

云端编译构建优势

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

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

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

○ 构建成本低

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

○ 构建环境统一

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

○ 资源共享和按需分配

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

○ 混合语言并行构建

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

○ 构建速度快

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

云端编译构建体系结构

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

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

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

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

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

云端编译构建关键技术点

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

○ 任务和资源高效调度

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

○ 构建环境安全

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

○ 构建类型动态扩展

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

○ 资源弹性伸缩

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

○ 分布式构建

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

○ 本地镜像仓库

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

○ 构建环境容器化

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

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

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

时间: 2024-11-05 16:11:47

减负!云端编译构建,这样让你的开发省时省力……的相关文章

纯干货!华为软件开发云编译构建之Maven

一.Maven介绍 Maven是一个项目管理和整合的工具.Maven为开发者提供了一套完整的构建生命周期框架.开发团队基本不用花多少时间就能自动完成工程的基础构建配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期. 二.Maven用途 Maven提供了帮助管理 构建.文档.报告.依赖.SCMs.发布.分发的方法.可以方便的编译代码.进行依赖管理.管理二进制库等等.Maven的好处在于可以将项目过程规范化.自动化.高效化以及强大的可扩展性利用Maven自身及其插件还可以获得代码检

如何在Idea中编译构建Spring Framework 5.x

如何在Idea中编译构建Spring Framework 5.x 安装配置Gradle(略) 下载源码:git clone https://github.com/spring-projects/spring-framework.git 按照工程下import-into-idea.md文件的提示进行操作 The following has been tested against IntelliJ IDEA 2016.2.2 ## Steps _Within your locally cloned

构建ubuntu下的JXTA-C开发环境

概述: 因为网络上关于这个JXTA-C源码编译的文章较少,所以我在此首先写一份编译的完整过程,以供网友们参考. JXTA-C源码所在地址:http://download.java.net/jxta/ 1.操作系统环境 [email protected]:~$ cat /etc/issue Ubuntu 12.04.4 LTS \n \l [email protected]:~$ file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 8038

Jenkins自动化构建系列:01敏捷开发、自动化构建与持续集成

<SVN与TortoiseSVN实战系列>已写完,今天新开一个<Jenkins自动化构建系列>,上周听了Bob Jiang老师的Agile1001公开课,一直想写个总结,这篇关于敏捷开发.自动化构建与持续集成的思考就作为开题篇吧. 敏捷是什么? 敏捷是一把伞,这把伞下边有XP.Scrum.FDD...,当然也包括自动化构建.持续集成,其实符合敏捷思想的开发方法.工具,如Jenkins都可以属于敏捷开发的范畴,上课时的PPT: 敏捷到底是什么? 其实关于敏捷的定义有很多,Bob Ji

deb编译构建指南

deb 仓库同步 工具 apt-mirror 基本配置: /etc/apt/mirror.list ############# config ################## # # set base_path /var/spool/apt-mirror # # set mirror_path $base_path/mirror # set skel_path $base_path/skel # set var_path $base_path/var # set cleanscript $v

新用到的一个c++项目编译构建工具---blade

在linux平台,以前makefile,cmake.... 各种难用和繁琐 blade 据说是腾讯搞出来的,好吧还不错,企鹅继续加油! 采用python开发的. 首先,Blade解决了依赖问题. 当你在构建某些目标时,头文件有变化,会自动重新构建. 最方便的是,Blade也能追踪库文件的依赖关系.比如 库 foo 依赖库 common,那么在库 foo 的 BUILD 文件中列入依赖: cc_library(     name = 'foo',     srcs = ...     deps =

源码编译构建JSVC执行程序

从apache下载 commons-daemon的源代码,配置JAVA_HOME环境变量. 1. 首先安装编译环境的依赖: autoconf gcc make jdk 2. 进入源代码目录:/path/to/commons-daemon-src/src/native/unix 3. 执行如下命令: sh support/buildconf.sh 4. 输入成功信息:support/buildconf.sh: configure script generated successfully 5. 配

Android Studio 编译构建报错总结

1. AndroidStudio 编译异常java.lang.OutOfMemoryError, Unable to create new native thread 我的情况的解决方案: 在build.gradle中的android{}添加如下脚本就可以顺利编译了 dexOptions { incremental true javaMaxHeapSize “4g” } 2.Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 构建Apk的时候,Signa

Linux精华篇—CentOS 7.4下源码编译构建LAMP架构

CentOS 7.4搭建LAMPLAMP:Linux.Apache.mysql.php 目录:第一部分 准备工作第二部分 安装Apache服务第三部分 安装MySQL服务第四部分 搭建PHP运行环境第五部分 LAMP架构应用 第一部分 准备工作一:服务器:Linux系统-CentOS 7.4:IP地址:192.168.80.10客户端:以WIN7为例,测试验证结果,与服务器在同一网段:IP地址:192.168.80.2 二:下载压缩包http://httpd.apache.org/downloa