持续交付36讲
王潇俊
携程系统研发部总监
立即订阅
7094 人已学习
课程目录
已完结 41 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 量身定制你的持续交付体系
免费
基本概念 (3讲)
01 | 持续交付到底有什么价值?
02 | 影响持续交付的因素有哪些?
03 | 持续交付和DevOps是一对好基友
配置管理 (4讲)
04 | 一切的源头,代码分支策略的选择
05 | 手把手教你依赖管理
06 | 代码回滚,你真的理解吗?
07 |  “两个披萨”团队的代码管理实际案例
环境管理 (6讲)
08 | 测试环境要多少?从现实需求说起
09 | 测试环境要多少?从成本与效率说起
10 | 让环境自己说话,论环境自描述的重要性
11 | “配置”是把双刃剑,带你了解各种配置方法
12 | 极限挑战,如何做到分钟级搭建环境?
13 | 容器技术真的是环境管理的救星吗?
构建集成 (5讲)
14 | 如何做到构建的提速,再提速!
15 | 构建检测,无规矩不成方圆
16 | 构建资源的弹性伸缩
17 | 容器镜像构建的那些事儿
18 | 如何做好容器镜像的个性化及合规检查?
发布及监控 (6讲)
19 | 发布是持续交付的最后一公里
20 | Immutable!任何变更都需要发布
21 | 发布系统一定要注意用户体验
22 | 发布系统的核心架构和功能设计
23 | 业务及系统架构对发布的影响
24 | 如何利用监控保障发布质量?
测试管理 (3讲)
25 | 代码静态检查实践
26 | 越来越重要的破坏性测试
27 | 利用Mock与回放技术助力自动化回归
持续交付平台化 (3讲)
28 | 持续交付为什么要平台化设计?
29 | 计算资源也是交付的内容
30 | 持续交付中有哪些宝贵数据?
持续交付移动App (3讲)
31 | 了解移动App的持续交付生命周期
32 | 细谈移动APP的交付流水线(pipeline)
33 | 进阶,如何进一步提升移动APP的交付效率?
实践案例 (4讲)
34 | 快速构建持续交付系统(一):需求分析
35 | 快速构建持续交付系统(二):GitLab 解决代码管理问题
36 | 快速构建持续交付系统(三):Jenkins 解决集成打包问题
37 | 快速构建持续交付系统(四):Ansible 解决自动部署问题
特别放送 (2讲)
持续交付专栏特别放送 | 答疑解惑
持续交付专栏特别放送 | 高效学习指南
结束语 (1讲)
结束语 | 越痛苦的事,越要经常做
持续交付36讲
登录|注册

14 | 如何做到构建的提速,再提速!

王潇俊 2018-08-04
在前面几篇文章中,我分享了很多关于构建的观点,然而天下武功唯为快不破,构建的速度对于用户持续交付的体验来说至关重要。
在实施持续交付的过程中,我们经常会遇到这样的情况:只是改了几行代码,却需要花费几分钟甚至几十分钟来构建。而这种情况,对于追求高效率的你我来说,是难以容忍的。
那么,今天我就带你一起看看,还有哪些手段可以帮助构建提速。

升级硬件资源

构建是一个非常耗时的操作,常常会成为影响持续交付速度的瓶颈。原因是,构建过程,会直接消耗计算资源,而且很多构建对硬件的要求也非常高。那么,升级硬件资源就是构建过程提速的最为直接有效的方式。
需要注意的是,这里的硬件资源包括 CPU、内存、磁盘、网络等等,具体升级哪一部分,需要具体情况具体分析。
比如,你要构建一个 C 语言程序,那么 CPU 就是关键点。你可以增加 CPU 的个数或者提升 CPU 主频以实现更快的编译速度。
再比如,你要用 Maven 构建一个 Java 应用,除了 CPU 之外,Maven 还会从中央仓库下载依赖写在本地磁盘。这时,网络和磁盘的 I/O 就可能成为瓶颈,你可以通过增加网络带宽提升网络吞吐,使用 SSD 代替机械硬盘增加磁盘 I/O ,从而到达提升整个构建过程速度的目的。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《持续交付36讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(7)

  • 固态U盘
    我们面临的问题就是构建速度慢,有时打包生成的构件还有问题。看了老师分享的这几点,我们的问题应该可以很好地解决了,多谢。
    2018-08-04
    3
  • 小雨
    Pip和apt都是用了清华的源,docker注册中心是用了gitlab自带的注册中心。
    2018-08-11
    1
  • S.X.B
    老师您好,在提速的实践中有遇到哪些坑可以分享一下吗?
    2019-11-21
  • qs小刚
    '比如, Sonar 扫描在代码集成阶段执行,用户在 GitLab 上发起一个合并请求(Merge Request),这时只对变更的代码进行对比 Sonar 扫描,只要变更代码检查没有问题,那么就可以保证合并之后主干分支的代码也是没问题的。'
    请问这块是如何跟CI整合的?
    2018-08-11
  • 羽绒棉
    有没有了解过google的bazel?
    2018-08-08
  • 手指饼干
    请问如何使用工具检查发布阶段的pom文件不包含Snapshot版本?
    2018-08-04
  • 九脉一谷
    想了解一下对于软件版本号是怎么处理的?是每次发版本的时候在pom里面修改一下配置还是通过什么其他方式来动态生成版本号

    作者回复: 不会自动生成,只是检查是否符合标准,版本号还是开发在pom自定的

    2018-08-04
收起评论
7
返回
顶部