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

  • 你目前身处技术行业,你是产品经理,并且,你明白特性分支是什么,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. 图像滤镜艺术---Photoshop实现Instagram Amaro滤镜特效

    原文:图像滤镜艺术---Photoshop实现Instagram Amaro滤镜特效 本文是我收集的一些使用Photoshop来实现Instagram滤镜的一些内容,在这里跟大家分享一下,这些效果是完 ...

  2. UWP项目生成错误: 未能使用“CompileXaml”任务的输入参数初始化该任务。“CompileXaml”任务不支持“PlatformXmlDir”参数。请确认该参数存在于此任务中,并且是可设置的公共实例属性。

    UWP项目生成错误: 未能使用“CompileXaml”任务的输入参数初始化该任务.“CompileXaml”任务不支持“PlatformXmlDir”参数.请确认该参数存在于此任务中,并且是可设置的 ...

  3. 微信小程序把玩(二十一)switch组件

    原文:微信小程序把玩(二十一)switch组件 switch开关组件使用主要属性: wxml <!--switch类型开关--> <view>switch类型开关</vi ...

  4. 类选择器和所作用的标签一起写为什么不起作用? - CSDN博客

    原文:类选择器和所作用的标签一起写为什么不起作用? - CSDN博客 HTML代码: css样式: 这不是将样式作用于circle类下的有current类的li标签吗?为什么不起作用? 原因: 选择器 ...

  5. webform的图片防盗链

    最近用到域的问题,不是同一主机的请求将不允许请求此页面. 这其实和图片防盗链的本质是一样的. 通过两个属性:由于当时用的aspx视图引擎,所以需要通过HttpContext.Current才能拿到ht ...

  6. 查看SharePoint文档库是,显示层次目录,可以点击返回层次

    在sharepoint 2013中,Documnet library(文档库)包含多层文件夹,当进入到文件夹后,返回指定层次了(例如返回上一层),需要用浏览器的返回. 使用起来不方便,而且浏览器的返回 ...

  7. linux环境下使用百度云网盘

    linux下经常需要备份一些文件到云端,现在能用的也就只有度娘的百度云网盘了,在github上发现一个挺好的项目,bypy,用来在linux下使用百度云. 项目地址:https://github.co ...

  8. Codlility---MinPerimeterRectangle

    Task description An integer N is given, representing the area of some rectangle. The area of a recta ...

  9. 对shell脚本进行加密

    用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.同样,在shell脚本运行时会也泄露敏感信息.请问如何 ...

  10. appium入门篇之desired capabilities(2)

    目录 1.appium工作原理 desired capabilities 2.准备工作 3.第一个appium脚本 获取包名和启动的activity 编写脚本 运行结果 1.appium工作原理 启动 ...