文档章节

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

 透明的鱼
发布于 2017/05/25 11:31
字数 2069
阅读 12
收藏 0

传统本地编译构建的问题

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

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

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

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

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

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

○ 多语言不能并行构建

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

云端编译构建优势

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

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

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

○ 构建成本低

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

○ 构建环境统一

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

○ 资源共享和按需分配

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

○ 混合语言并行构建

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

○ 构建速度快

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

云端编译构建体系结构

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

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

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

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

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

云端编译构建关键技术点

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

○ 任务和资源高效调度

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

○ 构建环境安全

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

○ 构建类型动态扩展

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

○ 资源弹性伸缩

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

○ 分布式构建

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

○ 本地镜像仓库

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

○ 构建环境容器化

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

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

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

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 69
码字总数 109825
作品 0
拎包入住“云”中办公——上海电信携手新华三构建LSN区域云

不用单独开发信息系统、不用自行采购硬件、不用专业IT人员运维,拎包即可入住……想必大部分企业都渴望拥有一个这样灵活弹性的办公环境,这样一来,不仅可以省去一大笔投资成本,还能减轻运维...

玄学酱
04/23
0
0
Socket服务器开发框架--SuperSocket

SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,可用来构建一个服务器端 Socket 程序,而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的。该项目使用纯 C# 开发,...

江振宇
2010/06/13
61.9K
14
SuperSocket 1.6.3 发布,进一步稳固质量

SuperSocket 今日发布一个新的版本,包含了少量缺陷的修复: 修复了服务器实例处于停止状态时,性能采集器会抛出异常的缺陷 修复了在连接断开时发送多块数据时可能会抛出异常的缺陷 修复了几个...

江振宇
2014/07/29
3.3K
12
javaWeb数据库动态加载全国省市区三级联动

demo源码下载地址:https://git.oschina.net/zhengweishan/GetProvinceCityArea 首先声明一下,全国省市区三级联动有很多的插件。没有必要这么麻烦的把省市区存到数据库,然后再获取。这样缺...

火龙战士
2015/04/16
0
8
使用Kotlin构建MVVM应用程序—第四部分:依赖注入Dagger2

目录 使用Kotlin构建MVVM应用程序—总览篇 使用Kotlin构建MVVM应用程序—第一部分:入门篇 使用Kotlin构建MVVM应用程序—第二部分:Retrofit及RxJava 使用Kotlin构建MVVM应用程序—第三部分:...

ditclear
05/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
33
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部