如果你正处于下列情形中 ,那这篇文章是为你准备的:

  • 你目前身处技术行业,你是产品经理,并且,你明白特性分支是什么,CD代表什么,DevOps文化是什么样子的。

  • 或者,你已经在实施敏捷,团队每周都会与您的产品人员会面,讨论故事和迭代。他们合作良好,他们此时构建的感觉比以往任何时候都要好。但是您的客户仍然不能更快地获取这些功能,你依旧要要等待版本发布后才能使用。你可能已经听说过像Etsy,Flickr和Google这样的公司,他们每天交付100次,但他们是如何做到的呢?

  • 又或者,你的开发团队想要实现CI/CD,并且你也听说了一些美好的事情,你依旧关心期间的一些变数。那么CD到底是什么呢?

让我们从一些定义和例子开始吧。

Continuous Integration (CI),持续集成

在传统的软件开发过程中,整合过程通常在每个人完成工作后,在项目结束时进行。 整合通常需要数周或数月时间,很可能也会非常痛苦。持续集成是将整合阶段提前到开发周期的一种做法,以便构建,测试和集成代码更经常地发生。

持续集成意味着在不同的团队成员间在不同的环境中分别为相同的产品编写软件,并将它们的更改集成在一个称为源码仓库库的地方。针各自编写的零碎代码构建组合成一个整体的软件,并按照他们期望的方式工作。

开发人员经常采用一个被称做持续集成服务器的工具为他们做构建和集成的工作。持续集成要求团队成员必须有可以自测的代码,这些代码可以验证代码如预期版的正常工作,这些测试被称做单元测试。当代码集成后所有的代码单元测试通过,团队将会得到一个成功的构建结果。这表明他们验证过了各自的变更被成功的集成到一起,同时代码如测试时预期的一样工作着。虽然集成后的代码成功的在一起正常工作,但它没有准备好上生产环境,因为它还没有在模拟生产环境中进行测试和验证。你可以在下面的连续交付部分中阅读更多关于持续集成之后发生的情况。

图1

为了保持正确的持续集成实践,团队成员的代码变更必须经常提交到主要的源代码库,并频繁地集成和测试他们的代码。通常是一小时多次,但至少每天一次。CI的好处是使整合成为非必要的事件。软件一直处于被编码和集成中。在CI之前,整合发生在创建过程的最后,只一次发生,并且花费了不确定的时间; 现在有了CI,每天都会发生,并且仅需要几分钟。

Continuous Delivery (CD),持续交付

我们回到我们的开发团队,持续交付意味着每次对代码进行更改时,都会集成和构建代码,以便在与生产非常相似的环境中自动测试此代码。通常,部署管道环境具有开发环境、测试环境和模拟生产环境,但这些阶段因团队、产品和组织而异。 例如,我们的Mingle团队有一个叫做“Cupcake”的阶段,它是一个模拟生产环境,而Etsy的模拟环境被称为“Princess”。

图2

在每个不同的环境中,编码写的代码测试结果不同。这个过程对业务来说是非常有力的。 这意味着,如果单元测试通过了所有的环境验证,那么你知道代码在生产环境时很可能也会正常工作。 一旦测试在所有环境中通过,您就可以立即决定您的最终用户是否获得最新的功能。而且,一旦您的开发人员完成构建,就可以随时为客户提供全新的、经过全面测试的工作软件。

Continuous Deployment(CD),持续部署

图3

从上图可以清晰的看出,要实现持续部署,首先需要持续交付。持续交付的前提在CI的基础之上,但最终是否应用到生产环境中去,还是通过手动的方式来进行,持续部署真正实现了全自动部署更新发布。

DevOps

“DevOps”一词来自“开发”和“操作”一词的组合。 DevOps是一种促进开发人员和其他技术专业人士之间的合作的文化,具体来说,在软件交付和部署过程中的沟通和协作,目标是更快速,更可靠地发布更好的质量软件。具有所谓DevOps文化的组织的共同特点是:自主多才技术团队,高水平的测试和发布自动化(持续交付)和共同目标多面手成员。

传统方式的软件交付过程如下:

图4

采用持续交付部署路线后,演变成以下的方式,见下图。

图5

DevOps文化通常与持续交付相关联,因为它们旨在增加开发人员和运营团队之间的协作,并且使用自动流程来更快速、频繁、可靠地构建、测试和发布软件。

题外话:此文是SUZIE PRINCE发布在mindtheproduct网站上的文章,第一次尝试着意译过来,便于大家初识敏捷开发、持续部署及Devops之道,第一次翻译难免有疏漏,还望各位见凉,点击原文即可英文原版文章。

