文档章节

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

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

传统本地编译构建的问题

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

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

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

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

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

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

○ 多语言不能并行构建

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

云端编译构建优势

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

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

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

○ 构建成本低

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

○ 构建环境统一

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

○ 资源共享和按需分配

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

○ 混合语言并行构建

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

○ 构建速度快

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

云端编译构建体系结构

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

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

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

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

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

云端编译构建关键技术点

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

○ 任务和资源高效调度

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

○ 构建环境安全

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

○ 构建类型动态扩展

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

○ 资源弹性伸缩

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

○ 分布式构建

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

○ 本地镜像仓库

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

○ 构建环境容器化

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

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

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

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 60
码字总数 89417
作品 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
Android 中的ORM框架

在android 中,内置了sqlite数据库,java web 中,用惯了Hibernate ,想找找android中是否也有类似的orm框架,后来在开源中国看到了orman,这是一个很不错的框架。 这个可以帮我们快捷方便的...

超级大富
2013/02/09
0
3
SuperSocket 1.6.5 发布,1.6 系列最后一个版本

SuperSocket 1.6.5 今天发布了,SuperSocket时隔近一年再次发布新的版本。此版本也将是1.6系列的最后一个版本。 此版本包含如下改进: 修复 NuGet 包中错误的log4net引用版本号; 增加高版本 ...

江振宇
2015/11/03
3.2K
4
SuperSocket 1.6.4 发布,修复多个缺陷

SuperSocket 今日发布 1.6.4,此版本包含多个缺陷修复并升级 log4net 至 1.2.13: 修复了在服务器状态收集中可能会引起程序崩溃的缺陷 修复了一个在连接关闭时检查是否有待发送数据可能会发生...

江振宇
2014/12/03
2.6K
3
5分钟教你Windows 10中将“运行”固定到开始菜单

然而还是有很多用户需要在开始菜单中显示“运行”,却发现该程序本身和其他Win32程序不同,无法直接固定。想要在Windows10的开始菜单固定“运行”需要用到……嘿嘿,不是注册表编辑器,而是C...

linuxprobe
2016/09/21
2
0
Docker 这九个不同的应用场景,你都用到了吗?

Docker 是一个开源的容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括 VMs(...

编辑部的故事
2017/10/31
0
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

@Qualifier指定注入的bean

有这样一种情况,当你创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的一个进行装配,在这种情况下,你可以使用 @Qualifier 注释和 @Autowired 注释通过指定哪一个真正的 ...

少年已不再年少
8分钟前
0
0
gcviewer的使用

1、没有安装git软件 在编译打包GCViewer的过程中,不能执行git命令,错误信息如下: [ERROR] Failed to execute goal org.codehaus.mojo:buildnumber-maven-plugin:1.4:create (create-build...

刀锋
20分钟前
1
0
Android LogUtil 日志优化 调试的时候打印 点击跳转

打印日志的时候,可以点击跳转 LogUtil.java public class LogUtil { private static boolean IS_DEBUG = BuildConfig.DEBUG; public static void i(String tag, String message) {......

Jay_kyzg
30分钟前
0
0
人工智能你必须掌握的32个算法(二)归并排序算法

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子...

木头释然
32分钟前
0
0
第十四章NFS服务搭建与配置

14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netap...

Linux学习笔记
55分钟前
1
0
流利阅读笔记27-20180716待学习

生了娃照样能打,两位母亲温网会师 Lala 2018-07-16 1.今日导读 现今在生儿育女后回归事业的母亲们已经非常多见,但是很少有人想到,以高强度运动与竞争激烈为特色的竞技体育项目也会有 work...

aibinxiao
56分钟前
6
0
Guava 源码分析(Cache 原理【二阶段】)

前言 在上文「Guava 源码分析(Cache 原理)」中分析了 Guava Cache 的相关原理。 文末提到了回收机制、移除时间通知等内容,许多朋友也挺感兴趣,这次就这两个内容再来分析分析。 在开始之前...

crossoverJie
今天
0
0
OSChina 周一乱弹 —— 如果是你喜欢的女同学找你借钱

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享Michael Learns To Rock的单曲《Fairy Tale》 《Fairy Tale》- Michael Learns To Rock 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
今天
948
20
NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部