探路持续交付

标签: 持续交付 | 发表时间:2011-10-27 23:10 | 作者:dreamhead gengmao
出处:http://dreamhead.blogbus.com

眼下的这个项目是一个有趣的项目,它让我收获极大的部分并不在于写代码本身,更多的是关于软件开发的“Last Mile”。

自动化,让团队从繁琐重复中解脱出来的一个重要途径,这是所有一切的基础。一句话,能自动化的尽量自动化。

构建

在给InfoQ写的一篇文章中,我已经尝试总结了一些通用的内容,这里不再赘述。

软件开发地基

在云端

之前参与过的一些项目,很大的一个挑战在于环境。我们没有足够的机器用来做出足够的环境。

这个项目使用了Amazon EC2。在我们需要一台机器的时候,我们会敲下一个命令,自动在云端创建出一个完整的测试环境。当测试完毕,同样是一条命令,这个机器就烟消云散了。这种做法让团队按需创建自己的环境。

DevOps

有了机器,机器的内容是由我们自己决定的。托DevOps运动的福,这一切变得容易起来。所谓infrastructure as code。

我们采用Chef将所有的配置管理起来。比如,当我们搭建一台机器的时候,需要一个应用服务器,也需要安装我们最新的版本,所有这一切都是由脚本管理的。我们只要一条命令敲下去,那台在云中搭建出的新机器上就自动包含了所有这一切。

小结一下,云解决了机器问题,DevOps解决了配置问题。

自动化测试

自动化测试是所有一切验证的基础。相比于之前的项目,这个项目的一大进步在于验收测试。我们采用Cucumber做为我们的验收测试描述工具。比之于TDD,在验收测试的层面上,我们做的是BDD。

这更进一步的是,我们会从0开始搭建整个测试环境,然后,运行测试。基于前面的描述,这种测试会运行在云中。

部署流水线

有了上面的基础,我们构建了一条“部署流水线”。下面简单描述一下我们的“流水线”:

  • 完成一个修改时,开发人员会在本地运行提交脚本。这个脚本会运行诸如编译、测试、质量检查等方面的东西。通过之后,才可以真正的提交。
  • CI软件检测到新代码提交之后,就会启动“部署流水线”。首先是在提交阶段验证,内容与开发人员本地验证的内容相仿。
  • 通过提交验证之后,进入到下一阶段,在云环境中创建出一个部署了最新软件的服务器,基于这个环境进行端到端的测试。
  • 端到端测试之后,将软件发布到一个中央仓库里,这就是一个发布候选版本了。如果有需要,我们可以取出这个版本进行更多的探索测试和性能测试等。
  • 负责运营的人,根据需要,发布适当的版本上线。
基于这样的基础设施,我们有了持续交付的基础。从第一次正式上线之后,我们很快又发布了第二次,修正了前一次发布之后发现的问题,不再有那种为了上线的忙碌。

相关 [持续交付] 推荐:

探路持续交付

- gengmao - 梦想风暴
眼下的这个项目是一个有趣的项目,它让我收获极大的部分并不在于写代码本身,更多的是关于软件开发的“Last Mile”. 自动化,让团队从繁琐重复中解脱出来的一个重要途径,这是所有一切的基础. 在给InfoQ写的一篇文章中,我已经尝试总结了一些通用的内容,这里不再赘述. 之前参与过的一些项目,很大的一个挑战在于环境.

持续交付模式

- - 博客园_知识库
   英文原文: Patterns for Continuous Delivery.   当你有了持续集成需要的构建服务器和脚本之后,下一个问题肯定是:“我们该拿这些构建版本怎么办. ”持续交付,以自动化或半自动化方式,将构建版本从一个环境提送(promote)到更接近实际生产的交付准备环境;这常常是公司在这方面演进的下一步.

持续交付话题的一些讨论和心得