产品经理人的持续交付和DevOps实践的更多相关文章

  1. [转载]持续交付和DevOps的前世今生

    作者/分享人:乔梁,20年IT老兵,腾讯公司高级管理顾问,敏捷和精益开发专家,持续交付领域先行者.曾就职于百度,国内多个知名互联网公司的企业教练. 历年QCon技术大会的讲师和专题出品人. 这是一个新 ...

  2. TOP100summit 2017:【案例分享】魅族持续交付平台建设实践

    本篇文章内容来自第10期魅族开放日魅族运维架构师林钟洪的现场分享.编辑:Cynthia 一.自动化建设历程1.1 魅族互联网发展的时间线 2003-2008年被称之为“互联网1.0时代”.2003年, ...

  3. [转]DevOps实战:百度持续交付体系与最佳实践大解密!

    本文转自:http://dbaplus.cn/news-21-471-1.html “互联网+”时代,软件产品要想满足快速增长的用户需求,高效.快速的迭代转型必不可少,面对时刻发生改变的互联网及业务模 ...

  4. [持续交付实践] 开篇:持续集成&持续交付综述

    前言 随着微服务架构与容器虚拟化技术的发展,持续集成与持续交付的概念又重新回到了大家的视野,越来越多的公司开始使用持续集成的系统来解决频繁发布带来的质量问题:使用持续交付的工具来实现代码在不同环境上的 ...

  5. 基于Jenkins的持续交付全流程设计与实践

    1 从理论开始 什么是DevOps? 近年来,随着DevOps理念的逐渐深入人心,企业逐渐意识到从看似重复的手工劳动中实现自动化流程处理,对于提高企业劳动生产力已经非常重要,尤其是面向互联网的开发者, ...

  6. 测试需要了解的技术之基础篇三__持续集成持续交付DevOps

    持续集成.持续交付.DevOps 1.容器技术Docker:容器技术介绍.Docker安装与加速配置.Docker基础命令.Docker搭建selenium.Docker搭建持续集成平台Jenkins ...

  7. 持续交付的Mesos与Docker导入篇

    变革这个词在当今的数字化时代司空见惯,IT技术每过一段时间就会有一起革新,从WEB2.0.虚拟化.云计算.大数据.微架构.DevOps再到今天的容器Docker与Mesos. Docker的出现方便了 ...

  8. 《DevOps实践:驭DevOps之力强化技术栈并优化IT运行》

    DevOps实践:驭DevOps之力强化技术栈并优化IT运行 主旨 这本书并非坐而论道,而是介绍了DevOps全流程中的许多实践,以及相应工具的运用.虽然随着时代的推移,工具将来可能会过时,但是这些实 ...

  9. DevOps-如何构建持续交付流水线

    引言 DevOps 是一套实践方法,在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间,其中持续集成和持续交付是 DevOps 里面非常重要的一环.本文讲述了达到自动化持续交付需要做的准备工 ...

随机推荐

  1. Python标准库(3.x): itertools库扫盲

    itertools functions accumulate() compress() groupby() starmap() chain() count() islice() takewhile() ...

  2. 快速写入Xml文件

    我们在做一些操作的时候会需要生成日志,Xml文件就是我们常用的一种日志文件. 普通操作Xml文件的代码遇到大数据量的话就很慢了. 用这个生成Xml文件的话,即使数据量很大,也很快 private vo ...

  3. WPF应用App.Config文件的保存路径

    App.Config文件有更改后,自动会保存到以下路径: C:\Users\你的系统用户名\AppData\Local\你的应用名\

  4. Advanced Installer,搜索注册表,根据注册表选择安装路径

    原文:Advanced Installer,搜索注册表,根据注册表选择安装路径 又停了一段时间没有更新了,今天上博客,发现有位朋友就打包的时候需要搜索注册表(不同版本注册表路径不一致,需要搜索多次来确 ...

  5. 领域驱动设计(DDD)的实践经验分享之ORM的思考

    原文:领域驱动设计(DDD)的实践经验分享之ORM的思考 最近一直对DDD(Domain Driven Design)很感兴趣,于是去网上找了一些文章来看看,发现它确实是个好东西.于是我去买了两本关于 ...

  6. Windows 7 频繁提示:计算机的内存不足

    最近由于同时打开的程序比较多,Windows 7 频繁提示:计算机的内存不足,如下图: 问题原因: 经过一番尝试,得出一个大概的结论:当虚拟内存空间的大小小于物理内存空间的大小时,一旦程序开的太多,物 ...

  7. Ansible的安装与使用初探

    一.环境准备 网络配置 管理端:192.168.237.201 受控端:192.168.237.202.192.168.237.203(一共2台) 硬件信息 CPU:1核 内存:512MB 磁盘:10 ...

  8. python中的基本数据类型之 int bool str

    一.基本数据类型 1. int  ==>  整数.主要用来进行数学运算. 2.str  ==>  字符串.可以保存少量的数据,并进行相应的操作. 3.bool  =>  布尔值.判断 ...

  9. Linux上read命令的使用

    一:read倾听是一种美德       1.倾听键盘的输入并保存到变量中              例如:#! /bin/bash            echo  "please inpu ...

  10. 警惕SAP项目被“中间商赚差价”

    前段时间某买卖二手车的广告特别火,里面有一句话叫“没有中间商赚差价”特别有说服力.同样在做SAP项目的过程中也是要警惕各种“中间商”赚差价. 正常的SAP项目的都是甲方和乙方两边签署合同合作实施,并不 ...