写点什么

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

  • 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:312525
用户头像

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

关注

评论

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

【深入MaxCompute】人力家:借助Information Schema合理治理费用

阿里云大数据AI技术

大数据

天翼云云电脑:IAAS基础设施带来的计算革新

天翼云开发者社区

云计算 云电脑

低代码平台技术分享官丨业务流那些事之单据追踪

inBuilder低代码平台

通过Java Record提升代码质量:简洁而健壮的数据对象

树上有只程序猿

java 14 数据类型

软件测试/测试开发丨App自动化—高级控件交互方法

测试人

Python 程序员 软件测试 自动化测试

智慧地球质押挖矿系统开发详情

l8l259l3365

低代码实现探索(六十)从ERP软件学习低代码

零道云-混合式低代码平台

云计算引领数字化时代

Finovy Cloud

云服务 云计算,

解锁企业数据管理的利器——DataOps

数造万象

关于企业如何替换FTP和加速FTP的问题

镭速

替换FTP 加速FTP

Spring扩展-BeanFactoryPostProcessor

文心一言 VS 讯飞星火 VS chatgpt (110)-- 算法导论10.2 1题

福大大架构师每日一题

福大大架构师每日一题

GitHub下载量从19暴涨到5W,这份架构师学习路线只用了一晚

程序员万金游

学习资料 #java #编程 #程序员 #学习

天翼云GPU云主机:共享信息技术与虚拟机的完美融合

天翼云开发者社区

云计算 云主机

从技术角度聊聊2023年怎么入局小游戏赛道?

FN0

小游戏 小游戏开发 小游戏引擎 小游戏运营

06. 机器学习入门2 - 理解特征和向量

茶桁

人工智能 机器学习 特征向量

【问题记录】Nginx使用域名作为upstream时,需要配置SNI

陈德伟

nginx 虚拟主机 proxy_pass SNI

技术干货:解密最受欢迎的开源 Serverless 框架弹性技术实现

阿里巴巴云原生

阿里云 开源 Serverless 云原生

如何使用CSS和JavaScript实施暗模式?

互联网工科生

CSS JavaScript 暗模式

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