硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

超越持续集成——持续部署

  • 2009-03-11
  • 本文字数:1118 字

    阅读完需:约 4 分钟

特征进入产品阶段越快,它就能越早提供价值。系统响应客户反馈的速度越快,它就能越早让客户满意。 Timothy Fitz Joe Ludwig 最近发布了一些文章,描述了持续部署的实践经验,将交付周期从以星期计缩短到以分钟计。

Timothy 的第一篇文章描述了持续部署如何影响修复 bug 的成本。错误被发现的时间越迟,修复的难度越高,代价也最昂贵。如果工程师在敲下代码的时候就发现了问题,那修复的成本几 乎为零。如果编译器捕获了 bug,它对开放时间造成的影响就是以分钟计的。如果 bug 进入了产品,而且在一段时间内没有被发现,找到 bug、修复 bug 的 代价就会让人觉得难以承受。千年虫问题就是一个典型的例子。Timothy 赞同快速失败(fail fast),这样 bug 所造成的影响和代价都会降低到最小。

读者的评论基本上对持续集成的实用性全持强烈的质疑态度。Erik A. Brandstadmoen 直言不讳:“在实际应用中,我觉得 [你的] 做法还不够”。来自 ycombinator 的一位评论者说道:“唔……不。也许这种做法对单人适用,可以取代持续继承。不过要是在一个复杂的系统上,许多人同时提交,你的站点肯定玩完。”

imothy 又写了一篇文章回应质疑声,他介绍了 IMVU 是怎么持续部署系统的。 IMVU 的做法是,先用持续集成来做快速构建,测试新的变化。这里有一个关键点——要有大量的、覆盖范围广的、非常可靠的自动化测试。他们用了许多测试机,用来保证可以在 10 分钟以内运行整个测试套件。所有测试都已通过以后,部署便开始了。

代码用 rsync 备份到集群的几百个机器里面。用一个 push 脚本来得到平均负载、cpu 占用率、php 错误及崩溃等等的样本作为基线。然后在小部分机器 上建立 symlink,让代码在这些机器上运行起来。一分钟以后,push 脚本就会在集群中重新收集样本,如果数据出现大幅度衰退,那么就把代码回退到上 一个版本;如果没有的话,就把代码在整个集群上运行起来,继续监控,五分钟之后重新收集数据。然后代码就可以正式运行了。

IMVU 现在有 60 名员工,3 千万注册用户,每月收入上百万英镑,做出的成绩可相当不俗。不过从 Michael Bolton James Bach 的调查中看,这个系统也不完美。 Elisabeth Hendrickson 指出,完美并不是这个系统的目标。

Joe Ludwig Pirates of the Burning Sea 的前任架构师,他写了两篇文章,指出怎样才能在重量级的客户端代码的环境中执行持续部署。他先是描述了“Pirates”长达7 个半小时的部署过程,然后略述了怎样把它缩短到1 个小时。在第二篇文章中,他详细描述了要把一小时部署变成现实所要做出的重大技术改动。

你有没有持续部署的经验?要把你的系统变的可以持续部署,需要做出那些变动?请留下你的观点,与读者共享。

查看英文原文 Beyond Continuous Integration: Continuous Deployment

2009-03-11 20:312583
用户头像

发布了 197 篇内容, 共 62.1 次阅读, 收获喜欢 21 次。

关注

评论

发布
暂无评论
发现更多内容

玩转云端| 无惧秒杀,天翼云数据库让您双十一稳稳购

天翼云开发者社区

前端一面经典vue面试题总结

bb_xiaxia1998

Vue

写过vue自定义指令吗,原理是什么?.m

bb_xiaxia1998

Vue

Webpack插件核心原理

Geek_02d948

webpack

交易所开发是什么?深圳一站式服务公司告诉你

W13902449729

交易所开发 区块链交易所

天翼云边缘函数、边缘安全项目入选“可信边缘计算推进计划”

天翼云开发者社区

手把手教你成为荣耀开发者:付费服务开通指南

荣耀开发者服务平台

手机 安卓 荣耀 honor

Vue响应式依赖收集原理分析-vue高级必备

yyds2026

Vue

盘点16种常见的PCB可靠性测试,您的板经得起测试吗?

华秋PCB

测试 PCB PCB设计

WALLYS/Access Point 2×2 5G Wireless Module Wireless QCA9882 AC/AN high power industrial mini pcie card Standard Card/QCA9880

wallys-wifi6

QCA9880 QCA9882

Java程序员进阶提升必备性能优化知识,阿里大牛一份性能优化手册全部总结出来了

程序员小毕

数据库 程序员 程序人生 JVM Java性能优化

Webpack最佳实践

Geek_02d948

webpack

马斯克拍手称好的超级App,对企业到底有什么价值

Onegun

技术栈 超级应用

全生命周期服务加持,鸿蒙世界构建按下加速键

叶落便知秋

Webpack完整打包流程分析

Geek_02d948

webpack

详细介绍:深圳市数字资产合约交易所软件开发中杠杆和合约的区别

W13902449729

区块链交易所开发

售后技术支持管理指标实践

网易云信

技术支持 售后服务

大数据培训机构哪些口碑好?

小谷哥

筑牢国产芯片软件生态,天翼云bcache解决方案来了!

天翼云开发者社区

Go语言入门15—select

良猿

Go golang 后端 11月月更

一站式服务:深圳区块链交易所app系统开发解决方案

W13902449729

区块链 区块链交易所

Vue中的diff算法深度解析

yyds2026

Vue

《入侵生命周期细分实践指南系列》:异常凭证攻击

美创科技

大咖说·禾连健康|“云原生”的应用对企业有什么样的影响

大咖说

云原生 医疗企业 禾连健康

在vue的v-for中,key为什么不能用index?

bb_xiaxia1998

Vue

孙荣辛|大数据穿针引线进阶必看——Google经典大数据知识

laofo

大数据 OLAP 数据治理 OLTP

如何破解终端算力困局?PRCV这篇论文让机器人“算有余力”

优必选科技

机器人 产业 算力 机器视觉

上海大数据培训机构应该注意什么

小谷哥

融云 CDN 播放器 2.0 版本正式上线

融云 RongCloud

参与有奖 | 选出你心目中最硬核的技术文章!

InfoQ写作社区官方

热门活动

Vue响应式系统原理并实现一个双向绑定

yyds2026

Vue

超越持续集成——持续部署_研发效能_Chris Sims_InfoQ精选文章