写点什么

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

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

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

关注

评论

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

揭秘C语言的心脏:深入探索指针与数组的奥秘

不在线第一只蜗牛

Java C语言 开发语言

Aetina发布首款采用NVIDIA Ada Lovelace架构的MXM图形模块

财见

初识TiDB Data Migration迁移工具及实践

TiDB 社区干货传送门

迁移 7.x 实践

PingCAP 故事|势高,则围广:TiDB 的架构演进哲学

TiDB 社区干货传送门

专科逆袭!裁员后薪资翻倍,他的成功秘诀竟然是…

测吧(北京)科技有限公司

测试

TiDB 事务心跳超时机制测试

TiDB 社区干货传送门

故障排查/诊断

零售业海量场景下 ToC 系统的数据库选型和迁移实践

TiDB 社区干货传送门

实践案例

【服务器搭建】快速完成幻兽帕鲁服务器的搭建及部署【零基础上手】

恬静的小魔龙

服务器 幻兽帕鲁

Unity 现正式支持 visionOS 平台,赋能Apple Vision Pro应用创建

财见

构建 Streaming Lakehouse:使用 Paimon 和 Hudi 的性能对比

Apache Flink

大数据 flink 实时计算

使用无代码/低代码平台进行开发的 5 大挑战

NocoBase

开源 低代码 低代码开发 无代码 无代码平台

打造工业4.0的5G+边缘云服务产业生态,艾灵完成1.5亿元A轮融资

Geek_2d6073

WMS仓储管理系统的作用是什么?

万界星空科技

wms WMS仓库管理 万界星空科技 扫码出入库管理

2023年哪个前端框架用的最多?

伤感汤姆布利柏

火山引擎边缘云2023年度回顾,挑战与创新的交响乐章

火山引擎边缘云

边缘计算 火山引擎 火山引擎边缘云

基于生成式人工智能的平台 Cognizant Flowsource™ 发布,旨在为现代工程提供动力

财见

如何通过ETL实现快速同步美团订单信息

RestCloud

美团 ETL 数据集成工具

Java 程序员的待遇为何一直居高不下?

伤感汤姆布利柏

TiDB 在全球头部物流企业计费管理系统的应用实践

TiDB 社区干货传送门

实践案例

MES和QMS怎么选?

万界星空科技

mes 万界星空科技 QMS 质量管理QMS系统 生产管理

质量管理QMS系统实施的好处是什么?

万界星空科技

质量管理 万界星空科技 QMS 质量管理QMS系统 生产质量管理

每日一道Java面试题:说一说Java中的异常

EquatorCoco

Java 面试 前端 开发语言

软件公司定制开发的软件有哪些?

天津汇柏科技有限公司

软件开发定制

作业帮 x TiDB | 多元化海量数据业务的支撑

TiDB 社区干货传送门

关于如何优化TiDB中的写热点问题

TiDB 社区干货传送门

实践案例 7.x 实践

从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践

TiDB 社区干货传送门

实践案例

面试官:你能简单聊聊MyBatis执行流程

华为云开发者联盟

Java 开发 华为云 华为云开发者联盟

为什么说TiDB在线扩容对业务几乎没有影响

TiDB 社区干货传送门

TiDB 底层架构 数据库架构选型 TiKV 底层架构

用 Footprint 的交易类型标签揭秘链上交易

Footprint Analytics

区块链 加密货币

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