- - CSDN博客研发管理推荐文章
周末参加了在杭州举行的持续交付话题沙龙的讨论,将这次活动中的一些精彩问答和经验警句记录下来供大家参考:. ” 持续交付如何让老板看到价值. “,这是当时讨论的比较激烈的话题,大家形成的基本结论是可以通过衡量周期时间来看持续交付前后的变化,如果使用持续交付前的周期时间是1周,运用了持续交付后周期时间变为3天或者更少了那么就为公司提高了竞争力,就比竞争对手更快的退出新产品、功能了.

年度回顾:百度乔梁谈持续交付与DevOps

- - InfoQ cn
在刚刚结束的 第22期百度技术沙龙中,百度项目管理部乔梁( @乔梁QL)来到沙龙现场,并就持续交付、持续集成和DevOps等话题分享自己的经验,并对国内的发展情况给予了展望. 十年前我也曾自己创业,虽然当时做得还算不错,但慢慢发现自己不是一个能把事业和生活安排得很好的人,于是决定继续回来打工. 对于从事软件开发,估计在座的各位90%以上都与互联网行业有关,我属于不小心闯进了这样的一家互联网公司里面的这种.

持续交付(Continuous Delivery)和持续部署(Continuous Deployment)的区别

- - 外刊IT评论
持续交付并不是指软件每一个改动都要尽快的部署到产品环境中. 它指的是任何的修改都已证明可以在任何时候实施部署. 它在微博上激起了活跃的讨论,周四的时候已经被转发了87次,获得了25个赞. 很显然,这是个很火的话题,很多人对持续交付和持续部署之间的区别很困惑. 有必要用超出微博字数限制的文字来说说这个概念.

drone | CI/CD | 基于容器技术的持续交付平台

- - yiyun's Blog
Drone 分为 Server 和 Runner 两部分. 需要与 源代码控制 相结合, 这里与 GitHub 相结合. You can install a single Docker runner, or install the Docker runner on multiple machines to create your own build cluster..

云纵持续交付环境管理进化历程 - 旁观者 - 博客园

- -
破天(李进庄)、冬草(宋玥辉) 创作于2018-9-10. 一个公司的运维能力强弱和你线上环境敲命令是有关的,. 你越是喜欢上线敲命令,你的运维能力就越弱,. 越是通过自动化来处理问题,你的运维能力就越强. 持续集成(Continuous Integration, CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.

DockOne微信分享(二七〇):持续交付的一些实践经验

- - DockOne.io
【编者的话】估计很多人都知道持续交付是好东西,但是该如何下手呢. 小公司可以借鉴该经验用于低成本的搭建持续交付的流水线,大公司可以借鉴该经验用于优化自己的DevOps平台. 我是2020年3月份加入该部门. 而这些问题在行业里都很典型,比如:. 分支管理不统一:虽说大部分人还是在master上开发,但是还有部分人自己拉feature分支开发.

银行持续交付实战:一个单体系统足以撑起全球大项目

- - InfoQ推荐
本文由 dbaplus 社群授权转载. 我们的核心系统是一个单体系统,支撑全球多个国家和地区的业务. 同时,业务部门近年生意红火,接了几个大客户,针对这些大客户的大型项目也在如火如荼地进行中. 由于生产环境只有一套,而且已经有业务在生产环境上跑,这些大项目最终也要在这套生产环境上上线. 这套系统是糅合了各地、各不同业务的复杂系统.

【DevOps进行时】持续交付广义流水线探索 – 农行DevOps实践之路

- - DevOps 博客
持续交付流水线是DevOps落地的重要工程实践,但是业界普遍把持续交付流水线建设等同于CI/CD,很多人觉得部署好Jenkins,配置个自动化job,能编译,能部署,能跑自动化测试就搞定了. 其实真正的持续交付流水线远不仅仅是这些内容,它应该包括从需求/创新的提出,到功能架构设计,计划跟踪,开发编码,编译打包,测试验证,投产上线,再到将实现的功能让用户使用起来的全过程.