Search
持续交付- 剖析“持续交付”:五个核心实践 February 6, 2012
Blogroll
Tags
Author Archives: 乔梁
剖析“持续交付”:五个核心实践
原文发表于 InformIT 持续交付 是一种软件开发策略,用于优化软件交付流程,以尽快得到高质量、有价值的软件。这种方法让你能更快地验证业务想法,通过直接在用户那里进行试验,做到快速迭代。 尽管《持续交付》一书主要讲的是工程实践,但持续交付的概念对整个产品交付过程都有重大意义,包括对特性的”fuzzy front end”、设计和分析的意义。 持续交付的一般性原则如下: 与其设计一大堆特性,再策划一个持续数月的版本发布,不如持续不断地尝试新想法,并独立发布给用户。通过充分思考,即便很大的特性或者大范围的变更,也能够通过一系列小步骤得到更快反馈,而且一旦你认为有必要停下来的话,可以随时停下来。利用 跨功能团队 在几小时或几天内交付这些小且增量式的功能,就能比竞争者有更多的创新,将投资回报最大化。 持续交付五个关键实践,为你建立一个从猜测到持续反馈的最有效途径,它们就是: 从最小可行产品(MVP)开始——Start with a minimum viable product 衡量新特性的价值——Measure the value of your features. 做恰好充分的预先分析——Perform just enough analysis up front. 少做——Do less. 用户故事中要包括特性开关——Include feature toggles in your stories.
为什么要做持续部署?
本文是《Lean Startup》一书的作者Eric 在2009年发表的一篇博文,他是IMVU的创始人之一。文中没有讨论如何做持续部署,而是讨论了一个更关键的问题:“IMVU为什么要做持续部署?”这也充分地表达了他关于“Learning from production and customer”的观点。 ---------------------------------------- 在我所倡导的Lean Startup所有实践中,没有哪个实践比持续部署更有争议(持续部署是指:让公司在几分钟内发布软件的过程,而不是几天或几个月才发布一次)。我之前所在的一个创业公司IMVU使用这个流程,平均每天部署50次。这也引发了一些争论,有些人说:这种快速发布流程会导致低质量的软件,或者阻碍公司的创新。假如我们能够接受由客户来评判,而不是专家的判定,那么,我想这些说法就很容易消散了。一个更为常见,且更为困难的问题是:如何回答那些只想知道这种持续部署是否可以用于他们自己的业务、行业或团队的人们。
LinkedIn:移动APP开发中的自动化测试与持续部署流水线
最近,有很多人问我关于“移动应用开发中的自动化测试如何做?持续集成和部署流水线从哪里开始?”的问题,觉得有必要写一写。恰好这个周末在家无意间看到Linkedin的做法,觉得非常有意思,尤其是截屏做对比测试的做法,在移动应用中比较少见, 在这里与大家分享。原文地址在这里。
围绕最终交付物,而不是角色来组织软件交付活动
——持续交付与跨功能团队 在实施持续交付的过程中,我们很容易聚焦于自动化和工具,因为作为起点,它们通常是最容易做的。然而,持续交付的成功实现,还依赖于根据最终交付物而对组织结构所做的优化。对于持续交付来说,最大的障碍是依据角色和分层结构来组织团队,而非业务上的最终交付物(即产品或服务)。
持续集成案例分析系列(1)——大规模项目团队持续集成历程
这篇文章是我在两年前写的,记录了一个150+人的软件团队(最多时近200人)如何在一个庞大的遗留系统上,通过逐步建立一个持续交付部署流水线,从而达到频繁发布的状态。最终在该团队的持续交付基础设施中,共有260台服务器用于构建、测试和部署(几乎全部是虚拟机)。而这个产品也可以每六周发布一次。
用veewee创建vagrant的虚拟机
感谢larrycai的投稿。 原文链接:https://github.com/larrycai/blog/blob/master/cn/veewee_create_vm.mkd 简介 虚拟机有很多好处,不仅仅节省硬件资源,而且还可以快速切换系统环境,会在软件开发中起到极大作用。 在上一篇vagrant和jenkins的文章中我们说到了vagrant这个工具,你必须要先有一个盒子:vagrant box,它是vagrant对virtualbox虚拟机的进一步封装。将virtualbox虚拟机转变成vagrant的盒子有点麻烦,可以参见vagrant的说明,所以,大家都是找一个现成的盒子来用。 但是,没有更好的办法了吗?现在网络的开放精神真是强大,你能想到的一般都存在了,它就是我要介绍的veewee,它的功能就是从你的ISO光盘开始,准备好你需要的vagrant虚拟机(盒子)。
《持续交付》封面上的故事——福斯铁路桥
不知道有多少人把《持续交付》一书的前言看全了。最后一部分讲的是福斯铁路桥(本站Logo上的这座美丽的桥),并把它和软件做类比。现摘录如下: 福斯铁路桥是英国第一座使用钢铁建造的大桥。其钢铁使用最新的西门子马丁平炉工艺制造,并由在苏格兰的两个钢铁厂和威尔士的一个钢铁厂交付。钢铁是以管状桁架的形式运送的,这是英国首次使用大规模生产的零部件组装桥梁。与早期的桥梁不同,设计师John Fowler爵士,Benjamin Baker爵士和Allan Stewart计算了建筑压发生率,以便减少后续的维护成本,并计算了风压和温度对结构的影响,而这很像软件开发中的功能需求和非功能需求。他们还监督了桥梁建设,以确保这些要求都能得到满足。 当时有4600名工人参与建造该桥,其中不幸死亡约一百人,致残数百人。然而它仍是工业革命的一个奇迹,因为1890年建成时,它是世界上最长的桥,而到了21世纪初,它仍是世界第二长的悬臂大桥。就像长生命周期的软件项目一样,这座桥需要持续维护。这已在设计时考虑到了,大桥配套工程中不但有一个维护车间和场地,而且在Dalmeny车站还有一个50个房间的铁路“聚居点”。据估计,该桥的使用寿命还有一百多年。
使用vagrant+jenkins来管理虚拟机的技巧
感谢larrycai的投稿。 简介 虚拟机有很多好处,不仅仅节省硬件资源,而且还可以快速切换系统环境,显然会在软件开发中起到极大作用。 在《持续交付》第十一章(11.7.1)中就提到了虚拟机环境的管理。如下图 它描述的是在你的持续集成的Jenkins CI服务器(以下简称jenkins)中,需要各种服务器来测试一个应用。我们可以快速的从虚拟机的VMM模板库中,启动需要的各种类型虚拟机,而不是每个都重新安装(省时),完成测试,产生报告后,也快速消失(省钱)。 让我们一起来看看一种漂亮的实现方案vagrant+jenkins实现技巧。
《持续交付》中文版已上架销售,欢迎对译文进行意见反馈。
《持续交付》中文版已于2011年10月17日上架销售。 该书由Jez Humble 和 Dave Farley历时三年完成, Martin Fowler为该书作序,并称其为“2010年最重要的持续书籍”, 同时,在2011年8月获得 “Jolt 杰出奖”。 从下面网站均可购得: 中国互动出版网 当当网 卓越亚马逊 如果您在书中发现有些地方翻译欠妥,您有多种渠道反馈建议。 请在下面直接回复即可。内容包括:问题所在页号、原文句子,以及您的建议。 点击这里,进入图灵社区的《持续交付》专栏勘误。 直接邮件给译者,邮箱是:qiaoliang.email@gmail.com 谢谢!
持续交付成熟度模型更新,新版本v1.2发布
《持续交付》一书中提供的“持续交付成熟度模型”是1.0版本。 这是经过再次调整的改进版,更具有指导性和可操作性。 使用说明: 建议使用该模型进行现状分析,发现改进点,不建议将其作为绩效衡量的标准。 一、七个维度 它们分别是: 1. 持续集成(Continuous Integration) 2. 环境与部署(Environments and Deployments) 3. 可视化与可追踪性(Visibility and Traceability) 4. 测试(Testing) 5. 数据管理(Data Management) 6. 配置管理(Configuration Management) 7. 组织协调性(Organisational Alignment) 二、每个维度又分成五个级别,它们分别是: 一级:阻碍级(Regressive) 二级:可重复级(Repeatable) 三级:可定义级 四级:可定量级(Quantitatively managed) 五级:优化级(Optimizing) 其中,持续集成维度的五个级别分别是: 一级:阻碍级(Regressive) 1. 软件的构建过程是手工的。 2. … Continue reading